From 9329b99cba735842f704f378679cbc000a4c8868 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Mon, 11 Mar 2019 22:07:12 +0000 Subject: [PATCH 001/624] Continue with 5.0.1-dev --- CMakeLists.txt | 4 ++-- doc/client_lua_api.txt | 4 ++-- doc/menu_lua_api.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 121086680..a2fed51e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,11 +17,11 @@ set(CLANG_MINIMUM_VERSION "3.4") # Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing set(VERSION_MAJOR 5) set(VERSION_MINOR 0) -set(VERSION_PATCH 0) +set(VERSION_PATCH 1) set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string") # Change to false for releases -set(DEVELOPMENT_BUILD FALSE) +set(DEVELOPMENT_BUILD TRUE) set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") if(VERSION_EXTRA) diff --git a/doc/client_lua_api.txt b/doc/client_lua_api.txt index f0e585355..9253b5568 100644 --- a/doc/client_lua_api.txt +++ b/doc/client_lua_api.txt @@ -1,5 +1,5 @@ -Minetest Lua Client Modding API Reference 5.0.0 -================================================ +Minetest Lua Client Modding API Reference 5.0.1 +=============================================== * More information at * Developer Wiki: diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt index 419bc2f8a..2c76c6b8f 100644 --- a/doc/menu_lua_api.txt +++ b/doc/menu_lua_api.txt @@ -1,4 +1,4 @@ -Minetest Lua Mainmenu API Reference 5.0.0 +Minetest Lua Mainmenu API Reference 5.0.1 ========================================= Introduction From fc24bf09153f17bec023cde164a039202102a66c Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 6 Mar 2019 22:24:39 +0000 Subject: [PATCH 002/624] Fix incorrect string length check after cast --- src/network/networkpacket.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/network/networkpacket.cpp b/src/network/networkpacket.cpp index 35a131a34..6d869e5eb 100644 --- a/src/network/networkpacket.cpp +++ b/src/network/networkpacket.cpp @@ -110,11 +110,12 @@ NetworkPacket& NetworkPacket::operator>>(std::string& dst) NetworkPacket& NetworkPacket::operator<<(const std::string &src) { - u16 msgsize = src.size(); - if (msgsize > STRING_MAX_LEN) { + if (src.size() > STRING_MAX_LEN) { throw PacketError("String too long"); } + u16 msgsize = src.size(); + *this << msgsize; putRawString(src.c_str(), (u32)msgsize); @@ -124,11 +125,12 @@ NetworkPacket& NetworkPacket::operator<<(const std::string &src) void NetworkPacket::putLongString(const std::string &src) { - u32 msgsize = src.size(); - if (msgsize > LONG_STRING_MAX_LEN) { + if (src.size() > LONG_STRING_MAX_LEN) { throw PacketError("String too long"); } + u32 msgsize = src.size(); + *this << msgsize; putRawString(src.c_str(), msgsize); @@ -160,11 +162,12 @@ NetworkPacket& NetworkPacket::operator>>(std::wstring& dst) NetworkPacket& NetworkPacket::operator<<(const std::wstring &src) { - u16 msgsize = src.size(); - if (msgsize > WIDE_STRING_MAX_LEN) { + if (src.size() > WIDE_STRING_MAX_LEN) { throw PacketError("String too long"); } + u16 msgsize = src.size(); + *this << msgsize; // Write string From da4739a26cb8327d1e6c5d8642692e5fbb0ad4a0 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Thu, 7 Mar 2019 06:41:21 +0000 Subject: [PATCH 003/624] Fix detach inventory serialisation (#8331) --- src/network/clientpackethandler.cpp | 6 ++++-- src/server.cpp | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index 3e50173a6..889002a82 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -895,8 +895,10 @@ void Client::handleCommand_DetachedInventory(NetworkPacket* pkt) inv = inv_it->second; } - std::string contents; - *pkt >> contents; + u16 ignore; + *pkt >> ignore; // this used to be the length of the following string, ignore it + + std::string contents = pkt->getRemainingString(); std::istringstream is(contents, std::ios::binary); inv->deSerialize(is); } diff --git a/src/server.cpp b/src/server.cpp index ad469d655..701339ad8 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2576,7 +2576,10 @@ void Server::sendDetachedInventory(const std::string &name, session_t peer_id) // Serialization & NetworkPacket isn't a love story std::ostringstream os(std::ios_base::binary); inv_it->second->serialize(os); - pkt << os.str(); + + std::string os_str = os.str(); + pkt << static_cast(os_str.size()); // HACK: to keep compatibility with 5.0.0 clients + pkt.putRawString(os_str); } if (peer_id == PEER_ID_INEXISTENT) From bf4deb0ce628b423600d397a725831cc980e961c Mon Sep 17 00:00:00 2001 From: Paramat Date: Sun, 10 Mar 2019 01:49:03 +0000 Subject: [PATCH 004/624] Confirm registration GUI: Remove positional strings to fix Windows bug (#8258) Positional strings don't work on some Windows builds. Remove server address string, leave player name string present. --- src/gui/guiConfirmRegistration.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/gui/guiConfirmRegistration.cpp b/src/gui/guiConfirmRegistration.cpp index 9a374b405..6e6b7ad16 100644 --- a/src/gui/guiConfirmRegistration.cpp +++ b/src/gui/guiConfirmRegistration.cpp @@ -89,23 +89,18 @@ void GUIConfirmRegistration::regenerateGui(v2u32 screensize) */ s32 ypos = 30 * s; { - std::string address = m_address; - if (address.empty()) - address = "localhost"; core::rect rect2(0, 0, 540 * s, 180 * s); rect2 += topleft_client + v2s32(30 * s, ypos); static const std::string info_text_template = strgettext( - "You are about to join the server at %1$s with the " - "name \"%2$s\" for the first time. If you proceed, a " - "new account using your credentials will be created " - "on this server.\n" - "Please retype your password and click Register and " - "Join to confirm account creation or click Cancel to " - "abort."); + "You are about to join this server with the name \"%s\" for the " + "first time.\n" + "If you proceed, a new account using your credentials will be " + "created on this server.\n" + "Please retype your password and click 'Register and Join' to " + "confirm account creation, or click 'Cancel' to abort."); char info_text_buf[1024]; porting::mt_snprintf(info_text_buf, sizeof(info_text_buf), - info_text_template.c_str(), address.c_str(), - m_playername.c_str()); + info_text_template.c_str(), m_playername.c_str()); wchar_t *info_text_buf_wide = utf8_to_wide_c(info_text_buf); gui::IGUIEditBox *e = new gui::intlGUIEditBox(info_text_buf_wide, true, From d8ece2e3e951e070b37f670bd910d24855be5262 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 10 Mar 2019 18:53:02 +0000 Subject: [PATCH 005/624] Fix serialization of std::time_t by casting to u64 first (#8353) Fixes #8332 --- src/network/clientpackethandler.cpp | 4 +++- src/network/networkpacket.cpp | 16 ---------------- src/network/networkpacket.h | 4 ---- src/server.cpp | 2 +- 4 files changed, 4 insertions(+), 22 deletions(-) diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index 889002a82..2f5deae2a 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -408,7 +408,9 @@ void Client::handleCommand_ChatMessage(NetworkPacket *pkt) return; } - *pkt >> chatMessage->sender >> chatMessage->message >> chatMessage->timestamp; + u64 timestamp; + *pkt >> chatMessage->sender >> chatMessage->message >> timestamp; + chatMessage->timestamp = static_cast(timestamp); chatMessage->type = (ChatMessageType) message_type; diff --git a/src/network/networkpacket.cpp b/src/network/networkpacket.cpp index 6d869e5eb..22c035c5b 100644 --- a/src/network/networkpacket.cpp +++ b/src/network/networkpacket.cpp @@ -281,12 +281,6 @@ NetworkPacket& NetworkPacket::operator<<(u64 src) return *this; } -NetworkPacket& NetworkPacket::operator<<(std::time_t src) -{ - *this << (u64) src; - return *this; -} - NetworkPacket& NetworkPacket::operator<<(float src) { checkDataSize(4); @@ -372,16 +366,6 @@ NetworkPacket& NetworkPacket::operator>>(u64& dst) return *this; } -NetworkPacket& NetworkPacket::operator>>(std::time_t& dst) -{ - checkReadOffset(m_read_offset, 8); - - dst = readU64(&m_data[m_read_offset]); - - m_read_offset += 8; - return *this; -} - NetworkPacket& NetworkPacket::operator>>(float& dst) { checkReadOffset(m_read_offset, 4); diff --git a/src/network/networkpacket.h b/src/network/networkpacket.h index 760b51f7a..a8b741374 100644 --- a/src/network/networkpacket.h +++ b/src/network/networkpacket.h @@ -19,7 +19,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -#include #include "util/pointer.h" #include "util/numeric.h" #include "networkprotocol.h" @@ -88,9 +87,6 @@ public: NetworkPacket &operator>>(u64 &dst); NetworkPacket &operator<<(u64 src); - NetworkPacket &operator>>(std::time_t &dst); - NetworkPacket &operator<<(std::time_t src); - NetworkPacket &operator>>(float &dst); NetworkPacket &operator<<(float src); diff --git a/src/server.cpp b/src/server.cpp index 701339ad8..003ad45b4 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1559,7 +1559,7 @@ void Server::SendChatMessage(session_t peer_id, const ChatMessage &message) NetworkPacket pkt(TOCLIENT_CHAT_MESSAGE, 0, peer_id); u8 version = 1; u8 type = message.type; - pkt << version << type << std::wstring(L"") << message.message << message.timestamp; + pkt << version << type << std::wstring(L"") << message.message << (u64)message.timestamp; if (peer_id != PEER_ID_INEXISTENT) { RemotePlayer *player = m_env->getPlayer(peer_id); From 19825d853e6f30685f367e99e206327a6bcf14a2 Mon Sep 17 00:00:00 2001 From: sofar Date: Mon, 4 Mar 2019 23:11:13 -0800 Subject: [PATCH 006/624] getS16NoEx() returns true unless syntactical error in conf. (#8304) The getS16NoEx() handler will return true unless there is a `[num_emerge_threads]` line in the `minetest.conf` at which point the excption handler part is reached. Due to the fact that `defaultsettings.cpp` has a default value set for this setting, that never will happen. Because of this, the code will never check the number of threads on the system, and keep `nthreads = 0`. If that happens, the value is changed to `1` and only 1 emerge thread will be used. The default should be set to `1` instead, due to the potential unsafe consequences for the standard sqlite map files, but that should be a separate commit that also adds documentation for that setting. This commit focuses on removing this `hiding` bug instead. --- src/emerge.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/emerge.cpp b/src/emerge.cpp index 592b1bef7..0ad6ee29b 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -130,11 +130,13 @@ EmergeManager::EmergeManager(Server *server) // If unspecified, leave a proc for the main thread and one for // some other misc thread - s16 nthreads = 0; - if (!g_settings->getS16NoEx("num_emerge_threads", nthreads)) + s16 nthreads; + g_settings->getS16NoEx("num_emerge_threads", nthreads); + if (nthreads == 0) nthreads = Thread::getNumberOfProcessors() - 2; if (nthreads < 1) nthreads = 1; + verbosestream << "Using " << nthreads << " emerge threads." << std::endl; m_qlimit_total = g_settings->getU16("emergequeue_limit_total"); if (!g_settings->getU16NoEx("emergequeue_limit_diskonly", m_qlimit_diskonly)) From 82739f4d7d634eaccdc8414382da5d55ae39734d Mon Sep 17 00:00:00 2001 From: Paramat Date: Tue, 5 Mar 2019 22:58:38 +0000 Subject: [PATCH 007/624] Change 'num_emerge_threads' default to 1 (#8303) --- builtin/settingtypes.txt | 2 +- minetest.conf.example | 2 +- src/defaultsettings.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index da9b8bf10..3df0376a3 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -1925,7 +1925,7 @@ emergequeue_limit_generate (Limit of emerge queues to generate) int 64 # processes, especially in singleplayer and/or when running Lua code in # 'on_generated'. # For many users the optimum setting may be '1'. -num_emerge_threads (Number of emerge threads) int 0 +num_emerge_threads (Number of emerge threads) int 1 [Online Content Repository] diff --git a/minetest.conf.example b/minetest.conf.example index f31d9356a..6e40a4b6b 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -3005,7 +3005,7 @@ # 'on_generated'. # For many users the optimum setting may be '1'. # type: int -# num_emerge_threads = 0 +# num_emerge_threads = 1 # # Online Content Repository diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 1df6dccb6..5a56f3d77 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -374,7 +374,7 @@ void set_default_settings(Settings *settings) settings->setDefault("emergequeue_limit_total", "512"); settings->setDefault("emergequeue_limit_diskonly", "64"); settings->setDefault("emergequeue_limit_generate", "64"); - settings->setDefault("num_emerge_threads", "0"); + settings->setDefault("num_emerge_threads", "1"); settings->setDefault("secure.enable_security", "true"); settings->setDefault("secure.trusted_mods", ""); settings->setDefault("secure.http_mods", ""); From 444ec1e4128e68523f1bbf51aa03e8bf2006156c Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 12 Mar 2019 07:56:56 +0000 Subject: [PATCH 008/624] HPChange Reason: Fix push after free, and type being overwritten (#8359) * HPChange Reason: Fix push after free, and type being overwritten Fixes #8227 and #8344 --- src/content_sao.h | 5 +++++ src/script/cpp_api/s_base.cpp | 14 +++++++++----- src/script/lua_api/l_object.cpp | 3 +++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/content_sao.h b/src/content_sao.h index 14f959e30..f54bc16c2 100644 --- a/src/content_sao.h +++ b/src/content_sao.h @@ -405,6 +405,11 @@ struct PlayerHPChangeReason { bool from_mod = false; int lua_reference = -1; + inline bool hasLuaReference() const + { + return lua_reference >= 0; + } + bool setTypeFromString(const std::string &typestr) { if (typestr == "set_hp") diff --git a/src/script/cpp_api/s_base.cpp b/src/script/cpp_api/s_base.cpp index bf89f748c..a8ed902dd 100644 --- a/src/script/cpp_api/s_base.cpp +++ b/src/script/cpp_api/s_base.cpp @@ -384,14 +384,18 @@ void ScriptApiBase::objectrefGetOrCreate(lua_State *L, void ScriptApiBase::pushPlayerHPChangeReason(lua_State *L, const PlayerHPChangeReason &reason) { - if (reason.lua_reference >= 0) { + if (reason.hasLuaReference()) lua_rawgeti(L, LUA_REGISTRYINDEX, reason.lua_reference); - luaL_unref(L, LUA_REGISTRYINDEX, reason.lua_reference); - } else + else lua_newtable(L); - lua_pushstring(L, reason.getTypeAsString().c_str()); - lua_setfield(L, -2, "type"); + lua_getfield(L, -1, "type"); + bool has_type = (bool)lua_isstring(L, -1); + lua_pop(L, 1); + if (!has_type) { + lua_pushstring(L, reason.getTypeAsString().c_str()); + lua_setfield(L, -2, "type"); + } lua_pushstring(L, reason.from_mod ? "mod" : "engine"); lua_setfield(L, -2, "from"); diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 9edb2f4f8..b3ed39c7c 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -257,6 +257,9 @@ int ObjectRef::l_set_hp(lua_State *L) if (co->getType() == ACTIVEOBJECT_TYPE_PLAYER) getServer(L)->SendPlayerHPOrDie((PlayerSAO *)co, reason); + if (reason.hasLuaReference()) + luaL_unref(L, LUA_REGISTRYINDEX, reason.lua_reference); + // Return return 0; } From dd451a8a0055ad082d3fbc4af34c401f22bfb7d6 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 12 Mar 2019 07:58:02 +0000 Subject: [PATCH 009/624] Fix cast from const by accessing string data directly (#8354) Fixes #8327 --- src/irrlicht_changes/irrUString.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/irrlicht_changes/irrUString.h b/src/irrlicht_changes/irrUString.h index fce49e717..b628c092c 100644 --- a/src/irrlicht_changes/irrUString.h +++ b/src/irrlicht_changes/irrUString.h @@ -2916,13 +2916,13 @@ public: ret[0] = unicode::BOM; else if (endian == unicode::EUTFEE_LITTLE) { - uchar8_t* ptr8 = reinterpret_cast(ret.c_str()); + uchar8_t* ptr8 = reinterpret_cast(&ret[0]); *ptr8++ = unicode::BOM_ENCODE_UTF16_LE[0]; *ptr8 = unicode::BOM_ENCODE_UTF16_LE[1]; } else { - uchar8_t* ptr8 = reinterpret_cast(ret.c_str()); + uchar8_t* ptr8 = reinterpret_cast(&ret[0]); *ptr8++ = unicode::BOM_ENCODE_UTF16_BE[0]; *ptr8 = unicode::BOM_ENCODE_UTF16_BE[1]; } From 10cc62d2ca03517b9653efb18df299fff9c96876 Mon Sep 17 00:00:00 2001 From: Paramat Date: Thu, 14 Mar 2019 12:49:33 +0000 Subject: [PATCH 010/624] num_emerge_threads: Warn of crashes when > 1 (#8357) --- builtin/settingtypes.txt | 8 +++++--- minetest.conf.example | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 3df0376a3..6c5b3f317 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -1915,16 +1915,18 @@ emergequeue_limit_diskonly (Limit of emerge queues on disk) int 64 emergequeue_limit_generate (Limit of emerge queues to generate) int 64 # Number of emerge threads to use. +# WARNING: Currently there are multiple bugs that may cause crashes when +# 'num_emerge_threads' is larger than 1. Until this warning is removed it is +# strongly recommended this value is set to the default '1'. # Empty or 0 value: # - Automatic selection. The number of emerge threads will be # - 'number of processors - 2', with a lower limit of 1. # Any other value: # - Specifies the number of emerge threads, with a lower limit of 1. -# Warning: Increasing the number of emerge threads increases engine mapgen +# WARNING: Increasing the number of emerge threads increases engine mapgen # speed, but this may harm game performance by interfering with other # processes, especially in singleplayer and/or when running Lua code in -# 'on_generated'. -# For many users the optimum setting may be '1'. +# 'on_generated'. For many users the optimum setting may be '1'. num_emerge_threads (Number of emerge threads) int 1 [Online Content Repository] diff --git a/minetest.conf.example b/minetest.conf.example index 6e40a4b6b..6e881596f 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -2994,16 +2994,18 @@ # emergequeue_limit_generate = 64 # Number of emerge threads to use. +# WARNING: Currently there are multiple bugs that may cause crashes when +# 'num_emerge_threads' is larger than 1. Until this warning is removed it is +# strongly recommended this value is set to the default '1'. # Empty or 0 value: # - Automatic selection. The number of emerge threads will be # - 'number of processors - 2', with a lower limit of 1. # Any other value: # - Specifies the number of emerge threads, with a lower limit of 1. -# Warning: Increasing the number of emerge threads increases engine mapgen +# WARNING: Increasing the number of emerge threads increases engine mapgen # speed, but this may harm game performance by interfering with other # processes, especially in singleplayer and/or when running Lua code in -# 'on_generated'. -# For many users the optimum setting may be '1'. +# 'on_generated'. For many users the optimum setting may be '1'. # type: int # num_emerge_threads = 1 From ca1bff6b66c4df8bd42f1249523cf235e275e265 Mon Sep 17 00:00:00 2001 From: paramat Date: Sun, 17 Mar 2019 08:38:15 +0000 Subject: [PATCH 011/624] num_emerge_threads: Fix documentation of automatic selection --- builtin/settingtypes.txt | 2 +- minetest.conf.example | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 6c5b3f317..5d68007e3 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -1918,7 +1918,7 @@ emergequeue_limit_generate (Limit of emerge queues to generate) int 64 # WARNING: Currently there are multiple bugs that may cause crashes when # 'num_emerge_threads' is larger than 1. Until this warning is removed it is # strongly recommended this value is set to the default '1'. -# Empty or 0 value: +# Value 0: # - Automatic selection. The number of emerge threads will be # - 'number of processors - 2', with a lower limit of 1. # Any other value: diff --git a/minetest.conf.example b/minetest.conf.example index 6e881596f..1574d5c3f 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -2997,7 +2997,7 @@ # WARNING: Currently there are multiple bugs that may cause crashes when # 'num_emerge_threads' is larger than 1. Until this warning is removed it is # strongly recommended this value is set to the default '1'. -# Empty or 0 value: +# Value 0: # - Automatic selection. The number of emerge threads will be # - 'number of processors - 2', with a lower limit of 1. # Any other value: From 1ae0335b626e1c9f31cbaf45509099e4676f2d1a Mon Sep 17 00:00:00 2001 From: Paramat Date: Mon, 18 Mar 2019 10:19:53 +0000 Subject: [PATCH 012/624] num_emerge_threads: Initialise value to cope with setting syntax error (#8396) --- src/emerge.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/emerge.cpp b/src/emerge.cpp index 0ad6ee29b..0a1852985 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -128,10 +128,10 @@ EmergeManager::EmergeManager(Server *server) enable_mapgen_debug_info = g_settings->getBool("enable_mapgen_debug_info"); - // If unspecified, leave a proc for the main thread and one for - // some other misc thread - s16 nthreads; + s16 nthreads = 1; g_settings->getS16NoEx("num_emerge_threads", nthreads); + // If automatic, leave a proc for the main thread and one for + // some other misc thread if (nthreads == 0) nthreads = Thread::getNumberOfProcessors() - 2; if (nthreads < 1) From 57e0f52aaad7a0dc7738cfa20cfc304294f41e93 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 18 Mar 2019 15:06:27 +0100 Subject: [PATCH 013/624] httpfetch: Disable IPv6 here too if requested by settings (#8399) --- src/httpfetch.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/httpfetch.cpp b/src/httpfetch.cpp index 6b67e0e13..326b5052f 100644 --- a/src/httpfetch.cpp +++ b/src/httpfetch.cpp @@ -253,6 +253,10 @@ HTTPFetchOngoing::HTTPFetchOngoing(const HTTPFetchRequest &request_, curl_easy_setopt(curl, CURLOPT_INTERFACE, bind_address.c_str()); } + if (!g_settings->getBool("enable_ipv6")) { + curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); + } + #if LIBCURL_VERSION_NUM >= 0x071304 // Restrict protocols so that curl vulnerabilities in // other protocols don't affect us. From 538a7b12bd0c5c10e0ef16dde363f16eb447c101 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 18 Mar 2019 22:41:39 +0100 Subject: [PATCH 014/624] Fix texture rotation for wallmounted nodeboxes fixes #8358 --- src/client/mapblock_mesh.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index ed8a073de..6b5ba9f9d 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -744,7 +744,7 @@ void getNodeTile(MapNode mn, const v3s16 &p, const v3s16 &dir, MeshMakeData *dat u8 dir_i = ((dir.X + 2 * dir.Y + 3 * dir.Z) & 7) * 2; // Get rotation for things like chests - u8 facedir = mn.getFaceDir(ndef); + u8 facedir = mn.getFaceDir(ndef, true); static const u16 dir_to_tile[24 * 16] = { From cf1802a6de51ec14c98b1424ba95e86a66cf7c75 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 26 Mar 2019 01:18:52 +0000 Subject: [PATCH 015/624] Prevent multi-line chat messages server-side (#8420) --- src/server.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server.cpp b/src/server.cpp index 003ad45b4..172bb4744 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2874,8 +2874,13 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna L"It was refused. Send a shorter message"; } + auto message = trim(wide_to_utf8(wmessage)); + if (message.find_first_of("\n\r") != std::wstring::npos) { + return L"New lines are not permitted in chat messages"; + } + // Run script hook, exit if script ate the chat message - if (m_script->on_chat_message(name, wide_to_utf8(wmessage))) + if (m_script->on_chat_message(name, message)) return L""; // Line to send From 76325d0ba925cfdd18e387ae96d27921136e98e5 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 31 Mar 2019 22:57:45 +0200 Subject: [PATCH 016/624] Bump version to 5.0.1 --- CMakeLists.txt | 2 +- build/android/build.gradle | 2 +- misc/net.minetest.minetest.appdata.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a2fed51e1..e647f62b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ set(VERSION_PATCH 1) set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string") # Change to false for releases -set(DEVELOPMENT_BUILD TRUE) +set(DEVELOPMENT_BUILD FALSE) set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") if(VERSION_EXTRA) diff --git a/build/android/build.gradle b/build/android/build.gradle index 7b9ebb9ec..11a4a714c 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -28,7 +28,7 @@ android { buildToolsVersion "28.0.3" defaultConfig { - versionCode 23 + versionCode 24 versionName "${System.env.VERSION_STR}.${versionCode}" minSdkVersion 14 targetSdkVersion 28 diff --git a/misc/net.minetest.minetest.appdata.xml b/misc/net.minetest.minetest.appdata.xml index 089383b5d..f1aab53a9 100644 --- a/misc/net.minetest.minetest.appdata.xml +++ b/misc/net.minetest.minetest.appdata.xml @@ -56,6 +56,6 @@ minetest sfan5@live.de - + From 4c8a6423884751cc686d6aaaf415a0d7b1bc0e34 Mon Sep 17 00:00:00 2001 From: MoNTE48 Date: Thu, 7 Nov 2019 00:39:39 +0100 Subject: [PATCH 017/624] Android: build fixes & compat fixes --- build/android/build.gradle | 14 ++-- build/android/gradle.properties | 2 + .../gradle/wrapper/gradle-wrapper.properties | 7 +- build/android/src/debug/AndroidManifest.xml | 5 -- build/android/src/main/AndroidManifest.xml | 11 +-- .../net.minetest.minetest/MainActivity.java | 40 +++++------ .../MinetestAssetCopy.java | 72 ++++++++----------- .../MinetestTextEntry.java | 8 +-- .../MtNativeActivity.java | 11 ++- .../src/main/res/values-v21/styles.xml | 13 ++-- build/android/src/main/res/values/styles.xml | 8 ++- 11 files changed, 91 insertions(+), 100 deletions(-) create mode 100644 build/android/gradle.properties delete mode 100644 build/android/src/debug/AndroidManifest.xml diff --git a/build/android/build.gradle b/build/android/build.gradle index 81c99c974..d86598b5b 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -4,7 +4,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'com.android.tools.build:gradle:3.5.1' } } @@ -24,13 +24,14 @@ def sqlite3_version = "3240000" apply plugin: "com.android.application" android { - compileSdkVersion 28 + compileSdkVersion 29 + buildToolsVersion '29.0.2' defaultConfig { versionCode 24 versionName "${System.env.VERSION_STR}.${versionCode}" minSdkVersion 14 - targetSdkVersion 28 + targetSdkVersion 29 applicationId "net.minetest.minetest" manifestPlaceholders = [package: "net.minetest.minetest", project: project.name] ndk { @@ -41,6 +42,11 @@ android { } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + lintOptions { disable "OldTargetApi", "GoogleAppIndexingWarning" } @@ -165,5 +171,5 @@ task cleanAll(type: Delete, dependsOn: [clean, cleanAssets, cleanIconv, } dependencies { - implementation 'com.android.support:support-v4:28.0.0' + implementation 'androidx.core:core:1.1.0' } diff --git a/build/android/gradle.properties b/build/android/gradle.properties new file mode 100644 index 000000000..5465fec0e --- /dev/null +++ b/build/android/gradle.properties @@ -0,0 +1,2 @@ +android.enableJetifier=true +android.useAndroidX=true \ No newline at end of file diff --git a/build/android/gradle/wrapper/gradle-wrapper.properties b/build/android/gradle/wrapper/gradle-wrapper.properties index 7ba375433..22ac96460 100644 --- a/build/android/gradle/wrapper/gradle-wrapper.properties +++ b/build/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1 @@ -#Fri Aug 09 22:14:33 CEST 2019 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip diff --git a/build/android/src/debug/AndroidManifest.xml b/build/android/src/debug/AndroidManifest.xml deleted file mode 100644 index ee04d1d03..000000000 --- a/build/android/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/build/android/src/main/AndroidManifest.xml b/build/android/src/main/AndroidManifest.xml index 7f61cda38..fb1de9cf0 100644 --- a/build/android/src/main/AndroidManifest.xml +++ b/build/android/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -11,14 +12,14 @@ + android:resizeableActivity="false" + tools:targetApi="n"> + android:value="2.4" /> + android:windowSoftInputMode="stateAlwaysHidden" /> + android:theme="@style/AppTheme" /> diff --git a/build/android/src/main/java/net.minetest.minetest/MainActivity.java b/build/android/src/main/java/net.minetest.minetest/MainActivity.java index 1baa71668..71b0ce144 100644 --- a/build/android/src/main/java/net.minetest.minetest/MainActivity.java +++ b/build/android/src/main/java/net.minetest.minetest/MainActivity.java @@ -6,17 +6,17 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat;; import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class MainActivity extends Activity { - private final static int PERMISSIONS = 1; private static final String[] REQUIRED_SDK_PERMISSIONS = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}; @@ -30,8 +30,8 @@ public class MainActivity extends Activity { } } - protected void checkPermission() { - final List missingPermissions = new ArrayList(); + private void checkPermission() { + final List missingPermissions = new ArrayList<>(); // check required permission for (final String permission : REQUIRED_SDK_PERMISSIONS) { final int result = ContextCompat.checkSelfPermission(this, permission); @@ -42,7 +42,7 @@ public class MainActivity extends Activity { if (!missingPermissions.isEmpty()) { // request permission final String[] permissions = missingPermissions - .toArray(new String[missingPermissions.size()]); + .toArray(new String[0]); ActivityCompat.requestPermissions(this, permissions, PERMISSIONS); } else { final int[] grantResults = new int[REQUIRED_SDK_PERMISSIONS.length]; @@ -53,25 +53,23 @@ public class MainActivity extends Activity { } @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - switch (requestCode) { - case PERMISSIONS: - for (int index = 0; index < permissions.length; index++) { - if (grantResults[index] != PackageManager.PERMISSION_GRANTED) { - // permission not granted - toast and exit - Toast.makeText(this, R.string.not_granted, Toast.LENGTH_LONG).show(); - finish(); - return; - } + if (requestCode == PERMISSIONS) { + for (int index = 0; index < permissions.length; index++) { + if (grantResults[index] != PackageManager.PERMISSION_GRANTED) { + // permission not granted - toast and exit + Toast.makeText(this, R.string.not_granted, Toast.LENGTH_LONG).show(); + finish(); + return; } - // permission were granted - run - next(); - break; + } + // permission were granted - run + next(); } } - public void next() { + private void next() { Intent intent = new Intent(this, MtNativeActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); diff --git a/build/android/src/main/java/net.minetest.minetest/MinetestAssetCopy.java b/build/android/src/main/java/net.minetest.minetest/MinetestAssetCopy.java index 03b34f705..84cfca796 100644 --- a/build/android/src/main/java/net.minetest.minetest/MinetestAssetCopy.java +++ b/build/android/src/main/java/net.minetest.minetest/MinetestAssetCopy.java @@ -1,5 +1,6 @@ package net.minetest.minetest; +import android.annotation.SuppressLint; import android.app.Activity; import android.content.res.AssetFileDescriptor; import android.os.AsyncTask; @@ -19,13 +20,12 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; -import java.util.Iterator; import java.util.Vector; public class MinetestAssetCopy extends Activity { - ProgressBar m_ProgressBar; - TextView m_Filename; - copyAssetTask m_AssetCopy; + private ProgressBar m_ProgressBar; + private TextView m_Filename; + private copyAssetTask m_AssetCopy; @Override public void onCreate(Bundle savedInstanceState) { @@ -53,29 +53,26 @@ public class MinetestAssetCopy extends Activity { super.onResume(); makeFullScreen(); } - + @Override - protected void onDestroy() { + protected void onDestroy() { super.onDestroy(); if (m_AssetCopy != null) { m_AssetCopy.cancel(true); } - } + } - public void makeFullScreen() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + private void makeFullScreen() { + if (Build.VERSION.SDK_INT >= 19) this.getWindow().getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY - ); - } + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); - if (hasFocus) { + if (hasFocus) makeFullScreen(); - } } /* preserve asset copy background task to prevent restart of copying */ @@ -85,7 +82,8 @@ public class MinetestAssetCopy extends Activity { return this; } - private static class copyAssetTask extends AsyncTask { + @SuppressLint("StaticFieldLeak") + private class copyAssetTask extends AsyncTask { boolean m_copy_started = false; String m_Foldername = "media"; Vector m_foldernames; @@ -99,7 +97,7 @@ public class MinetestAssetCopy extends Activity { InputStream src = getAssets().open(filename); byte[] buf = new byte[4096]; - int len = 0; + int len; while ((len = src.read(buf)) > 0) { size += len; } @@ -111,10 +109,10 @@ public class MinetestAssetCopy extends Activity { @Override protected String doInBackground(String... files) { - m_foldernames = new Vector(); - m_filenames = new Vector(); - m_tocopy = new Vector(); - m_asset_size_unknown = new Vector(); + m_foldernames = new Vector<>(); + m_filenames = new Vector<>(); + m_tocopy = new Vector<>(); + m_asset_size_unknown = new Vector<>(); String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/"; @@ -128,9 +126,9 @@ public class MinetestAssetCopy extends Activity { } else { File[] todel = TempFolder.listFiles(); - for (int i = 0; i < todel.length; i++) { - Log.v("MinetestAssetCopy", "deleting: " + todel[i].getAbsolutePath()); - todel[i].delete(); + for (File file : todel) { + Log.v("MinetestAssetCopy", "deleting: " + file.getAbsolutePath()); + file.delete(); } } @@ -166,9 +164,9 @@ public class MinetestAssetCopy extends Activity { if (m_asset_size_unknown.contains(filename)) { File testme = new File(baseDir + "/" + filename); - if (testme.exists()) { + if (testme.exists()) filesize = testme.length(); - } + asset_size_unknown = true; } @@ -249,12 +247,10 @@ public class MinetestAssetCopy extends Activity { protected void onProgressUpdate(Integer... progress) { if (m_copy_started) { - boolean shortened = false; String todisplay = m_tocopy.get(progress[0]); m_ProgressBar.setProgress(progress[0]); m_Filename.setText(todisplay); } else { - boolean shortened = false; String todisplay = m_Foldername; String full_text = "scanning " + todisplay + " ..."; m_Filename.setText(full_text); @@ -264,14 +260,11 @@ public class MinetestAssetCopy extends Activity { /** * check all files and folders in filelist */ - protected void ProcessFileList() { + void ProcessFileList() { String FlashBaseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); - Iterator itr = m_filenames.iterator(); - - while (itr.hasNext()) { - String current_path = (String) itr.next(); + for (String current_path : m_filenames) { String FlashPath = FlashBaseDir + "/" + current_path; if (isAssetFolder(current_path)) { @@ -300,7 +293,7 @@ public class MinetestAssetCopy extends Activity { File testme = new File(FlashPath); long asset_filesize = -1; - long stored_filesize = -1; + long stored_filesize; if (testme.exists()) { try { @@ -308,7 +301,6 @@ public class MinetestAssetCopy extends Activity { asset_filesize = fd.getLength(); fd.close(); } catch (IOException e) { - refresh = true; m_asset_size_unknown.add(current_path); Log.e("MinetestAssetCopy", "Failed to open asset file \"" + FlashPath + "\" for size check"); @@ -316,22 +308,20 @@ public class MinetestAssetCopy extends Activity { stored_filesize = testme.length(); - if (asset_filesize == stored_filesize) { + if (asset_filesize == stored_filesize) refresh = false; - } } - if (refresh) { + if (refresh) m_tocopy.add(current_path); - } } } /** * read list of folders prepared on package build */ - protected void BuildFolderList() { + void BuildFolderList() { try { InputStream is = getAssets().open("index.txt"); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); @@ -351,7 +341,7 @@ public class MinetestAssetCopy extends Activity { /** * read list of asset files prepared on package build */ - protected void BuildFileList() { + void BuildFileList() { long entrycount = 0; try { InputStream is = getAssets().open("filelist.txt"); @@ -374,7 +364,7 @@ public class MinetestAssetCopy extends Activity { finish(); } - protected boolean isAssetFolder(String path) { + boolean isAssetFolder(String path) { return m_foldernames.contains(path); } } diff --git a/build/android/src/main/java/net.minetest.minetest/MinetestTextEntry.java b/build/android/src/main/java/net.minetest.minetest/MinetestTextEntry.java index 4cd899025..cb7ba8d3b 100644 --- a/build/android/src/main/java/net.minetest.minetest/MinetestTextEntry.java +++ b/build/android/src/main/java/net.minetest.minetest/MinetestTextEntry.java @@ -15,8 +15,8 @@ public class MinetestTextEntry extends Activity { private final int MultiLineTextInput = 1; private final int SingleLineTextInput = 2; private final int SingleLinePasswordInput = 3; - public AlertDialog mTextInputDialog; - public EditText mTextInputWidget; + private AlertDialog mTextInputDialog; + private EditText mTextInputWidget; @Override public void onCreate(Bundle savedInstanceState) { @@ -71,7 +71,7 @@ public class MinetestTextEntry extends Activity { mTextInputDialog.show(); } - public void pushResult(String text) { + private void pushResult(String text) { Intent resultData = new Intent(); resultData.putExtra("text", text); setResult(Activity.RESULT_OK, resultData); @@ -79,7 +79,7 @@ public class MinetestTextEntry extends Activity { finish(); } - public void cancelDialog() { + private void cancelDialog() { setResult(Activity.RESULT_CANCELED); mTextInputDialog.dismiss(); finish(); diff --git a/build/android/src/main/java/net.minetest.minetest/MtNativeActivity.java b/build/android/src/main/java/net.minetest.minetest/MtNativeActivity.java index b32e97b53..f49d078fe 100644 --- a/build/android/src/main/java/net.minetest.minetest/MtNativeActivity.java +++ b/build/android/src/main/java/net.minetest.minetest/MtNativeActivity.java @@ -37,20 +37,17 @@ public class MtNativeActivity extends NativeActivity { makeFullScreen(); } - public void makeFullScreen() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + private void makeFullScreen() { + if (Build.VERSION.SDK_INT >= 19) this.getWindow().getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY - ); - } + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); - if (hasFocus) { + if (hasFocus) makeFullScreen(); - } } public void copyAssets() { diff --git a/build/android/src/main/res/values-v21/styles.xml b/build/android/src/main/res/values-v21/styles.xml index 825ab1d37..8b0777467 100644 --- a/build/android/src/main/res/values-v21/styles.xml +++ b/build/android/src/main/res/values-v21/styles.xml @@ -1,12 +1,17 @@ - + - - diff --git a/build/android/src/main/res/values/styles.xml b/build/android/src/main/res/values/styles.xml index 3e66ff4ba..1bd41ae76 100644 --- a/build/android/src/main/res/values/styles.xml +++ b/build/android/src/main/res/values/styles.xml @@ -1,12 +1,14 @@ - - From 6c9fc130836618b6355c2133789d492bf29e6128 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Sat, 9 Nov 2019 11:37:46 +0100 Subject: [PATCH 018/624] Bump to version code 25 --- build/android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/android/build.gradle b/build/android/build.gradle index d86598b5b..61163288f 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -28,7 +28,7 @@ android { buildToolsVersion '29.0.2' defaultConfig { - versionCode 24 + versionCode 25 versionName "${System.env.VERSION_STR}.${versionCode}" minSdkVersion 14 targetSdkVersion 29 From 45bbe39d1f7958a38cb0a10357fe0baf1d725c52 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Sat, 9 Nov 2019 12:50:53 +0100 Subject: [PATCH 019/624] Add arm64-v8a but it's not sufficient for 64bit build --- build/android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/android/build.gradle b/build/android/build.gradle index 61163288f..3601434f5 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -38,7 +38,7 @@ android { // Specifies the ABI configurations of your native // libraries Gradle should build and package with your APK. // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' - abiFilters 'armeabi-v7a', 'x86' + abiFilters 'armeabi-v7a', 'x86', 'arm64-v8a' } } From 6e6ef9489f898d06730015239fb2595d8d6b316b Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Thu, 26 Dec 2019 17:09:21 +0000 Subject: [PATCH 020/624] Continue with 5.1.1-dev --- CMakeLists.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 36528d022..4fcb9506a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,11 +17,11 @@ set(CLANG_MINIMUM_VERSION "3.4") # Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing set(VERSION_MAJOR 5) set(VERSION_MINOR 1) -set(VERSION_PATCH 0) +set(VERSION_PATCH 1) set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string") # Change to false for releases -set(DEVELOPMENT_BUILD FALSE) +set(DEVELOPMENT_BUILD TRUE) set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") if(VERSION_EXTRA) @@ -164,9 +164,9 @@ if(RUN_IN_PLACE) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/textures/texture_packs_here.txt" DESTINATION "${SHAREDIR}/textures") endif() -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minetest_game" DESTINATION "${SHAREDIR}/games/" +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minetest_game" DESTINATION "${SHAREDIR}/games/" COMPONENT "SUBGAME_MINETEST_GAME" OPTIONAL PATTERN ".git*" EXCLUDE ) -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minimal" DESTINATION "${SHAREDIR}/games/" +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minimal" DESTINATION "${SHAREDIR}/games/" COMPONENT "SUBGAME_MINIMAL" OPTIONAL PATTERN ".git*" EXCLUDE ) if(BUILD_CLIENT) @@ -284,12 +284,12 @@ if(WIN32) set(CPACK_CREATE_DESKTOP_LINKS ${PROJECT_NAME}) set(CPACK_WIX_PRODUCT_ICON "${CMAKE_CURRENT_SOURCE_DIR}/misc/minetest-icon.ico") - # Supported languages can be found at + # Supported languages can be found at # http://wixtoolset.org/documentation/manual/v3/wixui/wixui_localization.html #set(CPACK_WIX_CULTURES "ar-SA,bg-BG,ca-ES,hr-HR,cs-CZ,da-DK,nl-NL,en-US,et-EE,fi-FI,fr-FR,de-DE") set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_BANNER.BMP") set(CPACK_WIX_UI_DIALOG "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_DIALOG.BMP") - + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/doc/lgpl-2.1.txt") # The correct way would be to include both x32 and x64 into one installer @@ -325,4 +325,3 @@ if(DOXYGEN_FOUND) COMMENT "Generating API documentation with Doxygen" VERBATIM ) endif() - From 06ba82680312ef3836ec759ae603289a20ea42ec Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 20 Oct 2019 12:44:52 +0200 Subject: [PATCH 021/624] Formspecs: Reset version number on rebuild --- src/gui/guiFormSpecMenu.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index aee7da869..83d7923d9 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -2418,6 +2418,8 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) m_bgfullscreen = false; + m_formspec_version = 1; + { v3f formspec_bgcolor = g_settings->getV3F("formspec_default_bg_color"); m_bgcolor = video::SColor( From 57409ef382509a4a293683b78b44816ee29bb8d4 Mon Sep 17 00:00:00 2001 From: Dmitry Marakasov Date: Wed, 23 Oct 2019 21:28:55 +0300 Subject: [PATCH 022/624] Fix build issue due to conflicting s64 type definitions (#9064) See comment in irrlichttypes.h and https://sourceforge.net/p/irrlicht/bugs/433/ --- src/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.cpp b/src/main.cpp index 4629f92ce..1993f7c24 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -17,6 +17,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include "irrlichttypes.h" // must be included before anything irrlicht, see comment in the file #include "irrlicht.h" // createDevice #include "irrlichttypes_extrabloated.h" #include "chat_interface.h" From 1c61fe5ed930720485ef42571739e5efc39a14c9 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 14 Nov 2019 17:38:15 +0100 Subject: [PATCH 023/624] Rework packet receiving in ServerThread Notably it tries to receive all queued packets between server steps, not just one. --- src/network/connection.cpp | 27 +++++++++++--- src/network/connection.h | 3 ++ src/network/networkpacket.cpp | 9 +++++ src/network/networkpacket.h | 1 + src/server.cpp | 70 +++++++++++++++++++++++++---------- 5 files changed, 86 insertions(+), 24 deletions(-) diff --git a/src/network/connection.cpp b/src/network/connection.cpp index 0bc13a2f0..a99e5b145 100644 --- a/src/network/connection.cpp +++ b/src/network/connection.cpp @@ -1323,16 +1323,21 @@ void Connection::Disconnect() putCommand(c); } -void Connection::Receive(NetworkPacket* pkt) +bool Connection::Receive(NetworkPacket *pkt, u32 timeout) { + /* + Note that this function can potentially wait infinitely if non-data + events keep happening before the timeout expires. + This is not considered to be a problem (is it?) + */ for(;;) { - ConnectionEvent e = waitEvent(m_bc_receive_timeout); + ConnectionEvent e = waitEvent(timeout); if (e.type != CONNEVENT_NONE) LOG(dout_con << getDesc() << ": Receive: got event: " << e.describe() << std::endl); switch(e.type) { case CONNEVENT_NONE: - throw NoIncomingDataException("No incoming data"); + return false; case CONNEVENT_DATA_RECEIVED: // Data size is lesser than command size, ignoring packet if (e.data.getSize() < 2) { @@ -1340,7 +1345,7 @@ void Connection::Receive(NetworkPacket* pkt) } pkt->putRawPacket(*e.data, e.data.getSize(), e.peer_id); - return; + return true; case CONNEVENT_PEER_ADDED: { UDPPeer tmp(e.peer_id, e.address, this); if (m_bc_peerhandler) @@ -1358,7 +1363,19 @@ void Connection::Receive(NetworkPacket* pkt) "(port already in use?)"); } } - throw NoIncomingDataException("No incoming data"); + return false; +} + +void Connection::Receive(NetworkPacket *pkt) +{ + bool any = Receive(pkt, m_bc_receive_timeout); + if (!any) + throw NoIncomingDataException("No incoming data"); +} + +bool Connection::TryReceive(NetworkPacket *pkt) +{ + return Receive(pkt, 0); } void Connection::Send(session_t peer_id, u8 channelnum, diff --git a/src/network/connection.h b/src/network/connection.h index 057bd39f6..d7f1e0fe8 100644 --- a/src/network/connection.h +++ b/src/network/connection.h @@ -771,6 +771,7 @@ public: bool Connected(); void Disconnect(); void Receive(NetworkPacket* pkt); + bool TryReceive(NetworkPacket *pkt); void Send(session_t peer_id, u8 channelnum, NetworkPacket *pkt, bool reliable); session_t GetPeerID() const { return m_peer_id; } Address GetPeerAddress(session_t peer_id); @@ -803,6 +804,8 @@ protected: UDPSocket m_udpSocket; MutexedQueue m_command_queue; + bool Receive(NetworkPacket *pkt, u32 timeout); + void putEvent(ConnectionEvent &e); void TriggerSend(); diff --git a/src/network/networkpacket.cpp b/src/network/networkpacket.cpp index 22c035c5b..4d531b611 100644 --- a/src/network/networkpacket.cpp +++ b/src/network/networkpacket.cpp @@ -66,6 +66,15 @@ void NetworkPacket::putRawPacket(u8 *data, u32 datasize, session_t peer_id) memcpy(m_data.data(), &data[2], m_datasize); } +void NetworkPacket::clear() +{ + m_data.clear(); + m_datasize = 0; + m_read_offset = 0; + m_command = 0; + m_peer_id = 0; +} + const char* NetworkPacket::getString(u32 from_offset) { checkReadOffset(from_offset, 0); diff --git a/src/network/networkpacket.h b/src/network/networkpacket.h index a8b741374..fc8617651 100644 --- a/src/network/networkpacket.h +++ b/src/network/networkpacket.h @@ -35,6 +35,7 @@ public: ~NetworkPacket(); void putRawPacket(u8 *data, u32 datasize, session_t peer_id); + void clear(); // Getters u32 getSize() const { return m_datasize; } diff --git a/src/server.cpp b/src/server.cpp index 4aa8375c8..d914beead 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -93,6 +93,15 @@ void *ServerThread::run() { BEGIN_DEBUG_EXCEPTION_HANDLER + /* + * The real business of the server happens on the ServerThread. + * How this works: + * AsyncRunStep() runs an actual server step as soon as enough time has + * passed (dedicated_server_loop keeps track of that). + * Receive() blocks at least(!) 30ms waiting for a packet (so this loop + * doesn't busy wait) and will process any remaining packets. + */ + m_server->AsyncRunStep(true); while (!stopRequested()) { @@ -101,7 +110,6 @@ void *ServerThread::run() m_server->Receive(); - } catch (con::NoIncomingDataException &e) { } catch (con::PeerNotFoundException &e) { infostream<<"Server: PeerNotFoundException"<Receive(&pkt); - peer_id = pkt.getPeerId(); - ProcessData(&pkt); - } catch (const con::InvalidIncomingDataException &e) { - infostream << "Server::Receive(): InvalidIncomingDataException: what()=" - << e.what() << std::endl; - } catch (const SerializationError &e) { - infostream << "Server::Receive(): SerializationError: what()=" - << e.what() << std::endl; - } catch (const ClientStateError &e) { - errorstream << "ProcessData: peer=" << peer_id << e.what() << std::endl; - DenyAccess_Legacy(peer_id, L"Your client sent something server didn't expect." - L"Try reconnecting or updating your client"); - } catch (const con::PeerNotFoundException &e) { - // Do nothing + NetworkPacket pkt; + session_t peer_id; + bool first = true; + for (;;) { + pkt.clear(); + peer_id = 0; + try { + /* + In the first iteration *wait* for a packet, afterwards process + all packets that are immediately available (no waiting). + */ + if (first) { + m_con->Receive(&pkt); + first = false; + } else { + if (!m_con->TryReceive(&pkt)) + return; + } + + peer_id = pkt.getPeerId(); + ProcessData(&pkt); + } catch (const con::InvalidIncomingDataException &e) { + infostream << "Server::Receive(): InvalidIncomingDataException: what()=" + << e.what() << std::endl; + } catch (const SerializationError &e) { + infostream << "Server::Receive(): SerializationError: what()=" + << e.what() << std::endl; + } catch (const ClientStateError &e) { + errorstream << "ProcessData: peer=" << peer_id << " what()=" + << e.what() << std::endl; + DenyAccess_Legacy(peer_id, L"Your client sent something server didn't expect." + L"Try reconnecting or updating your client"); + } catch (const con::PeerNotFoundException &e) { + // Do nothing + } catch (const con::NoIncomingDataException &e) { + return; + } } } @@ -3728,6 +3755,11 @@ void dedicated_server_loop(Server &server, bool &kill) static thread_local const float profiler_print_interval = g_settings->getFloat("profiler_print_interval"); + /* + * The dedicated server loop only does time-keeping (in Server::step) and + * provides a way to main.cpp to kill the server externally (bool &kill). + */ + for(;;) { // This is kind of a hack but can be done like this // because server.step() is very light From fa858530cc2c241a676562584fe024ab48773149 Mon Sep 17 00:00:00 2001 From: ANAND Date: Tue, 26 Nov 2019 00:33:34 +0530 Subject: [PATCH 024/624] Use a safer implementation of gsub in core.chat_format_message (#9133) This search-and-replace implementation does not use Lua pattern-matching --- builtin/game/chat.lua | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/builtin/game/chat.lua b/builtin/game/chat.lua index ad703b94c..d0d456a46 100644 --- a/builtin/game/chat.lua +++ b/builtin/game/chat.lua @@ -1,27 +1,41 @@ -- Minetest: builtin/game/chat.lua +-- Helper function that implements search and replace without pattern matching +-- Returns the string and a boolean indicating whether or not the string was modified +local function safe_gsub(s, replace, with) + local i1, i2 = s:find(replace, 1, true) + if not i1 then + return s, false + end + + return s:sub(1, i1 - 1) .. with .. s:sub(i2 + 1), true +end + -- -- Chat message formatter -- -- Implemented in Lua to allow redefinition function core.format_chat_message(name, message) - local str = core.settings:get("chat_message_format") local error_str = "Invalid chat message format - missing %s" - local i + local str = core.settings:get("chat_message_format") + local replaced - str, i = str:gsub("@name", name, 1) - if i == 0 then + -- Name + str, replaced = safe_gsub(str, "@name", name) + if not replaced then error(error_str:format("@name"), 2) end - str, i = str:gsub("@message", message, 1) - if i == 0 then + -- Timestamp + str = safe_gsub(str, "@timestamp", os.date("%H:%M:%S", os.time())) + + -- Insert the message into the string only after finishing all other processing + str, replaced = safe_gsub(str, "@message", message) + if not replaced then error(error_str:format("@message"), 2) end - str = str:gsub("@timestamp", os.date("%H:%M:%S", os.time()), 1) - return str end From 7a0884e2cdcdf39f832b56421a584b770c98f61b Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Mon, 9 Dec 2019 21:05:07 +0000 Subject: [PATCH 025/624] Fix spaces breaking formspec_version[] tag --- src/gui/guiFormSpecMenu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 83d7923d9..8d740237c 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -2005,7 +2005,7 @@ bool GUIFormSpecMenu::parseVersionDirect(const std::string &data) return false; } - if (parts[0] != "formspec_version") { + if (trim(parts[0]) != "formspec_version") { return false; } From 2ef04cc3089a960df641aada03a09bb5cef4da46 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Tue, 24 Dec 2019 18:12:46 +0000 Subject: [PATCH 026/624] Fix item eat sound not played if last item (#9239) --- builtin/game/item.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/game/item.lua b/builtin/game/item.lua index 8041d557e..4054949f1 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -460,10 +460,10 @@ function core.do_item_eat(hp_change, replace_with_item, itemstack, user, pointed return result end end + local def = itemstack:get_definition() if itemstack:take_item() ~= nil then user:set_hp(user:get_hp() + hp_change) - local def = itemstack:get_definition() if def and def.sound and def.sound.eat then minetest.sound_play(def.sound.eat, { pos = user:get_pos(), max_hear_distance = 16 }) end From 0d8f598df214f9464baa939f2a7ce1d1750101a9 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Thu, 5 Dec 2019 20:35:31 +0100 Subject: [PATCH 027/624] Fix LocalPlayer-bound sound playback broken by 81c2370 --- src/client/content_cao.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index a15c1cc0b..5521a6cf1 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -834,18 +834,19 @@ void GenericCAO::updateNodePos() void GenericCAO::step(float dtime, ClientEnvironment *env) { - // Handel model of local player instantly to prevent lags + // Handle model animations and update positions instantly to prevent lags if (m_is_local_player) { LocalPlayer *player = m_env->getLocalPlayer(); + m_position = player->getPosition(); + pos_translator.val_current = m_position; + m_rotation.Y = wrapDegrees_0_360(player->getYaw()); + rot_translator.val_current = m_rotation; + if (m_is_visible) { int old_anim = player->last_animation; float old_anim_speed = player->last_animation_speed; - m_position = player->getPosition(); - m_rotation.Y = wrapDegrees_0_360(player->getYaw()); m_velocity = v3f(0,0,0); m_acceleration = v3f(0,0,0); - pos_translator.val_current = m_position; - rot_translator.val_current = m_rotation; const PlayerControl &controls = player->getPlayerControl(); bool walking = false; From 5e4739b4607e2867783c71c0301e1aa3df16529a Mon Sep 17 00:00:00 2001 From: William Breathitt Gray Date: Sat, 16 Nov 2019 13:14:24 -0500 Subject: [PATCH 028/624] Fix find_path for newer jsoncpp installations The upstream JsonCpp project has renamed the `json/features.h` file to `json/json_features.h`. This patch fixes the JsonCpp installation search by looking for `json/allocator.h` which has not been renamed on newer versions of JsonCpp. Fixes: https://github.com/minetest/minetest/issues/9119 --- cmake/Modules/FindJson.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Modules/FindJson.cmake b/cmake/Modules/FindJson.cmake index 26339a295..53ddf4599 100644 --- a/cmake/Modules/FindJson.cmake +++ b/cmake/Modules/FindJson.cmake @@ -8,7 +8,7 @@ option(ENABLE_SYSTEM_JSONCPP "Enable using a system-wide JSONCPP. May cause seg if(ENABLE_SYSTEM_JSONCPP) find_library(JSON_LIBRARY NAMES jsoncpp) - find_path(JSON_INCLUDE_DIR json/features.h PATH_SUFFIXES jsoncpp) + find_path(JSON_INCLUDE_DIR json/allocator.h PATH_SUFFIXES jsoncpp) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(JSONCPP DEFAULT_MSG JSON_LIBRARY JSON_INCLUDE_DIR) From c00081b62c115e773078d534ca1809d557a488c8 Mon Sep 17 00:00:00 2001 From: Oguz Ersen Date: Sun, 27 Oct 2019 13:16:37 +0000 Subject: [PATCH 029/624] Translated using Weblate (Turkish) Currently translated at 100.0% (1274 of 1274 strings) --- po/tr/minetest.po | 194 ++++++++++++++++++++++------------------------ 1 file changed, 94 insertions(+), 100 deletions(-) diff --git a/po/tr/minetest.po b/po/tr/minetest.po index d7347a86c..49f1deb7d 100644 --- a/po/tr/minetest.po +++ b/po/tr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Turkish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-27 21:50+0000\n" +"Last-Translator: Oguz Ersen \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.9.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Öldün" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Lua betiğinde, bir mod gibi, bir hata oluştu:" +msgstr "Lua komut dosyasında bir hata oluştu:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -120,27 +119,24 @@ msgid "Mod:" msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "İsteğe bağlı bağımlılıklar:" +msgstr "(İsteğe bağlı) bağımlılık yok" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Verilen oyun açıklaması yok." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Bağımlılık yok." +msgstr "Katı bağımlılık yok" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Verilen mod paketi açıklaması yok." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "İsteğe bağlı bağımlılıklar:" +msgstr "İsteğe bağlı bağımlılık yok" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -782,9 +778,8 @@ msgid "Waving Leaves" msgstr "Dalgalanan Yapraklar" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Dalgalanan Nodlar" +msgstr "Dalgalanan Sıvılar" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1529,7 +1524,7 @@ msgid "Register and Join" msgstr "Kaydol ve Katıl" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1537,11 +1532,11 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"\"%2$s\" adıyla %1$s adresindeki sunucuya ilk kez bağlanmak üzeresiniz. " -"Devam ederseniz, bu sunucuda, bilgileriniz kullanılarak yeni bir hesap " -"yaratılacak.\n" -"Lütfen hesap yaratmayı onaylamak için parolanızı tekrar girin ve Kaydol ve " -"Katıl'a tıklayın veya vaz geçmek İptal'e tıklayın." +"Bu sunucuya \"%s\" adıyla ilk kez katılmak üzeresiniz.\n" +"Devam ederseniz, kimlik bilgilerinizi kullanarak yeni bir hesap bu sunucuda " +"oluşturulur.\n" +"Lütfen şifrenizi tekrar yazın ve hesap oluşturmayı onaylamak için 'Kayıt Ol " +"ve Katıl' düğmesini tıklayın veya iptal etmek için 'İptal'i tıklayın." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1684,9 +1679,8 @@ msgid "Toggle noclip" msgstr "Hayalet aç/kapa" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Sohbet günlüğünü aç/kapa" +msgstr "Pitchmove'u aç/kapa" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1817,9 +1811,8 @@ msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "Step dağ aralıklarının boyutunu/oluşumunu denetleyen 2D gürültü." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "Yuvarlanan tepelerin şeklini/boyutunu denetleyen 2D gürültü." +msgstr "Nehir vadilerini ve kanallarını belirleyen 2B gürültü." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -1857,7 +1850,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "Mapchunk başına zindan sayısını belirleyen 3B gürültü." #: src/settings_translation_file.cpp msgid "" @@ -1913,7 +1906,7 @@ msgstr "Havada hızlanma" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Yerçekimi ivmesi, saniyede saniye başına düğüm sayısı halinde." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2143,17 +2136,16 @@ msgid "Bumpmapping" msgstr "Tümsek eşleme" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" "Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Nodlarda düzlem uzaklığına yakın kamera, 0 ile 0.5 arasında \n" -"Çoğu kullanıcının bu değiştirmesi gerekmez.\n" -"Artırmak, zayıf GPUlarda bozulmayı azaltabilir.\n" -"0.1 = Öntanımlı, 0.25 = Zayıf tabletler için iyi değer." +"Düğümlerde kamera 'düğüm düzlemine yakın' uzaklığı, 0 ile 0,5 arasında.\n" +"Çoğu kullanıcının bunu değiştirmesi gerekmez.\n" +"Artırma, zayıf GPU'larda görüntü bozulmalarını azaltabilir.\n" +"0,1 = Varsayılan, 0,25 = Zayıf tabletler için iyi değer." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2239,9 +2231,8 @@ msgid "Chat message count limit" msgstr "Sohbet ileti sayısı sınırı" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Sohbet iletisi maksimum uzunluğu" +msgstr "Sohbet mesajı formatı" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2418,7 +2409,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Sıvıdaki batma hızını kontrol eder." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2483,9 +2474,8 @@ msgid "Debug info toggle key" msgstr "Hata ayıklama bilgisi açma/kapama tuşu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Çöl gürültü eşiği" +msgstr "Hata ayıklama log dosyası boyutu eşiği" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2497,7 +2487,7 @@ msgstr "Ses alçaltma tuşu" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." -msgstr "" +msgstr "Harekete karşı sıvı direncini artırmak için bunu azaltın." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2590,9 +2580,8 @@ msgid "Defines the base ground level." msgstr "Taban yer seviyesini belirler." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Taban yer seviyesini belirler." +msgstr "Nehir kanalının derinliğini tanımlar." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2601,14 +2590,12 @@ msgstr "" "sınırsız)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Geniş çaplı nehir kanal yapısını belirler." +msgstr "Nehir kanalının genişliğini tanımlar." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Ağaçların elması olacağı alanları belirler." +msgstr "Nehir vadisinin genişliğini tanımlar." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2641,6 +2628,9 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" +"Kullanılmıyor, bunun yerine biome tanımlarını kullanarak mağara sıvılarını " +"tanımlayın ve bulun.\n" +"Büyük mağaralarda lav üst sınırının Y'si." #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2663,13 +2653,12 @@ msgid "Desert noise threshold" msgstr "Çöl gürültü eşiği" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" -"np_biome bu değeri aştığında Çöller oluşur.\n" -"Yeni biyom sistemi etkinken, bu yok sayılır." +"Çöller, np_biome bu değeri aştığında gerçekleşir.\n" +"'Snowbiomes' bayrağı etkinleştirildiğinde, bu dikkate alınmaz." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2716,9 +2705,8 @@ msgid "Dungeon minimum Y" msgstr "Zindan minimum Y" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Zindan minimum Y" +msgstr "Zindan gürültüsü" #: src/settings_translation_file.cpp msgid "" @@ -3072,6 +3060,9 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Oyuncu sohbet mesajlarının formatı. Aşağıdaki stringler geçerli yer " +"tutuculardır:\n" +"@name, @message, @timestamp (isteğe bağlı)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3327,18 +3318,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Atlarken veya düşerken havada yatay hızlanma,\n" +"saniyede saniye başına düğüm sayısı halinde." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Hızlı modda yatay ve dikey hızlanma,\n" +"saniyede saniye başına düğüm sayısı halinde." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Zeminde veya tırmanırken yatay ve dikey hızlanma,\n" +"saniyede saniye başına düğüm sayısı halinde." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3625,6 +3622,10 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Debug.txt dosyasının boyutu, açıldığında bu ayarda belirtilen megabayt\n" +"sayısını aşıyorsa, dosya varsa eski bir debug.txt.1 dosyasını\n" +"silerek debug.txt.1 dosyasına taşınır.\n" +"debug.txt yalnızca bu ayar pozitifse taşınır." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3658,7 +3659,7 @@ msgstr "Ses yükseltme tuşu" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Atlama sırasında ilk dikey hız, saniyede düğümler halinde." #: src/settings_translation_file.cpp msgid "" @@ -4684,9 +4685,8 @@ msgid "Liquid queue purge time" msgstr "Sıvı sırası silme zamanı" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Sıvı inme hızı" +msgstr "Sıvı batışı" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -4768,14 +4768,14 @@ msgstr "" "'altitude_dry': Nemi yükseklikle azaltır." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen flat.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Mapgen v7'ye özgü harita üretim özellikleri.\n" -"'ridges' nehirleri etkinleştirir." +"Mapgen düzlüğüne özgü harita oluşturma özellikleri.\n" +"'terrain' fraktal olmayan arazi oluşumunu sağlar:\n" +"okyanus, adalar ve yeraltı." #: src/settings_translation_file.cpp msgid "" @@ -4790,17 +4790,17 @@ msgid "Map generation attributes specific to Mapgen v5." msgstr "Mapgen v5'e özgü harita üretim değerleri." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" -"Mapgen v6'ya özgü harita üretim değerleri.\n" -"'snowbiomes' bayrağı yeni 5 biyom sistemini etkinleştir.\n" -"Yeni biyom sistemi etkinken cangıllar kendiliğinden etkinleştirilir ve\n" -"'jungles' bayrağı yok sayılır." +"Mapgen v6'ya özgü harita oluşturma özellikleri.\n" +"'snowbiomes' bayrağı yeni 5 biome sistemini etkinleştirir.\n" +"'snowbiomes' bayrağı etkinleştirildiğinde, ormanlar otomatik olarak " +"etkinleştirilir ve\n" +"'jungles' bayrağı dikkate alınmaz." #: src/settings_translation_file.cpp msgid "" @@ -4855,9 +4855,8 @@ msgid "Mapgen Fractal" msgstr "Mapgen Fraktal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Mapgen Düz'e özgü bayraklar" +msgstr "Mapgen Fractal'a özgü bayraklar" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -4944,6 +4943,8 @@ msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Maksimum sıvı direnci. Yüksek hızda sıvıya girerken yavaşlamayı\n" +"kontrol eder." #: src/settings_translation_file.cpp msgid "" @@ -5149,20 +5150,16 @@ msgid "Mute sound" msgstr "Sesi kapat" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" "Current mapgens in a highly unstable state:\n" "- The optional floatlands of v7 (disabled by default)." msgstr "" -"Yeni bir dünya yaratırken kullanılacak harita üretecinin adı.\n" -"Ana menüde bir dünya yaratmak bunu etkisiz kılar.\n" -"Şu anki kararlı harita üreteçleri:\n" -"v5, v6, v7 (yüzenkaralar hariç), tek-nod.\n" -"'kararlı', var olan bir dünyada arazi şekli gelecekte değişmeyecek " -"demektir.\n" -"Biyomların oyun tarafından belirlendiğini ve değişebileceğini unutmayın." +"Yeni bir dünya oluştururken kullanılacak harita üreticisinin adı.\n" +"Ana menüde bir dünya oluşturmak bunu geçersiz kılacaktır.\n" +"Aşırı dengesiz durumdaki mevcut harita oluşturucular:\n" +"- İsteğe bağlı v7 yüzer alanları (varsayılan olarak devre dışıdır)." #: src/settings_translation_file.cpp msgid "" @@ -5181,9 +5178,8 @@ msgstr "" "Oyuncular katılındığında ve sunucu listesinde görüntülenecek sunucu adı." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near clipping plane" -msgstr "Düzleme yakın" +msgstr "Kırpma düzlemi yakınında" #: src/settings_translation_file.cpp msgid "Network" @@ -5234,7 +5230,6 @@ msgid "Number of emerge threads" msgstr "Emerge iş sayısı" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "WARNING: Currently there are multiple bugs that may cause crashes when\n" @@ -5251,15 +5246,20 @@ msgid "" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" "Kullanılacak emerge iş parçacıklarının sayısı.\n" -"Boş veya 0 değeri:\n" -"- Kendiliğinden seçim. İş parçacığı sayısı, 1 alt sınırıyla,\n" -"- 'işlemci sayısı - 2' olur.\n" +"UYARI: Şu anda 'num_emerge_threads' 1'den büyük olduğunda çökmelere neden\n" +"olabilecek birden fazla hata var. Bu uyarı kaldırılıncaya kadar, bu değerin " +"varsayılan\n" +"'1' olarak ayarlanması şiddetle önerilir.\n" +"Değer 0:\n" +"- Otomatik seçim. Ortaya çıkan emerge iş parçacıklarının sayısı\n" +"- alt limit 1 olmak üzere 'işlemci sayısı - 2' olacaktır.\n" "Başka bir değer:\n" -"- Emerge iş parçacığı sayısını, 1 alt sınırıyla, belirtir.\n" -"Uyarı: Emerge iş parçacığı sayısını artırmak, motor mapgen hızını artırır,\n" -"ancak bu oyun performansına, diğer işlemlere engel olarak, zarar verebilir,\n" -"özellikle tek-oyunculuda ve/veya 'on_generated'da Lua kodu çalıştırırken.\n" -"Bir çok kullanıcı için optimum değer '1' olabilir." +"- Emerge iş parçacıklarının sayısını, alt sınır 1 olmak üzere belirtir.\n" +"UYARI: Emerge iş parçacığı sayısının arttırılması, motor mapgen hızını " +"arttırır, ancak\n" +"bu, özellikle tek oyunculu ve/veya Lua kodunu 'on_generated' çalıştırırken,\n" +"diğer işlemlere müdahale ederek oyun performansına zarar verebilir.\n" +"Birçok kullanıcı için optimum ayar '1' olabilir." #: src/settings_translation_file.cpp msgid "" @@ -5525,14 +5525,12 @@ msgid "Rightclick repetition interval" msgstr "Sağ tık tekrarlama aralığı" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Nehir derinliği" +msgstr "Nehir kanal derinliği" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Nehir derinliği" +msgstr "Nehir kanal genişliği" #: src/settings_translation_file.cpp msgid "River depth" @@ -5547,9 +5545,8 @@ msgid "River size" msgstr "Nehir boyutu" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Nehir derinliği" +msgstr "Nehir vadisi genişliği" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -5890,7 +5887,7 @@ msgstr "Sızma hızı" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Sinsice ilerleme hızı, saniyede düğümler halinde." #: src/settings_translation_file.cpp msgid "Sound" @@ -6269,7 +6266,6 @@ msgid "Undersampling" msgstr "Aşağı örnekleme" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6277,10 +6273,11 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"Aşağı örnekleme daha düşük bir ekran çözünürlüğü kullanmaya benzer, ancak\n" -"yalnızca oyun dünyasına uygulanır, GUI'ye dokunulmaz.\n" -"Daha az ayrıntılı resimler pahasına belirgin bir performans artışı vermesi " -"beklenir." +"Alt örnekleme, daha düşük bir ekran çözünürlüğü kullanmaya benzer, ancak\n" +"GUI'yi koruyarak, yalnızca oyun dünyasına uygulanır.\n" +"Daha az ayrıntılı görüntü karşılığında önemli bir performans artışı " +"sağlamalıdır.\n" +"Daha yüksek değerler daha az ayrıntılı bir görüntü sağlar." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6390,7 +6387,7 @@ msgstr "Uçurumların dikliğini değiştirir." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Dikey tırmanma hızı, saniyede düğümler halinde." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6448,7 +6445,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Yürüme ve uçuş hızı, saniyede düğümler halinde." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6456,7 +6453,7 @@ msgstr "Yürüme hızı" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" +msgstr "Hızlı modda yürüme, uçma ve tırmanma hızı, saniyede düğümler halinde." #: src/settings_translation_file.cpp msgid "Water level" @@ -6483,19 +6480,16 @@ msgid "Waving water" msgstr "Dalgalanan su" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave height" -msgstr "Dalgalanan su yüksekliği" +msgstr "Sallanan su dalgası yüksekliği" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave speed" -msgstr "Dalgalanan su hızı" +msgstr "Sallanan su dalgası hızı" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wavelength" -msgstr "Dalgalanan su uzunluğu" +msgstr "Sallanan su dalga boyu" #: src/settings_translation_file.cpp msgid "" From b3a9d607c49225f389520f79e2711c58d9bb877a Mon Sep 17 00:00:00 2001 From: monolifed Date: Sun, 27 Oct 2019 21:50:06 +0000 Subject: [PATCH 030/624] Translated using Weblate (Turkish) Currently translated at 100.0% (1274 of 1274 strings) --- po/tr/minetest.po | 114 +++++++++++++++++++++++----------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/po/tr/minetest.po b/po/tr/minetest.po index 49f1deb7d..125274059 100644 --- a/po/tr/minetest.po +++ b/po/tr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Turkish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-10-27 21:50+0000\n" -"Last-Translator: Oguz Ersen \n" +"PO-Revision-Date: 2019-10-29 11:53+0000\n" +"Last-Translator: monolifed \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -12,7 +12,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.9.1-dev\n" +"X-Generator: Weblate 3.9.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Öldün" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" -msgstr "Lua komut dosyasında bir hata oluştu:" +msgstr "Lua betiğinde bir hata oluştu:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -855,7 +855,7 @@ msgstr "Lütfen bir ad seçin!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "Sağlanan parola dosyası açılamadı: " +msgstr "Sağlanan şifre dosyası açılamadı: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " @@ -1552,7 +1552,7 @@ msgstr "Kendiliğinden-ileri" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "Kendilinden zıplama" +msgstr "Kendiliğinden zıplama" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" @@ -1680,7 +1680,7 @@ msgstr "Hayalet aç/kapa" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "Pitchmove'u aç/kapa" +msgstr "Eğim hareketi aç/kapa" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1850,7 +1850,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "Mapchunk başına zindan sayısını belirleyen 3B gürültü." +msgstr "Harita yığını başına zindan sayısını belirleyen 3B gürültü." #: src/settings_translation_file.cpp msgid "" @@ -1906,7 +1906,7 @@ msgstr "Havada hızlanma" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "Yerçekimi ivmesi, saniyede saniye başına düğüm sayısı halinde." +msgstr "Yerçekimi hızlanması, saniye başına nod cinsinden." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -1980,7 +1980,7 @@ msgstr "Ortam oklüzyon gama" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "Bir oyuncunun her 10 saniyede gönderebileceği ileti sayısı." +msgstr "Bir oyuncunun her 10 saniyede bir gönderebileceği ileti sayısı." #: src/settings_translation_file.cpp msgid "Amplifies the valleys." @@ -2069,7 +2069,7 @@ msgstr "Ekran boyutunu hatırla" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "Kendilinden boyutlandırma kipi" +msgstr "Kendiliğinden boyutlandırma kipi" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2142,10 +2142,11 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Düğümlerde kamera 'düğüm düzlemine yakın' uzaklığı, 0 ile 0,5 arasında.\n" +"Nodlar arasındaki, kamera 'yakın kırpma düzlem' uzaklığı, 0 ile 0,5 arasında." +"\n" "Çoğu kullanıcının bunu değiştirmesi gerekmez.\n" "Artırma, zayıf GPU'larda görüntü bozulmalarını azaltabilir.\n" -"0,1 = Varsayılan, 0,25 = Zayıf tabletler için iyi değer." +"0,1 = Öntanımlı, 0,25 = Zayıf tabletler için iyi değer." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2232,7 +2233,7 @@ msgstr "Sohbet ileti sayısı sınırı" #: src/settings_translation_file.cpp msgid "Chat message format" -msgstr "Sohbet mesajı formatı" +msgstr "Sohbet ileti biçimi" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2409,7 +2410,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "Sıvıdaki batma hızını kontrol eder." +msgstr "Sıvıdaki batma hızını denetler." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2475,7 +2476,7 @@ msgstr "Hata ayıklama bilgisi açma/kapama tuşu" #: src/settings_translation_file.cpp msgid "Debug log file size threshold" -msgstr "Hata ayıklama log dosyası boyutu eşiği" +msgstr "Hata ayıklama günlük dosyası boyut eşiği" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2511,7 +2512,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Default password" -msgstr "Öntanımlı parola" +msgstr "Öntanımlı şifre" #: src/settings_translation_file.cpp msgid "Default privileges" @@ -2628,7 +2629,7 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" -"Kullanılmıyor, bunun yerine biome tanımlarını kullanarak mağara sıvılarını " +"Kullanılmıyor, bunun yerine biyom tanımlarını kullanarak mağara sıvılarını " "tanımlayın ve bulun.\n" "Büyük mağaralarda lav üst sınırının Y'si." @@ -2658,7 +2659,7 @@ msgid "" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" "Çöller, np_biome bu değeri aştığında gerçekleşir.\n" -"'Snowbiomes' bayrağı etkinleştirildiğinde, bu dikkate alınmaz." +"'Snowbiomes' bayrağı etkinleştirildiğinde, bu yok sayılır." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -3060,8 +3061,7 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" -"Oyuncu sohbet mesajlarının formatı. Aşağıdaki stringler geçerli yer " -"tutuculardır:\n" +"Oyuncu sohbet ileti biçimi. Aşağıdaki dizeler geçerli yer tutuculardır:\n" "@name, @message, @timestamp (isteğe bağlı)" #: src/settings_translation_file.cpp @@ -3318,24 +3318,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" -"Atlarken veya düşerken havada yatay hızlanma,\n" -"saniyede saniye başına düğüm sayısı halinde." +"Zıplarken veya düşerken havada yatay hızlanma,\n" +"saniye başına nod cinsinden." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" -"Hızlı modda yatay ve dikey hızlanma,\n" -"saniyede saniye başına düğüm sayısı halinde." +"Hızlı kipte yatay ve dikey hızlanma,\n" +"saniye başına nod cinsinden." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" -"Zeminde veya tırmanırken yatay ve dikey hızlanma,\n" -"saniyede saniye başına düğüm sayısı halinde." +"Yerdeyken veya tırmanırken yatay ve dikey hızlanma,\n" +"saniye başına nod cinsinden." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3659,7 +3659,7 @@ msgstr "Ses yükseltme tuşu" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "Atlama sırasında ilk dikey hız, saniyede düğümler halinde." +msgstr "Zıplarken ilk dikey hız, saniye başına nod cinsinden." #: src/settings_translation_file.cpp msgid "" @@ -4533,7 +4533,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "10 saniyede X iletiden çok gönderen oyuncuları at." +msgstr "10 saniyede bir X iletiden çok gönderen oyuncuları at." #: src/settings_translation_file.cpp msgid "Lake steepness" @@ -4773,8 +4773,8 @@ msgid "" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Mapgen düzlüğüne özgü harita oluşturma özellikleri.\n" -"'terrain' fraktal olmayan arazi oluşumunu sağlar:\n" +"Mapgen düz'e özgü harita üretim değerleri.\n" +"'terrain' fraktal olmayan arazi üretimini etkinleştirir:\n" "okyanus, adalar ve yeraltı." #: src/settings_translation_file.cpp @@ -4796,11 +4796,11 @@ msgid "" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" -"Mapgen v6'ya özgü harita oluşturma özellikleri.\n" -"'snowbiomes' bayrağı yeni 5 biome sistemini etkinleştirir.\n" -"'snowbiomes' bayrağı etkinleştirildiğinde, ormanlar otomatik olarak " +"Mapgen v6'ya özgü harita üretim değerleri.\n" +"'snowbiomes' bayrağı yeni 5 biyom sistemini etkinleştirir.\n" +"'snowbiomes' bayrağı etkinleştirildiğinde, ormanlar kendiliğinden " "etkinleştirilir ve\n" -"'jungles' bayrağı dikkate alınmaz." +"'jungles' bayrağı yok sayılır." #: src/settings_translation_file.cpp msgid "" @@ -4856,7 +4856,7 @@ msgstr "Mapgen Fraktal" #: src/settings_translation_file.cpp msgid "Mapgen Fractal specific flags" -msgstr "Mapgen Fractal'a özgü bayraklar" +msgstr "Mapgen Fraktal'a özgü bayraklar" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -4944,7 +4944,7 @@ msgid "" "high speed." msgstr "" "Maksimum sıvı direnci. Yüksek hızda sıvıya girerken yavaşlamayı\n" -"kontrol eder." +"denetler." #: src/settings_translation_file.cpp msgid "" @@ -5156,10 +5156,10 @@ msgid "" "Current mapgens in a highly unstable state:\n" "- The optional floatlands of v7 (disabled by default)." msgstr "" -"Yeni bir dünya oluştururken kullanılacak harita üreticisinin adı.\n" +"Yeni bir dünya oluştururken kullanılacak harita üretecinin adı.\n" "Ana menüde bir dünya oluşturmak bunu geçersiz kılacaktır.\n" -"Aşırı dengesiz durumdaki mevcut harita oluşturucular:\n" -"- İsteğe bağlı v7 yüzer alanları (varsayılan olarak devre dışıdır)." +"Şu anda aşırı dengesiz durumdaki harita üreteçleri:\n" +"- v7'nin isteğe bağlı yüzenkaraları (öntanımlı olarak devre dışı)." #: src/settings_translation_file.cpp msgid "" @@ -5179,7 +5179,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Near clipping plane" -msgstr "Kırpma düzlemi yakınında" +msgstr "Yakın kırpma düzlemi" #: src/settings_translation_file.cpp msgid "Network" @@ -5246,20 +5246,20 @@ msgid "" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" "Kullanılacak emerge iş parçacıklarının sayısı.\n" -"UYARI: Şu anda 'num_emerge_threads' 1'den büyük olduğunda çökmelere neden\n" -"olabilecek birden fazla hata var. Bu uyarı kaldırılıncaya kadar, bu değerin " -"varsayılan\n" -"'1' olarak ayarlanması şiddetle önerilir.\n" +"UYARI: Şu anda 'num_emerge_threads' 1'den büyük olduğunda çökmelere\n" +"neden olabilecek birden fazla hata var. Bu uyarı kaldırılıncaya kadar, bu " +"değerin\n" +"öntanımlı '1' olarak ayarlanması şiddetle önerilir.\n" "Değer 0:\n" -"- Otomatik seçim. Ortaya çıkan emerge iş parçacıklarının sayısı\n" +"- Kendiliğinden seçim. Ortaya çıkan emerge iş parçacıklarının sayısı\n" "- alt limit 1 olmak üzere 'işlemci sayısı - 2' olacaktır.\n" "Başka bir değer:\n" "- Emerge iş parçacıklarının sayısını, alt sınır 1 olmak üzere belirtir.\n" -"UYARI: Emerge iş parçacığı sayısının arttırılması, motor mapgen hızını " +"UYARI: Emerge iş parçacığı sayısının artırılması, motor mapgen hızını " "arttırır, ancak\n" "bu, özellikle tek oyunculu ve/veya Lua kodunu 'on_generated' çalıştırırken,\n" -"diğer işlemlere müdahale ederek oyun performansına zarar verebilir.\n" -"Birçok kullanıcı için optimum ayar '1' olabilir." +"diğer işlemlere etki ederek oyun performansına zarar verebilir.\n" +"Birçok kullanıcı için en iyi ayar '1' olabilir." #: src/settings_translation_file.cpp msgid "" @@ -5887,7 +5887,7 @@ msgstr "Sızma hızı" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "Sinsice ilerleme hızı, saniyede düğümler halinde." +msgstr "Sızma hızı, saniye başına nod cinsinden." #: src/settings_translation_file.cpp msgid "Sound" @@ -5951,7 +5951,7 @@ msgstr "Paralaks gücü." #: src/settings_translation_file.cpp msgid "Strict protocol checking" -msgstr "Sıkı protokol denetleme" +msgstr "Katı protokol denetleme" #: src/settings_translation_file.cpp msgid "Strip color codes" @@ -6387,7 +6387,7 @@ msgstr "Uçurumların dikliğini değiştirir." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "Dikey tırmanma hızı, saniyede düğümler halinde." +msgstr "Dikey tırmanma hızı, saniye başına nod cinsinden." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6445,7 +6445,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "Yürüme ve uçuş hızı, saniyede düğümler halinde." +msgstr "Yürüme ve uçma hızı, saniye başına nod cinsinden." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6453,7 +6453,7 @@ msgstr "Yürüme hızı" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "Hızlı modda yürüme, uçma ve tırmanma hızı, saniyede düğümler halinde." +msgstr "Hızlı kipte yürüme, uçma ve tırmanma hızı, saniye başına nod cinsinden." #: src/settings_translation_file.cpp msgid "Water level" @@ -6481,15 +6481,15 @@ msgstr "Dalgalanan su" #: src/settings_translation_file.cpp msgid "Waving water wave height" -msgstr "Sallanan su dalgası yüksekliği" +msgstr "Dalgalanan su dalga yüksekliği" #: src/settings_translation_file.cpp msgid "Waving water wave speed" -msgstr "Sallanan su dalgası hızı" +msgstr "Dalgalanan su dalga hızı" #: src/settings_translation_file.cpp msgid "Waving water wavelength" -msgstr "Sallanan su dalga boyu" +msgstr "Dalgalanan su dalga boyu" #: src/settings_translation_file.cpp msgid "" From 0e52b78590189ec963e0521c6c768a2839dcd11d Mon Sep 17 00:00:00 2001 From: nautilusx Date: Sun, 27 Oct 2019 13:34:27 +0000 Subject: [PATCH 031/624] Translated using Weblate (German) Currently translated at 100.0% (1274 of 1274 strings) --- po/de/minetest.po | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/po/de/minetest.po b/po/de/minetest.po index 3e6d79408..0d85c240d 100644 --- a/po/de/minetest.po +++ b/po/de/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: German (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-29 11:53+0000\n" +"Last-Translator: nautilusx \n" "Language-Team: German \n" "Language: de\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.9.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Sie sind gestorben" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Es ist ein Fehler in einem Lua-Skript aufgetreten, z.B. in einer Mod:" +msgstr "In einem Lua-Skript ist ein Fehler aufgetreten:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -120,27 +119,24 @@ msgid "Mod:" msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Optionale Abhängigkeiten:" +msgstr "Keine (optionalen) Abhängigkeiten" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Keine Spielbeschreibung verfügbar." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Keine Abhängigkeiten." +msgstr "Keine harten Abhängigkeiten" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Keine Modpackbeschreibung verfügbar." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Optionale Abhängigkeiten:" +msgstr "Keine optionalen Abhängigkeiten" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" From d215b7a10e191d92200c781150c9883b23b95446 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Mon, 28 Oct 2019 00:34:23 +0000 Subject: [PATCH 032/624] Translated using Weblate (German) Currently translated at 100.0% (1274 of 1274 strings) --- po/de/minetest.po | 148 +++++++++++++++++++++++----------------------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/po/de/minetest.po b/po/de/minetest.po index 0d85c240d..07332f945 100644 --- a/po/de/minetest.po +++ b/po/de/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" "PO-Revision-Date: 2019-10-29 11:53+0000\n" -"Last-Translator: nautilusx \n" +"Last-Translator: Wuzzy \n" "Language-Team: German \n" "Language: de\n" @@ -781,9 +781,8 @@ msgid "Waving Leaves" msgstr "Wehende Blätter" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Wehende Blöcke" +msgstr "Wasserwellen" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1528,7 +1527,7 @@ msgid "Register and Join" msgstr "Registrieren und beitreten" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1536,9 +1535,10 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Sie sind im Begriff, dem Server an %1$s mit dem Namen „%2$s“ für das erste " -"Mal beizutreten. Falls Sie fortfahren, wird ein neues Benutzerkonto mit " -"Ihren Anmeldedaten auf diesem Server erstellt.\n" +"Sie sind im Begriff, dem Server mit dem Namen „%s“ für das erste Mal " +"beizutreten.\n" +"Falls Sie fortfahren, wird ein neues Benutzerkonto mit Ihren Anmeldedaten " +"auf diesem Server erstellt.\n" "Bitte geben Sie Ihr Passwort erneut ein und klicken Sie auf „Registrieren " "und beitreten“, um die Erstellung des Benutzerkontos zu bestätigen oder " "klicken Sie auf „Abbrechen“ zum Abbrechen." @@ -1686,9 +1686,8 @@ msgid "Toggle noclip" msgstr "Geistmodus" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Chat an/aus" +msgstr "Nickbewegung" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1826,9 +1825,8 @@ msgstr "" "2-D-Rauschen, welches die Größe/Vorkommen von Stufenbergketten steuert." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "2-D-Rauschen, welches die Form/Größe von sanften Hügeln steuert." +msgstr "2-D-Rauschen, welches den Ort der Flusstäler und -kanäle regelt." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -1868,7 +1866,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3-D-Rauschen, welches die Anzahl der Verliese je Mapchunk festlegt." #: src/settings_translation_file.cpp msgid "" @@ -1932,7 +1930,7 @@ msgstr "Beschleunigung in der Luft" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Beschleunigung der Schwerkraft, in Blöcken pro Sekunde pro Sekunde." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2160,18 +2158,16 @@ msgid "Bumpmapping" msgstr "Bumpmapping" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" "Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Distanz von der Kamera zur vorderen Clippingebene in Blöcken,\n" -"zwischen 0 und 0.5.\n" +"Distanz von der Kamera zur vorderen Clippingebene in Blöcken, zwischen 0 und " +"0.5.\n" "Die meisten Benutzer müssen dies nicht ändern.\n" -"Eine Erhöhung dieses Wertes kann Artefakte auf schwächeren GPUs\n" -"reduzieren.\n" +"Eine Erhöhung dieses Wertes kann Artefakte auf schwächeren GPUs reduzieren.\n" "0.1 = Standard, 0.25 = Guter Wert für schwächere Tablets." #: src/settings_translation_file.cpp @@ -2259,9 +2255,8 @@ msgid "Chat message count limit" msgstr "Max. Anzahl Chatnachrichten" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Max. Chatnachrichtenlänge" +msgstr "Chatnachrichtenformat" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2444,7 +2439,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Regelt die Sinkgeschwindigkeit in Flüssigkeiten." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2508,9 +2503,8 @@ msgid "Debug info toggle key" msgstr "Taste zum Umschalten der Debug-Info" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Wüstenrauschschwellwert" +msgstr "Debugprotokolldateigrößengrenze" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2523,6 +2517,7 @@ msgstr "Leiser-Taste" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." msgstr "" +"Dies verringern, um den Bewegungswiderstand in Flüssigkeiten zu erhöhen." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2619,9 +2614,8 @@ msgid "Defines the base ground level." msgstr "Definiert die Basisgeländehöhe." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Definiert die Basisgeländehöhe." +msgstr "Definiert die Tiefe des Flusskanals." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2630,14 +2624,12 @@ msgstr "" "in Kartenblöcken (0 = unbegrenzt)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Definiert große Flusskanalformationen." +msgstr "Definiert die Breite des Flusskanals." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Definiert Gebiete, in denen Bäume Äpfel tragen." +msgstr "Definiert die Breite des Flusstals." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2670,6 +2662,9 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" +"Misbilligte Einstellung. Definieren/Finden Sie statdessen " +"Höhlenflüssigkeiten in Biomdefinitionen.\n" +"Y der Obergrenze von Lava in großen Höhlen." #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2692,13 +2687,12 @@ msgid "Desert noise threshold" msgstr "Wüstenrauschschwellwert" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" "Wüsten treten auf, wenn np_biome diesen Wert überschreitet.\n" -"Falls das neue Biomsystem aktiviert ist, wird dies ignoriert." +"Falls das „snowbiomes“-Flag aktiviert ist, wird dies ignoriert." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2745,9 +2739,8 @@ msgid "Dungeon minimum Y" msgstr "Verlies: Min. Y" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Verlies: Min. Y" +msgstr "Verliesrauschen" #: src/settings_translation_file.cpp msgid "" @@ -3117,6 +3110,9 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Format der Spielerchatnachrichten. Die folgenden Zeichenketten sind gültige " +"Platzhalter:\n" +"@name, @message, @timestamp (optional)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3385,18 +3381,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Horizontale Beschleunigung in der Luft beim Springen oder Fallen,\n" +"in Blöcken pro Sekunde pro Sekunde." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Horizontale und vertikale Beschleunigung im Schnellmodus,\n" +"in Blöcken pro Sekunde pro Sekunde." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Horizontale und vertikale Beschleunigung auf dem Boden oder beim Klettern,\n" +"in Blöcken pro Sekunde pro Sekunde." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3691,6 +3693,11 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Falls die Dateigröße von debug.txt die Anzahl an in dieser Einstellung " +"festgelegten Megabytes überschreitet, wenn die Datei geöffnet wird, wird sie " +"nach debug.txt.1 verschoben, wobei eine ältere debug.txt.1 gelöscht wird, " +"falls sie existiert.\n" +"debug.txt wird nur verschoben, falls diese Einstellung positiv ist." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3730,6 +3737,7 @@ msgstr "Lauter-Taste" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." msgstr "" +"Anfängliche vertikale Geschwindigkeit beim Springen, in Blöcken pro Sekunde." #: src/settings_translation_file.cpp msgid "" @@ -4767,9 +4775,8 @@ msgid "Liquid queue purge time" msgstr "Aufräumzeit für Flüssigkeitswarteschlange" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Flüssigkeitssinkgeschwindigkeit" +msgstr "Flüssigkeitsabsinken" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -4853,14 +4860,14 @@ msgstr "" "„altitude_dry“: Reduziert Luftfeuchte mit der Höhe." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen flat.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Kartengenerierungsattribute speziell für den Kartengenerator v7.\n" -"„ridges“ aktiviert die Flüsse." +"Kartengenerierungsattribute speziell für den flachen Kartengenerator.\n" +"„terrain“ aktiviert die Erzeugung von nicht-fraktalem Gelände:\n" +"Ozean, Inseln und der Untergrund." #: src/settings_translation_file.cpp msgid "" @@ -4875,7 +4882,6 @@ msgid "Map generation attributes specific to Mapgen v5." msgstr "Kartengenerierungsattribute speziell für den Kartengenerator v5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" @@ -4884,9 +4890,8 @@ msgid "" msgstr "" "Kartengenerierungsattribute speziell für den Kartengenerator v6.\n" "Das Flag „snowbiomes“ aktiviert das neue 5-Biom-System.\n" -"Falls das neue Biomsystem aktiviert ist, werden Dschungel automatisch " -"aktiviert\n" -"und das „jungles“-Flag wird ignoriert." +"Falls das „snowbiomes“-Flag aktiviert ist, werden Dschungel automatisch " +"aktiviert und das „jungles“-Flag wird ignoriert." #: src/settings_translation_file.cpp msgid "" @@ -4941,9 +4946,8 @@ msgid "Mapgen Fractal" msgstr "Fraktale-Kartengenerator" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Flags spezifisch für flachen Kartengenerator" +msgstr "Flags spezifisch für Fraktale-Kartengenerator" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -5030,6 +5034,8 @@ msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Maximaler Flüssigkeitswiderstand. Regelt die Abbremsung beim Eintauchen in " +"eine Flüssigkeit bei hoher Geschwindigkeit." #: src/settings_translation_file.cpp msgid "" @@ -5247,7 +5253,6 @@ msgid "Mute sound" msgstr "Ton verstummen" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" @@ -5256,11 +5261,8 @@ msgid "" msgstr "" "Name des Kartengenerators, der für neue Welten benutzt werden soll.\n" "Wird eine Welt im Hauptmenü erstellt, wird diese Einstellung überschrieben.\n" -"Momentan stabile Kartengeneratoren:\n" -"v5, v6, v7 (außer Schwebeländer), singlenode.\n" -"„stabil“ heißt, dass die Geländeform in einer existierenden Welt in Zukunft\n" -"nicht geändert wird. Beachten Sie, dass Biome von Spielen definiert werden\n" -"und sich immer noch ändern können." +"Aktuelle Kartengeneratoren in einem sehr instabilem Zustand:\n" +"- Die optionalen Schwebeländer von v7 (standardmäßig deaktiviert)." #: src/settings_translation_file.cpp msgid "" @@ -5282,7 +5284,6 @@ msgstr "" "Spieler angezeigt." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near clipping plane" msgstr "Vordere Clippingebene" @@ -5336,7 +5337,6 @@ msgid "Number of emerge threads" msgstr "Anzahl der Erzeugerthreads" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "WARNING: Currently there are multiple bugs that may cause crashes when\n" @@ -5353,12 +5353,16 @@ msgid "" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" "Anzahl der zu verwendeten Erzeugerthreads.\n" +"ACHTUNG: Momentan gibt es mehrere Bugs, die Abstürze verursachen können,\n" +"wenn „num_emerge_threads“ größer als 1 ist. Bis diese Warnung entfernt ist,\n" +"wird es stark empfohlen, diesen Wert auf den Standardwert „1“ zu setzen.\n" +"Wert 0:\n" "Leerer Wert oder 0:\n" "- Automatische Wahl. Die Anzahl der Erzeugerthreads wird\n" "- „Anzahl der Prozessoren - 2“ sein, mit einer Untergrenze von 1.\n" "Jeder andere Wert:\n" "- Legt die Anzahl der Erzeugerthreads fest, mit einer Untergrenze von 1.\n" -"Achtung: Das Erhöhen der Anzahl der Erzeugerthreads erhöht die\n" +"ACHTUNG: Das Erhöhen der Anzahl der Erzeugerthreads erhöht die\n" "Geschwindigkeit des Engine-Kartengenerators, aber dies könnte die Spiel-\n" "performanz beeinträchtigen, da mit anderen Prozessen konkurriert wird,\n" "das ist besonders im Einzelspielermodus der Fall und/oder, wenn Lua-Code\n" @@ -5637,14 +5641,12 @@ msgid "Rightclick repetition interval" msgstr "Rechtsklick-Wiederholungsrate" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Flusstiefe" +msgstr "Flusskanaltiefe" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Flusstiefe" +msgstr "Flusskanalbreite" #: src/settings_translation_file.cpp msgid "River depth" @@ -5659,9 +5661,8 @@ msgid "River size" msgstr "Flussgröße" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Flusstiefe" +msgstr "Flusstalbreite" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -6007,7 +6008,7 @@ msgstr "Schleichgeschwindigkeit" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Schleichgeschwindigkeit, in Blöcken pro Sekunde." #: src/settings_translation_file.cpp msgid "Sound" @@ -6405,7 +6406,6 @@ msgid "Undersampling" msgstr "Unterabtastung" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6413,11 +6413,12 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"Unterabtastung ist ähnlich der Verwendung einer niedrigeren Bildschirm-\n" -"auflösung, aber sie wird nur auf die Spielwelt angewandt, während die GUI\n" -"intakt bleibt.\n" -"Dies sollte einen beträchtlichen Performanzschub auf Kosten einer weniger\n" -"detaillierten Grafik geben." +"Unterabtastung ist ähnlich der Verwendung einer niedrigeren " +"Bildschirmauflösung, aber sie wird nur auf die Spielwelt angewandt, während " +"das GUI intakt bleibt.\n" +"Dies sollte einen beträchtlichen Performanzschub auf Kosten einer weniger " +"detaillierten Grafik geben.\n" +"Hohe Werte führen zu einer weniger detaillierten Grafik." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6534,7 +6535,7 @@ msgstr "Varriiert die Steilheit von Klippen." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Vertikale Klettergeschwindigkeit, in Blöcken pro Sekunde." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6592,7 +6593,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Geh- und Fluggeschwindigkeit, in Blöcken pro Sekunde." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6601,6 +6602,8 @@ msgstr "Gehgeschwindigkeit" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Geh-, Flug- und Klettergeschwindigkeit im Schnellmodus, in Blöcken pro " +"Sekunde." #: src/settings_translation_file.cpp msgid "Water level" @@ -6627,19 +6630,16 @@ msgid "Waving water" msgstr "Wasserwellen" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave height" -msgstr "Wasserwellenhöhe" +msgstr "Wasserwellen: Wellenhöhe" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave speed" -msgstr "Wasserwellengeschwindigkeit" +msgstr "Wasserwellen: Wellengeschwindigkeit" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wavelength" -msgstr "Wasserwellenlänge" +msgstr "Wasserwellen: Wellenlänge" #: src/settings_translation_file.cpp msgid "" From 4814195dc40c63e2eee68982673fa2775aeb904e Mon Sep 17 00:00:00 2001 From: BreadW Date: Sun, 27 Oct 2019 13:31:15 +0000 Subject: [PATCH 033/624] Translated using Weblate (Japanese) Currently translated at 100.0% (1274 of 1274 strings) --- po/ja/minetest.po | 184 +++++++++++++++++++++------------------------- 1 file changed, 84 insertions(+), 100 deletions(-) diff --git a/po/ja/minetest.po b/po/ja/minetest.po index 50662c777..c1fb30964 100644 --- a/po/ja/minetest.po +++ b/po/ja/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Japanese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-29 11:53+0000\n" +"Last-Translator: BreadW \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.9.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "死んでしまった" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "ModなどのLuaスクリプトでエラーが発生しました:" +msgstr "Luaスクリプトでエラーが発生しました:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -87,7 +86,7 @@ msgstr "キャンセル" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "依存:" +msgstr "依存関係:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" @@ -118,27 +117,24 @@ msgid "Mod:" msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "任意:" +msgstr "(任意)依存関係なし" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "ゲームの説明がありません。" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "依存なし。" +msgstr "依存関係なし" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Modパックの説明がありません。" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "任意:" +msgstr "任意依存関係なし" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -780,9 +776,8 @@ msgid "Waving Leaves" msgstr "揺れる葉" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "揺れるノード" +msgstr "揺れる液体" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1527,7 +1522,7 @@ msgid "Register and Join" msgstr "参加登録" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1535,10 +1530,9 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"あなたはサーバ %1$s に名前 \"%2$s\" で初めて参加しようとしています。続行する" -"場合、\n" -"あなたの名前とパスワードが新しいアカウントとしてこのサーバに作成されます。\n" -"あなたのパスワードを再入力し参加登録をクリックしてアカウント作成するか、\n" +"あなたはこのサーバ に名前 \"%s\" で初めて参加しようとしています。\n" +"続行する場合、あなたの情報が新しいアカウントとしてこのサーバに作成されます。\n" +"あなたのパスワードを再入力してから '参加登録' をクリックしてアカウント作成するか、\n" "キャンセルをクリックして中断してください。" #: src/gui/guiFormSpecMenu.cpp @@ -1684,9 +1678,8 @@ msgid "Toggle noclip" msgstr "すり抜けモード切替" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "チャット表示切替" +msgstr "ピッチ移動モード切替" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1761,7 +1754,7 @@ msgstr "" "望みの点を (0,0) に移動して適切なスポーンポイントを作成したり、\n" "'スケール'を増やして望みの点に'ズームイン'できるようにするために\n" "使用できます。\n" -"規定では規定のパラメータを持つマンデルブロー集合のための適切な\n" +"既定では既定のパラメータを持つマンデルブロー集合のための適切な\n" "スポーンポイントに合わせて調整されます、他の状況で変更を必要とする\n" "かもしれません。\n" "範囲はおよそ -2~2 です。ノードのオフセットに 'scale' を掛けます。" @@ -1781,7 +1774,7 @@ msgstr "" "これらの数字は非常に大きくすることができ、フラクタルは\n" "ワールドの中に収まる必要はありません。\n" "これらを増加してフラクタルの細部を'ズーム'します。\n" -"規定値は島に適した垂直方向に押しつぶされた形状のためのもので、\n" +"既定値は島に適した垂直方向に押しつぶされた形状のためのもので、\n" "加工していないの形状のためには3つの数字をすべて等しく設定します。" #: src/settings_translation_file.cpp @@ -1817,9 +1810,8 @@ msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "ステップマウンテン地帯の大きさ/出現を制御する2Dノイズ。" #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "ゆるやかな丘の形状/大きさを制御する2Dノイズ。" +msgstr "川の谷と水路を特定する2Dノイズ。" #: src/settings_translation_file.cpp msgid "3D clouds" @@ -1855,7 +1847,7 @@ msgstr "山の張り出し、崖などの3Dノイズ。通常は小さな変化 #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "マップチャンクごとのダンジョンの数を決定する3Dノイズ。" #: src/settings_translation_file.cpp msgid "" @@ -1911,7 +1903,7 @@ msgstr "空中での加速" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "重力加速度、1秒あたりのノード数/秒です。" #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2135,17 +2127,16 @@ msgid "Bumpmapping" msgstr "バンプマッピング" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" "Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"0~0.5の間のノードでのカメラと近くの面の距離\n" +"カメラと '近くのクリッピング面' の距離、0~0.5の間のノード数です。\n" "ほとんどのユーザーはこれを変更する必要はありません。\n" "増加すると、低性能GPUでの画像の乱れを減らすことができます。\n" -"0.1 = 規定値、0.25 = 低性能タブレットに適した値です。" +"0.1 = 既定値、0.25 = 低性能タブレットに適した値です。" #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2231,9 +2222,8 @@ msgid "Chat message count limit" msgstr "チャットメッセージ数の限度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "チャットメッセージの最大長" +msgstr "チャットメッセージの形式" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2410,7 +2400,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "液体中の沈降速度を制御します。" #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2473,9 +2463,8 @@ msgid "Debug info toggle key" msgstr "デバッグ情報切り替えキー" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "砂漠ノイズのしきい値" +msgstr "デバッグログファイルのサイズのしきい値" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2487,7 +2476,7 @@ msgstr "音量を下げるキー" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." -msgstr "" +msgstr "この値を小さくすると、移動時の液体抵抗が増加します。" #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2495,7 +2484,7 @@ msgstr "専用サーバステップ" #: src/settings_translation_file.cpp msgid "Default acceleration" -msgstr "規定の加速度" +msgstr "既定の加速度" #: src/settings_translation_file.cpp msgid "Default game" @@ -2506,7 +2495,7 @@ msgid "" "Default game when creating a new world.\n" "This will be overridden when creating a world from the main menu." msgstr "" -"新しいワールドを作成する際の規定のゲーム。\n" +"新しいワールドを作成する際の既定のゲーム。\n" "メインメニューからワールドを作成するときにこれは上書きされます。" #: src/settings_translation_file.cpp @@ -2578,23 +2567,20 @@ msgid "Defines the base ground level." msgstr "基準地上レベルを定義します。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "基準地上レベルを定義します。" +msgstr "河道の深さを定義します。" #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "最大プレイヤー転送距離をブロック数で定義します(0 = 無制限)。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "大規模な河川構造を定義します。" +msgstr "河道の幅を定義します。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "木にリンゴがある地域を定義します。" +msgstr "川の谷の幅を定義します。" #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2625,6 +2611,8 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" +"廃止予定、代わりにバイオーム定義を使用して洞窟の液体を定義および特定します。\n" +"大きな洞窟内の溶岩のY高さ上限。" #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2645,13 +2633,12 @@ msgid "Desert noise threshold" msgstr "砂漠ノイズのしきい値" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" "砂漠は np_biome がこの値を超えたときに出現します。\n" -"新しいバイオームシステムを有効にすると、これは無視されます。" +"'snowbiomes' フラグを有効にすると、これは無視されます。" #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2698,9 +2685,8 @@ msgid "Dungeon minimum Y" msgstr "ダンジョンの最小Y" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "ダンジョンの最小Y" +msgstr "ダンジョンノイズ" #: src/settings_translation_file.cpp msgid "" @@ -3053,6 +3039,8 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"プレーヤーのチャットメッセージの形式。以下の文字列は有効なプレースホルダです。:\n" +"@name, @message, @timestamp (任意)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3060,7 +3048,7 @@ msgstr "スクリーンショットのファイル形式です。" #: src/settings_translation_file.cpp msgid "Formspec Default Background Color" -msgstr "フォームスペックの規定の背景色" +msgstr "フォームスペックの既定の背景色" #: src/settings_translation_file.cpp msgid "Formspec Default Background Opacity" @@ -3076,11 +3064,11 @@ msgstr "フォームスペックのフルスクリーンの背景不透明度" #: src/settings_translation_file.cpp msgid "Formspec default background color (R,G,B)." -msgstr "フォームスペックの規定の背景色 (R,G,B)。" +msgstr "フォームスペックの既定の背景色 (R,G,B)。" #: src/settings_translation_file.cpp msgid "Formspec default background opacity (between 0 and 255)." -msgstr "フォームスペックの規定の背景不透明度 (0~255の間)。" +msgstr "フォームスペックの既定の背景不透明度 (0~255の間)。" #: src/settings_translation_file.cpp msgid "Formspec full-screen background color (R,G,B)." @@ -3232,9 +3220,8 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "廃止予定のLua API呼び出しの処理:\n" -"- legacy: 古い振る舞いを模倣する(試みる) (リリースの規定値)。\n" -"- log: 廃止予定の呼び出しを模倣してバックトレースを記録 (デバッグの規定" -"値)。\n" +"- legacy: 古い振る舞いを模倣する(試みる) (リリースの既定値)。\n" +"- log: 廃止予定の呼び出しを模倣してバックトレースを記録 (デバッグの既定値)。\n" "- error: 廃止予定の呼び出しの使用を中止する (Mod開発者に推奨)。" #: src/settings_translation_file.cpp @@ -3308,18 +3295,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"ジャンプや落下時の空気中の水平加速度、\n" +"1秒あたりのノード数/秒です。" #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"高速移動モード中の水平および垂直加速度、\n" +"1秒あたりのノード数/秒です。" #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"地面や登山時の水平および垂直加速度、\n" +"1秒あたりのノード数/秒です。" #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3605,6 +3598,10 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"debug.txt のファイルサイズが指定されたメガバイト数を超える場合、\n" +"ファイルは debug.txt.1 に移動されます。\n" +"古い debug.txt.1 が存在する場合は削除されます。\n" +"debug.txt は、この設定が正の場合にのみ移動されます。" #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3636,7 +3633,7 @@ msgstr "音量を上げるキー" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "ジャンプ時の初期垂直速度、1秒あたりのノード数です。" #: src/settings_translation_file.cpp msgid "" @@ -4662,9 +4659,8 @@ msgid "Liquid queue purge time" msgstr "液体キューのパージ時間" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "液体の沈降速度" +msgstr "液体中の沈降" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -4742,14 +4738,14 @@ msgstr "" "'altitude_dry': 高度とともに湿度を下げます。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen flat.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"マップジェネレータ v7 に固有のマップ生成属性。\n" -"'ridges' は川ができるようにします。" +"マップジェネレータ fractal に固有のマップ生成属性。\n" +"'terrain' は非フラクタルな地形ができるようにします:\n" +"海、島そして地下。" #: src/settings_translation_file.cpp msgid "" @@ -4764,7 +4760,6 @@ msgid "Map generation attributes specific to Mapgen v5." msgstr "マップジェネレータ v5 に固有のマップ生成属性。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" @@ -4773,7 +4768,7 @@ msgid "" msgstr "" "マップジェネレータ v6 に固有のマップ生成属性。\n" "'snowbiomes' フラグは新しい5つのバイオームシステムを有効にします。\n" -"新しいバイオームシステムが有効になるとジャングルが自動的に有効になり、\n" +"'snowbiomes' フラグを有効にすると、ジャングルが自動的に有効になり、\n" "'jungles' フラグは無視されます。" #: src/settings_translation_file.cpp @@ -4829,9 +4824,8 @@ msgid "Mapgen Fractal" msgstr "マップジェネレータ Fractal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "マップジェネレータ Flat 固有のフラグ" +msgstr "マップジェネレータ Fractal 固有のフラグ" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -4917,7 +4911,7 @@ msgstr "ホットバー最大幅" msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." -msgstr "" +msgstr "最大の液体抵抗。高速で液体に入る際の減速を制御します。" #: src/settings_translation_file.cpp msgid "" @@ -5120,7 +5114,6 @@ msgid "Mute sound" msgstr "消音" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" @@ -5129,11 +5122,8 @@ msgid "" msgstr "" "新しいワールドを作成するときに使用されるマップジェネレータの名前。\n" "メインメニューでワールドを作成すると、これが上書きされます。\n" -"現在安定しているマップジェネレータ:\n" -"v5、v6、v7(浮遊大陸を除く)、singlenode。\n" -"「安定している」とは、既存のワールドの地形が将来変更されないことを\n" -"意味します。バイオームはゲームによって定義され、それによって変更\n" -"される可能性があることに注意してください。" +"現在非常に不安定な状態のマップジェネレータ:\n" +"- v7の浮遊大陸 (既定では無効)。" #: src/settings_translation_file.cpp msgid "" @@ -5152,9 +5142,8 @@ msgid "" msgstr "プレイヤーが参加したときにサーバ一覧に表示されるサーバの名前。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Near clipping plane" -msgstr "近くの面" +msgstr "クリッピング面付近" #: src/settings_translation_file.cpp msgid "Network" @@ -5205,7 +5194,6 @@ msgid "Number of emerge threads" msgstr "出現するスレッド数" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "WARNING: Currently there are multiple bugs that may cause crashes when\n" @@ -5221,12 +5209,15 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" -"使用する出現するスレッド数。\n" -"空 または 0:\n" -"- 自動選択。 出現するスレッド数は\n" -"- 「プロセッサー数 - 2」、下限は 1 です。\n" +"使用する出現スレッド数。\n" +"警告: 'num_emerge_threads' が 1 より大きいときにクラッシュを引き起こす\n" +"可能性のあるバグが現在複数あります。この警告が削除されるまでは\n" +"この値を規定の '1' に設定することを強くお勧めします。\n" +"値 0:\n" +"- 自動選択。 出現スレッド数は\n" +"- 'プロセッサー数 - 2'、下限は 1 です。\n" "その他の値:\n" -"- 出現するスレッド数を指定します、下限は 1 です。\n" +"- 出現スレッド数を指定します、下限は 1 です。\n" "警告: 出現するスレッド数を増やすとエンジンのマップ生成速度が\n" "上がりますが、特にシングルプレイヤーや 'on_generated' で\n" "Luaコードを実行している場合、他のプロセスと干渉してゲームの\n" @@ -5310,7 +5301,7 @@ msgid "" "used." msgstr "" "シェーダーディレクトリへのパス。パスが定義されていない場合は、\n" -"規定の場所が使用されます。" +"既定の場所が使用されます。" #: src/settings_translation_file.cpp msgid "Path to texture directory. All textures are first searched from here." @@ -5497,14 +5488,12 @@ msgid "Rightclick repetition interval" msgstr "右クリック繰り返しの間隔" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "川の深さ" +msgstr "河道の深さ" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "川の深さ" +msgstr "河道の幅" #: src/settings_translation_file.cpp msgid "River depth" @@ -5519,9 +5508,8 @@ msgid "River size" msgstr "川のサイズ" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "川の深さ" +msgstr "川の谷の幅" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -5857,7 +5845,7 @@ msgstr "スニーク時の速度" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "スニーク時の速度、1秒あたりのノード数です。" #: src/settings_translation_file.cpp msgid "Sound" @@ -6221,7 +6209,6 @@ msgid "Undersampling" msgstr "アンダーサンプリング" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6230,9 +6217,9 @@ msgid "" "Higher values result in a less detailed image." msgstr "" "アンダーサンプリングは低い画面解像度を使用するのと似ていますが、\n" -"GUIをそのままにしてゲームの世界にのみ適用されます。\n" -"それほど詳細でないイメージを犠牲にしてパフォーマンスをかなり高める\n" -"でしょう。" +"GUIをそのままにしてゲームのワールドにのみ適用されます。\n" +"より詳細なイメージを犠牲にしてパフォーマンスをかなり高めるでしょう。\n" +"値を大きくすると、画像の詳細が少なくなります。" #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6343,7 +6330,7 @@ msgstr "崖の険しさが異なります。" #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "垂直方向の上る速度、1秒あたりのノード数です。" #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6401,7 +6388,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "歩行と飛行速度、1秒あたりのノード数です。" #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6409,7 +6396,7 @@ msgstr "歩く速度" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" +msgstr "高速移動モード中の歩行と飛行と上る速度、1秒あたりのノード数です。" #: src/settings_translation_file.cpp msgid "Water level" @@ -6436,19 +6423,16 @@ msgid "Waving water" msgstr "揺れる水" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave height" -msgstr "水の揺れる高さ" +msgstr "揺れる水の波の高さ" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave speed" -msgstr "水の揺れる速度" +msgstr "揺れる水の波の速度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wavelength" -msgstr "水の揺れる丈" +msgstr "揺れる水の波長" #: src/settings_translation_file.cpp msgid "" From 482ab186a275a82575fb2f52d5290a0bedc88711 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 27 Oct 2019 16:48:33 +0000 Subject: [PATCH 034/624] Translated using Weblate (Portuguese) Currently translated at 100.0% (1274 of 1274 strings) --- po/pt/minetest.po | 194 +++++++++++++++++++++++----------------------- 1 file changed, 97 insertions(+), 97 deletions(-) diff --git a/po/pt/minetest.po b/po/pt/minetest.po index a9977c4fc..bca432768 100644 --- a/po/pt/minetest.po +++ b/po/pt/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-29 11:53+0000\n" +"Last-Translator: ssantos \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.9.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Você morreu" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Ocorreu um erro em um script Lua, como um mod:" +msgstr "Um erro ocorreu num script Lua:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -121,27 +120,24 @@ msgid "Mod:" msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Dependências opcionais:" +msgstr "Sem dependências (opcionais)" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Nenhuma descrição de jogo disponível." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Sem dependências." +msgstr "Sem dependências fortes" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Nenhuma descrição de modpack disponível." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Dependências opcionais:" +msgstr "Sem dependências opcionais" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -786,9 +782,8 @@ msgid "Waving Leaves" msgstr "Folhas ondulantes" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Cubos Ondulantes" +msgstr "Líquidos ondulantes" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1546,7 +1541,7 @@ msgid "Register and Join" msgstr "Registrar e entrar" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1554,11 +1549,12 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Você está prestes a entrar no servidor em %1$s com o nome \"%2$s\" pela " -"primeira vez. Se continuar, uma nova conta usando suas credenciais será " -"criada neste servidor.\n" -"Por favor, redigite sua palavra-passe e clique registrar e entrar para " -"confirmar a criação da conta ou clique em cancelar para abortar." +"Está prestes a entrar neste servidor com o nome \"%s\" pela primeira vez.\n" +"Se prosseguir, uma nova conta usando suas credenciais será criada neste " +"servidor.\n" +"Por favor, digite novamente a sua palavra-passe e clique em 'Registrar e se " +"cadastrar' para confirmar a criação da conta ou clique em 'Cancelar' para " +"cancelar." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1701,9 +1697,8 @@ msgid "Toggle noclip" msgstr "Ativar/Desativar noclip" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Ativar histórico de conversa" +msgstr "Alternar pitchmove" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1834,9 +1829,8 @@ msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "Ruído 2D que controla o tamanho/ocorrência de montanhas de passo." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "Ruído 2D que controla o formato/tamanho de colinas." +msgstr "Ruído 2D que localiza os vales e canais dos rios." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -1874,7 +1868,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "Ruído 3D que determina o número de masmorras por mapchunk." #: src/settings_translation_file.cpp msgid "" @@ -1934,7 +1928,7 @@ msgstr "Aceleração no ar" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Aceleração da gravidade, em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2162,7 +2156,6 @@ msgid "Bumpmapping" msgstr "Bump mapping" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" "Most users will not need to change this.\n" @@ -2170,7 +2163,7 @@ msgid "" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" "Distancia do plano próximo da câmera em nós, entre 0 e 0.5\n" -"A maioria dos utilizadores não precisarão mudar isto.\n" +"A maioria dos utilizadores não precisará mudar isto.\n" "Aumentar pode reduzir a ocorrência de artefactos em GPUs mais fracas.\n" "0.1 = Padrão, 0.25 = Bom valor para tablets fracos." @@ -2258,9 +2251,8 @@ msgid "Chat message count limit" msgstr "Limite do contador de mensagens de bate-papo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Tamanho máximo da mensagem de conversa" +msgstr "Formato da mensagem de chat" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2440,7 +2432,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Controla a velocidade de afundamento em líquido." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2503,9 +2495,8 @@ msgid "Debug info toggle key" msgstr "Tecla para alternar modo de depuração" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Limite do ruído de deserto" +msgstr "Limite do tamanho do ficheiro de log de depuração" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2517,7 +2508,7 @@ msgstr "Tecla de dimin. de som" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." -msgstr "" +msgstr "Diminue isto para aumentar a resistência do líquido ao movimento." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2611,9 +2602,8 @@ msgid "Defines the base ground level." msgstr "Define o nível base do solo." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Define o nível base do solo." +msgstr "Define a profundidade do canal do rio." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2622,14 +2612,12 @@ msgstr "" "ilimitado)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Define estruturas de canais de grande porte (rios)." +msgstr "Define a largura do canal do rio." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Define áreas onde árvores têm maçãs." +msgstr "Define a largura do vale do rio." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2662,6 +2650,9 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" +"Depreciar, definir e localizar líquidos de cavernas usando definições de " +"biomas.\n" +"Y do limite superior de lava em grandes cavernas." #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2684,13 +2675,12 @@ msgid "Desert noise threshold" msgstr "Limite do ruído de deserto" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" -"Deserto ocorre quando np_biome excede esse valor.\n" -"Quando o novo sistema de biomas está habilitado, isso é ignorado." +"Os desertos ocorrem quando np_biome excede este valor.\n" +"Quando a marcação 'snowbiomes' está ativada, isto é ignorado." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2737,9 +2727,8 @@ msgid "Dungeon minimum Y" msgstr "Y mínimo da dungeon" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Y mínimo da dungeon" +msgstr "Ruído de masmorra" #: src/settings_translation_file.cpp msgid "" @@ -3095,6 +3084,9 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Formato das mensagens de chat do jogador. As seguintes cadeias são espaços " +"reservados válidos:\n" +"@name, @message, @timestamp (opcional)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3349,18 +3341,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Aceleração horizontal no ar ao saltar ou cair,\n" +"em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Aceleração horizontal e vertical em modo rápido,\n" +"em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Aceleração horizontal e vertical no solo ou ao subir,\n" +"em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3647,6 +3645,11 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Se o tamanho do ficheiro do debug.txt exceder a quantidade de megabytes " +"especificado \n" +"nesta configuração quando é aberta, o ficheiro é movido para debug.txt.1,\n" +"apagando um debug.txt.1 mais antigo, se existir.\n" +"debug.txt só é movido se esta configuração for positiva." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3684,7 +3687,7 @@ msgstr "Tecla da consola" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Velocidade vertical inicial ao saltar, em nós por segundo." #: src/settings_translation_file.cpp msgid "" @@ -4713,9 +4716,8 @@ msgid "Liquid queue purge time" msgstr "Tempo para limpar a lista de espera para a atualização de líquidos" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Velocidade do afundamento de liquido" +msgstr "Afundamento de líquidos" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -4795,14 +4797,14 @@ msgstr "" "'altitude_dry': Reduz a umidade com a altitude." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen flat.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Atributos de geração de mapa específicos ao gerador V7.\n" -"'ridges' habilitam os rios." +"Atributos de geração de mapas específicos do Mapgen plano.\n" +"O \"terreno\" permite a geração de terrenos não fractários:\n" +"oceano, ilhas e subsolo." #: src/settings_translation_file.cpp msgid "" @@ -4817,17 +4819,17 @@ msgid "Map generation attributes specific to Mapgen v5." msgstr "Atributos de geração de mapa específicos ao gerador V5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" -"Atributos de geração de mapas específico para o gerador de mundo v6.\n" -" O 'snowbiomes' flag habilita o novo sistema de bioma 5.\n" -"Quando o sistema de novo bioma estiver habilitado, selvas são " -"automaticamente habilitadas e a flag 'jungles' é ignorada." +"Atributos de geração de mapas específicos do Mapgen v6.\n" +"A marcação \"snowbiomes\" ativa o novo sistema de 5 biomas.\n" +"Quando a marcação 'snowbiomes' está ativada, as selvas são automaticamente " +"ativadas e\n" +"a marcação 'selvas' é ignorada." #: src/settings_translation_file.cpp msgid "" @@ -4884,9 +4886,8 @@ msgid "Mapgen Fractal" msgstr "Gerador de mundo Fractal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Flags específicas do gerador de mundo plano" +msgstr "Marcações específicas do Mapgen Fractal" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -4973,6 +4974,9 @@ msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Resistência máxima do líquido. Controla a desaceleração ao entrar no líquido " +"a\n" +"alta velocidade." #: src/settings_translation_file.cpp msgid "" @@ -5182,19 +5186,16 @@ msgid "Mute sound" msgstr "Mutar som" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" "Current mapgens in a highly unstable state:\n" "- The optional floatlands of v7 (disabled by default)." msgstr "" -"Nome do gerador de mapa usando quando criar um novo mundo.\n" -"Criar um mundo no menu principal vai sobrescrever isto.\n" -"Geradores de mapa estáveis atualmente:\n" -"v5, v6, v7(exceto terras flutuantes), singlenode.\n" -"'estável' significa que a forma do terreno em um mundo existente não será " -"alterado no futuro. Note que biomas definidos por jogos ainda podem mudar." +"Nome do gerador de mapas a ser usado na criação de um novo mundo.\n" +"Criar um mundo no menu principal irá sobrepor-se a isto.\n" +"Mapgens atuais num estado altamente instável:\n" +"- As floatlands opcionais da v7 (desativadas por padrão)." #: src/settings_translation_file.cpp msgid "" @@ -5215,9 +5216,8 @@ msgstr "" "servidores." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near clipping plane" -msgstr "plano próximo" +msgstr "Plano de corte próximo" #: src/settings_translation_file.cpp msgid "Network" @@ -5268,7 +5268,6 @@ msgid "Number of emerge threads" msgstr "Número de seguimentos de emersão" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "WARNING: Currently there are multiple bugs that may cause crashes when\n" @@ -5284,17 +5283,22 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" -"Número de thread emergentes para usar.\n" -"Vazio ou valor 0:\n" -"- Seleção automática. O número de threads emergentes será 'quantidade de " -"processadores - 2', com limite mínimo de 1.\n" +"Quantidade de threads emergentes a utilizar.\n" +"AVISO: Atualmente existem vários bugs que podem causar falhas quando\n" +"'num_emerge_threads' é maior que 1. Até que este aviso seja removido, é\n" +"bem recomendado que este valor seja definido ao valor padrão '1'.\n" +"Valor 0:\n" +"- Seleção automática. A quantidade de threads emergentes será\n" +"- 'quantidade de processadores - 2', com um limite inferior de 1.\n" "Qualquer outro valor:\n" -"- Especifica o número de threads emergentes com limite mínimo de 1.\n" -"Alerta: aumentando o número de threads emergentes aumenta a velocidade do " -"gerador, mas pode prejudicar o desempenho interferindo com outros processos, " -"especialmente in singleplayer e/ou quando executando código lua em " -"'on_generated'.\n" -"Para muitos utilizadores a opção mais recomendada é 1." +"- Especifica a quantidade de threads emergentes, com um limite inferior " +"de 1.\n" +"AVISO: O aumento do quantidade de threads emergentes aumenta a velocidade " +"do\n" +"motor mapgen, mas isso pode prejudicar o desempenho do jogo, interferindo " +"com outros\n" +"processos, especialmente no singleplayer e/ou ao executar código Lua em\n" +"'on_generated'. Para muitos utilizadores, o ajuste ideal pode ser '1'." #: src/settings_translation_file.cpp msgid "" @@ -5564,14 +5568,12 @@ msgid "Rightclick repetition interval" msgstr "Intervalo de repetição do clique direito" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Profundidade do Rio" +msgstr "Profundidade do canal do rio" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Profundidade do Rio" +msgstr "Largura do canal do rio" #: src/settings_translation_file.cpp msgid "River depth" @@ -5586,9 +5588,8 @@ msgid "River size" msgstr "Tamanho do Rio" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Profundidade do Rio" +msgstr "Largura do vale do rio" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -5928,7 +5929,7 @@ msgstr "Velocidade da furtividade" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Velocidade furtiva, em nós por segundo." #: src/settings_translation_file.cpp msgid "Sound" @@ -6309,7 +6310,6 @@ msgid "Undersampling" msgstr "Subamostragem" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6317,10 +6317,12 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"A subamostragem é semelhante ao uso de resolução de tela menor, mas se " -"aplica apenas ao mundo do jogo, mantendo a GUI (Interface Gráfica do " -"Utilizador) intacta. Deve dar um aumento significativo no desempenho ao " -"custo de uma imagem menos detalhada." +"A subamostragem é semelhante à utilização de uma resolução de ecrã mais " +"baixa, mas aplica-se\n" +"apenas para o mundo do jogo, mantendo a GUI intacta.\n" +"Deve dar um impulso significativo de desempenho ao custo de uma imagem menos " +"detalhada.\n" +"Valores mais altos resultam numa imagem menos detalhada." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6434,7 +6436,7 @@ msgstr "Controla a inclinação/altura das colinas." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Velocidade de subida vertical, em nós por segundo." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6491,7 +6493,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Velocidade de marcha e de voo, em nós por segundo." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6500,6 +6502,7 @@ msgstr "Velocidade de caminhada" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Velocidade de caminhada, vôo e escalada em modo rápido, em nós por segundo." #: src/settings_translation_file.cpp msgid "Water level" @@ -6526,19 +6529,16 @@ msgid "Waving water" msgstr "Balançar das Ondas" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave height" -msgstr "Altura de balanço da água" +msgstr "Altura da onda de água ondulante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave speed" -msgstr "Velocidade de balanço da água" +msgstr "Velocidade da onda de água ondulante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wavelength" -msgstr "Comprimento de balanço da água" +msgstr "Comprimento de onda da água de ondulação" #: src/settings_translation_file.cpp msgid "" From 60c18d3550e660ddc145dd7a7c4a1a70546f034e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81cs=20Zolt=C3=A1n?= Date: Mon, 28 Oct 2019 10:54:35 +0000 Subject: [PATCH 035/624] Translated using Weblate (Hungarian) Currently translated at 61.9% (788 of 1274 strings) --- po/hu/minetest.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/hu/minetest.po b/po/hu/minetest.po index 100c07761..c4de6a3d2 100644 --- a/po/hu/minetest.po +++ b/po/hu/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Hungarian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-29 11:53+0000\n" +"Last-Translator: Ács Zoltán \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.9.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -789,7 +789,7 @@ msgstr "Hullámzó levelek" #: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Waving Liquids" -msgstr "Hullámzó blokkok" +msgstr "Hullámzó folyadékok" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1545,8 +1545,8 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Te most %1$s szerverre csatlakozol \"%2$s\" névvel elősször. Ha folytatja, " -"akkor egy új fiók lesz létrehozva a hetelesítő adatokkal a szerveren. Kérlek " +"Te most %1$s szerverre csatlakozol \"%2$s\" névvel először. Ha folytatod, " +"akkor egy új fiók lesz létrehozva a hitelesítő adatokkal a szerveren. Kérlek " "írd be újra a jelszavad, kattints Regisztrációra majd Bejelentkezésre, hogy " "megerősítsd a fióklétrehozást vagy kattints Kilépés gombra a megszakításhoz." From 28e05295faea3808dc609741ccf5936e96d9300d Mon Sep 17 00:00:00 2001 From: Jacques Lagrange Date: Mon, 28 Oct 2019 10:40:29 +0000 Subject: [PATCH 036/624] Translated using Weblate (Italian) Currently translated at 96.9% (1234 of 1274 strings) --- po/it/minetest.po | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/po/it/minetest.po b/po/it/minetest.po index f215ec022..f330f5bc3 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-29 11:53+0000\n" +"Last-Translator: Jacques Lagrange \n" "Language-Team: Italian \n" "Language: it\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.9.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Sei morto" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "È successo un errore in uno script Lua, come un mod:" +msgstr "Si è verificato un errore in uno script Lua:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -120,27 +119,24 @@ msgid "Mod:" msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Dipendenze facoltative:" +msgstr "Dipendenze facoltative" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Non è stata fornita nessuna descrizione del gioco." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Nessuna dipendenza." +msgstr "Nessuna dipendenza" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Non è stata fornita nessuna descrizione del pacchetto mod." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Dipendenze facoltative:" +msgstr "Nessuna dipendenza facoltativa" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -784,9 +780,8 @@ msgid "Waving Leaves" msgstr "Foglie ondeggianti" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Nodi ondeggianti" +msgstr "Liquidi ondeggianti" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1531,7 +1526,7 @@ msgid "Register and Join" msgstr "Registrati e accedi" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1539,8 +1534,8 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Stai per accedere al server a %1$s col nome \"%2$s\" per la prima volta. Se " -"prosegui, su questo server sarà creato un nuovo account usando le tue " +"Stai per accedere a questo server col nome \"%2$s\" per la prima volta. \n" +"Se prosegui, su questo server sarà creato un nuovo account usando le tue " "credenziali.\n" "Per favore reinserisci la tua password e premi Registrati e accedi per " "confermare la creazione dell'account, o premi Annulla per interrompere." From 39449d4b63c47106d8162ae873cec0c3cdb2373a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20M=C3=BCnster?= Date: Sun, 27 Oct 2019 15:07:56 +0000 Subject: [PATCH 037/624] Translated using Weblate (Swedish) Currently translated at 32.7% (417 of 1274 strings) --- po/sv/minetest.po | 57 +++++++---------------------------------------- 1 file changed, 8 insertions(+), 49 deletions(-) diff --git a/po/sv/minetest.po b/po/sv/minetest.po index 0baafd2d5..64e1b2243 100644 --- a/po/sv/minetest.po +++ b/po/sv/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Swedish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-29 11:53+0000\n" +"Last-Translator: Mattias Münster \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.9.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -99,7 +99,6 @@ msgid "Disable modpack" msgstr "Avaktivera modpaket" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Enable all" msgstr "Aktivera alla" @@ -207,7 +206,6 @@ msgid "Search" msgstr "Sök" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Texture packs" msgstr "Texturpaket" @@ -341,7 +339,7 @@ msgstr "Oktaver" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" -msgstr "" +msgstr "Förskjutning" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" @@ -364,9 +362,8 @@ msgid "Scale" msgstr "Skala" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select directory" -msgstr "Välj modfil:" +msgstr "Välj katalog" #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy @@ -692,9 +689,8 @@ msgid "Bilinear Filter" msgstr "Bilinjärt filter" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Bump Mapping" -msgstr "Bumpmappning" +msgstr "Stötkartläggning" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" @@ -839,7 +835,6 @@ msgid "Start Singleplayer" msgstr "Starta Enspelarläge" #: src/client/client.cpp -#, fuzzy msgid "Connection timed out." msgstr "Anslutningens tidsgräns nådd." @@ -864,7 +859,6 @@ msgid "Rebuilding shaders..." msgstr "Rekonstruerar shaders..." #: src/client/clientlauncher.cpp -#, fuzzy msgid "Connection error (timed out?)" msgstr "Anslutningsfel (tidsgräns nådd?)" @@ -969,7 +963,6 @@ msgid "Camera update enabled" msgstr "Av/på-tangent för kamerauppdatering" #: src/client/game.cpp -#, fuzzy msgid "Change Password" msgstr "Ändra Lösenord" @@ -996,7 +989,7 @@ msgid "Continue" msgstr "Fortsätt" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1138,7 +1131,6 @@ msgid "Game paused" msgstr "Spel pausat" #: src/client/game.cpp -#, fuzzy msgid "Hosting server" msgstr "Arrangerar server" @@ -1329,7 +1321,6 @@ msgid "Caps Lock" msgstr "Caps Lock" #: src/client/keycode.cpp -#, fuzzy msgid "Clear" msgstr "Rensa" @@ -1342,7 +1333,6 @@ msgid "Down" msgstr "Ner" #: src/client/keycode.cpp -#, fuzzy msgid "End" msgstr "Slut" @@ -1351,7 +1341,6 @@ msgid "Erase EOF" msgstr "Radera EOF" #: src/client/keycode.cpp -#, fuzzy msgid "Execute" msgstr "Kör" @@ -1360,7 +1349,6 @@ msgid "Help" msgstr "Hjälp" #: src/client/keycode.cpp -#, fuzzy msgid "Home" msgstr "Hem" @@ -1369,7 +1357,6 @@ msgid "IME Accept" msgstr "Acceptera IME" #: src/client/keycode.cpp -#, fuzzy msgid "IME Convert" msgstr "Konvertera IME" @@ -1386,7 +1373,6 @@ msgid "IME Nonconvert" msgstr "Ickekonvertera IME" #: src/client/keycode.cpp -#, fuzzy msgid "Insert" msgstr "Insert" @@ -1411,7 +1397,6 @@ msgid "Left Shift" msgstr "Vänster Shift" #: src/client/keycode.cpp -#, fuzzy msgid "Left Windows" msgstr "Vänster Windowstangent" @@ -1428,17 +1413,14 @@ msgid "Num Lock" msgstr "Num Lock" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad *" msgstr "Numpad *" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad +" msgstr "Numpad +" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad -" msgstr "Numpad -" @@ -1447,57 +1429,46 @@ msgid "Numpad ." msgstr "Numpad ." #: src/client/keycode.cpp -#, fuzzy msgid "Numpad /" msgstr "Numpad /" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 0" msgstr "Numpad 0" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 1" msgstr "Numpad 1" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 2" msgstr "Numpad 2" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 3" msgstr "Numpad 3" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 4" msgstr "Numpad 4" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 5" msgstr "Numpad 5" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 6" msgstr "Numpad 6" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 7" msgstr "Numpad 7" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 8" msgstr "Numpad 8" #: src/client/keycode.cpp -#, fuzzy msgid "Numpad 9" msgstr "Numpad 9" @@ -1554,7 +1525,6 @@ msgid "Right Windows" msgstr "Höger Windowstangent" #: src/client/keycode.cpp -#, fuzzy msgid "Scroll Lock" msgstr "Scroll Lock" @@ -1563,7 +1533,6 @@ msgid "Select" msgstr "Välj" #: src/client/keycode.cpp -#, fuzzy msgid "Shift" msgstr "Shift" @@ -1572,17 +1541,14 @@ msgid "Sleep" msgstr "Sov" #: src/client/keycode.cpp -#, fuzzy msgid "Snapshot" msgstr "Snapshot" #: src/client/keycode.cpp -#, fuzzy msgid "Space" msgstr "Mellanslag" #: src/client/keycode.cpp -#, fuzzy msgid "Tab" msgstr "Tab" @@ -1668,7 +1634,6 @@ msgid "Dec. volume" msgstr "Sänk volym" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Double tap \"jump\" to toggle fly" msgstr "Dubbeltryck \"hoppa\" för att slå på/av flygande" @@ -1689,7 +1654,6 @@ msgid "Inc. volume" msgstr "Öka volym" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Inventory" msgstr "Förråd" @@ -1750,7 +1714,6 @@ msgid "Toggle chat log" msgstr "Slå av/på snabb" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle fast" msgstr "Slå av/på snabb" @@ -1778,7 +1741,6 @@ msgid "Toggle pitchmove" msgstr "Slå av/på snabb" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "press key" msgstr "tryck på tangent" @@ -1862,7 +1824,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "0 = parallax occlusion with slope information (faster).\n" "1 = relief mapping (slower, more accurate)." @@ -1907,9 +1868,8 @@ msgid "3D mode" msgstr "3D-läge" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D noise defining giant caverns." -msgstr "3D oljudsdefinierade jättegrottor" +msgstr "3D oljudsdefinierade jättegrottor." #: src/settings_translation_file.cpp msgid "" @@ -1980,7 +1940,6 @@ msgid "ABM interval" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of emerge queues" msgstr "Absolut gräns av emerge kö" From 3c7f6508ad59ceb546a4da0654eb81494e66d1c6 Mon Sep 17 00:00:00 2001 From: Muhammad Nur Hidayat Yasuyoshi Date: Wed, 30 Oct 2019 03:11:36 +0000 Subject: [PATCH 038/624] Translated using Weblate (Malay) Currently translated at 100.0% (1274 of 1274 strings) --- po/ms/minetest.po | 160 ++++++++++++++++++++++------------------------ 1 file changed, 76 insertions(+), 84 deletions(-) diff --git a/po/ms/minetest.po b/po/ms/minetest.po index 0796f3dd3..1ff4ccec0 100644 --- a/po/ms/minetest.po +++ b/po/ms/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Malay (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-10-31 06:03+0000\n" +"Last-Translator: Muhammad Nur Hidayat Yasuyoshi \n" "Language-Team: Malay \n" "Language: ms\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Anda telah meninggal" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Berlakunya ralat dalam skrip Lua, contohnya mods:" +msgstr "Berlakunya ralat dalam skrip Lua:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -120,27 +119,24 @@ msgid "Mod:" msgstr "Mods:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Kebergantungan pilihan:" +msgstr "Tiada kebergantungan (pilihan)" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Tiada perihal permainan tersedia." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Tiada kebergantungan." +msgstr "Tiada kebergantungan wajib" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Tiada perihal pek mods tersedia." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Kebergantungan pilihan:" +msgstr "Tiada kebergantungan pilihan" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -783,9 +779,8 @@ msgid "Waving Leaves" msgstr "Daun Bergoyang" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Nod bergoyang" +msgstr "Cecair Bergelora" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1533,7 +1528,7 @@ msgid "Register and Join" msgstr "Daftar dan Sertai" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1541,11 +1536,11 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Anda akan sertai pelayan di %1$s dengan nama \"%2$s\" untuk kali pertama. " +"Anda akan sertai pelayan dengan nama \"%s\" untuk kali pertama.\n" "Jika anda teruskan, akaun baru dengan maklumat anda akan dicipta di pelayan " "ini.\n" -"Sila taip semula kata laluan anda dan klik Daftar dan Sertai untuk sahkan " -"penciptaan akaun atau klik Batal untuk membatalkan." +"Sila taip semula kata laluan anda dan klik 'Daftar dan Sertai' untuk sahkan " +"penciptaan akaun, atau klik 'Batal' untuk membatalkan." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1690,9 +1685,8 @@ msgid "Toggle noclip" msgstr "Togol tembus blok" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Togol log sembang" +msgstr "Togol pergerakan mencuram" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1823,9 +1817,8 @@ msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "Hingar 2D yang mengawal saiz/kejadian gunung curam berjarak." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "Hingar 2D yang mengawal bentuk/saiz bukit." +msgstr "Hingar 2D yang menentukan peletakan lembah dan arus sungai." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -1861,7 +1854,7 @@ msgstr "Hingar 3D untuk unjuran, cenuram gunung, dll. Selalunya variasi kecil." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "Hingar 3D yang menentukan jumlah kurungan bawah tanah per ketulan peta." #: src/settings_translation_file.cpp msgid "" @@ -1917,7 +1910,7 @@ msgstr "Pecutan dalam udara" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Pecutan graviti, dalam unit nod per saat per saat." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2145,14 +2138,13 @@ msgid "Bumpmapping" msgstr "Pemetaan timbul" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" "Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Kamera berhampiran jarak satah dalam nilai nod, antara 0 dan 0.5\n" +"Jarak kamera 'berhampiran satah ketipan' dalam nilai nod, antara 0 dan 0.5.\n" "Kebanyakan pengguna tidak perlu mengubah nilai ini.\n" "Menaikkan nilai boleh kurangkan artifak pada GPU yang lebih lemah.\n" "0.1 = Asal, 0.25 = Nilai bagus untuk tablet yang lebih lemah." @@ -2242,9 +2234,8 @@ msgid "Chat message count limit" msgstr "Had kiraan mesej sembang" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Panjang maksimum mesej sembang" +msgstr "Format mesej sembang" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2425,7 +2416,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Mengawal kelajuan tenggelam dalam cecair." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2489,9 +2480,8 @@ msgid "Debug info toggle key" msgstr "Kekunci togol maklumat nyahpepijat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Nilai ambang hingar gurun" +msgstr "Nilai ambang saiz fail log nyahpepijat" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2504,6 +2494,7 @@ msgstr "Kekunci perlahankan bunyi" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." msgstr "" +"Kurangkan nilai untuk meningkatkan rintangan cecair terhadap pergerakan." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2595,9 +2586,8 @@ msgid "Defines the base ground level." msgstr "Mentakrifkan aras tanah asas." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Mentakrifkan aras tanah asas." +msgstr "Mentakrifkan kedalaman saliran sungai." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2606,14 +2596,12 @@ msgstr "" "tiada had)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Mentakrifkan struktur saluran sungai berskala besar." +msgstr "Mentakrifkan lebar saluran sungai." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Mentakrifkan kawasan di mana pokok mempunyai epal." +msgstr "Mentakrifkan lebar lembah sungai." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2645,6 +2633,9 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" +"Tetapan terkecam, mentakrifkan dan menetapkan cecair gua menggunakan " +"pentakrifan biom menggantikan cara asal.\n" +"Had Y atasan lava di gua-gua besar." #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2667,13 +2658,12 @@ msgid "Desert noise threshold" msgstr "Nilai ambang hingar gurun" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" "Gurun akan dijana apabila np_biome melebihi nilai ini.\n" -"Apabila sistem biom baru dibolehkan, tetapan ini diabaikan." +"Apabila bendera 'snowbiomes' dibolehkan, tetapan ini diabaikan." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2723,9 +2713,8 @@ msgid "Dungeon minimum Y" msgstr "Y minimum kurungan bawah tanah" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Y minimum kurungan bawah tanah" +msgstr "Hingar kurungan bawah tanah" #: src/settings_translation_file.cpp msgid "" @@ -3084,6 +3073,10 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Format mesej sembang pemain. Rentetan berikut ialah pemegang tempat yang sah:" +"\n" +"@name (untuk nama), @message (untuk mesej), @timestamp (pilihan, untuk cop " +"masa)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3347,18 +3340,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Pecutan mendatar di udara apabila melompat atau jatuh,\n" +"dalam unit nod per saat per saat." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Pecutan mendatar dan menegak dalam mod pantas,\n" +"dalam unit nod per saat per saat." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Pecutan mendatar dan menegak atas tanah atau ketika memanjat,\n" +"dalam unit nod per saat per saat." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3650,6 +3649,10 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Jika saiz fail debug.txt melebihi jumlah megabait yang dinyatakan dalam\n" +"tetapan ini ketika ia dibuka, fail ini akan dipindahkan ke debug.txt.1,\n" +"memadamkan fail debug.txt.1 yang lama jika wujud.\n" +"debug.txt hanya akan dipindahkan sekiranya tetapan ini positif." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3687,7 +3690,7 @@ msgstr "Kekunci kuatkan bunyi" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Kelajuan menegak awal ketika melompat, dalam unit nod per saat." #: src/settings_translation_file.cpp msgid "" @@ -4715,9 +4718,8 @@ msgid "Liquid queue purge time" msgstr "Masa pembersihan giliran cecair" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Kelajuan lubuk cecair" +msgstr "Tenggelam dalam cecair" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -4798,14 +4800,14 @@ msgstr "" "'altitude_dry': Mengurangkan kelembapan seiring ketinggian." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen flat.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Atribut penjanaan peta khusus untuk Janapeta v7.\n" -"'ridges' membolehkan sungai." +"Atribut penjanaan peta khusus untuk Janapeta flat.\n" +"'terrain' membolehkan penjanaan rupa bumi bukan fraktal:\n" +"lautan, kepulauan dan unsur bawah tanah." #: src/settings_translation_file.cpp msgid "" @@ -4820,7 +4822,6 @@ msgid "Map generation attributes specific to Mapgen v5." msgstr "Atribut penjanaan peta khusus untuk janapeta v5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" @@ -4829,9 +4830,8 @@ msgid "" msgstr "" "Atribut penjanaan peta khusus untuk Janapeta v6.\n" "Bendera 'snowbiomes' membolehkan sistem 5 biom baharu.\n" -"Apabila sistem biom baharu dibolehkan, hutan akan dibolehkan secara " -"automatik dan\n" -"bendera 'jungles' diabaikan." +"Apabila bendera 'snowbiomes' dibolehkan, hutan akan dibolehkan secara\n" +"automatik dan bendera 'jungles' diabaikan." #: src/settings_translation_file.cpp msgid "" @@ -4886,9 +4886,8 @@ msgid "Mapgen Fractal" msgstr "Fraktal Janapeta" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Bendera khusus Janapeta Flat" +msgstr "Bendera khusus Janapeta Fractal" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -4975,6 +4974,8 @@ msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Rintangan cecair maksimum. Mengawal nyahpecutan apabila memasuki\n" +"cecair pada kelajuan maksimum." #: src/settings_translation_file.cpp msgid "" @@ -5180,7 +5181,6 @@ msgid "Mute sound" msgstr "Bisukan bunyi" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" @@ -5189,12 +5189,8 @@ msgid "" msgstr "" "Nama penjana peta untuk digunakan apabila mencipta dunia baru.\n" "Mencipta dunia dalam menu utama akan mengatasi tetapan ini.\n" -"Janapeta stabil ketika ini:\n" -"v5, v6, v7 (kecuali floatlands), singlenode.\n" -"'stabil' maksudnya bentuk rupa bumi dalam dunia sedia ada tidak akan berubah " -"pada\n" -"masa depan. Ambil perhatian bahawa biom ditakrifkan oleh permainan dan boleh " -"berubah." +"Janapeta semasa yang berada dalam keadaan sangat tidak stabil:\n" +"- Pilihan floatlands di v7 (dilumpuhkan secara asalnya)." #: src/settings_translation_file.cpp msgid "" @@ -5216,9 +5212,8 @@ msgstr "" "senarai pelayan." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near clipping plane" -msgstr "Satah dekat" +msgstr "Satah dekat ketipan" #: src/settings_translation_file.cpp msgid "Network" @@ -5269,7 +5264,6 @@ msgid "Number of emerge threads" msgstr "Jumlah jalur keluar" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "WARNING: Currently there are multiple bugs that may cause crashes when\n" @@ -5286,17 +5280,19 @@ msgid "" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" "Jumlah jalur timbul untuk digunakan.\n" -"Kosong atau nilai 0:\n" +"AMARAN: Ketika ini terdapat beberapa pepijat yang mungkin mengakibatkan\n" +"ranap apabila nilai 'num_emerge_threads' lebih tinggi daripada 1. Sehingga\n" +"amaran ini dibuang, adalah digalakkan untuk kekalkan nilai asalnya '1'.\n" +"Nilai 0:\n" "- Pemilihan automatik. Jumlah jalur timbul akan dikira berdasarkan\n" "- 'jumlah pemproses - 2', dengan had minimum 1.\n" "Sebarang nilai lain:\n" "- Menetapkan jumlah jalur timbul, dengan had minimum 1.\n" -"Amaran: Menaikkan jumlah jalur timbul meningkatkan kelajuan penjanaan\n" +"AMARAN: Menaikkan jumlah jalur timbul meningkatkan kelajuan penjanaan\n" "peta enjin, tetapi ia boleh memberi kesan buruk kepada prestasi permainan\n" "dengan mengganggu proses-proses lain, terutamanya dalam mod pemain\n" -"perseorangan dan/atau apabila menjalankan kod Lua dalam fungsi " -"'on_generated'.\n" -"Untuk kebanyakan pengguna, tetapan optimum ialah '1'." +"perseorangan dan/atau apabila menjalankan kod Lua dalam fungsi\n" +"'on_generated'. Untuk kebanyakan pengguna, tetapan optimum ialah '1'." #: src/settings_translation_file.cpp msgid "" @@ -5570,14 +5566,12 @@ msgid "Rightclick repetition interval" msgstr "Selang pengulangan klik kanan" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Kedalaman sungai" +msgstr "Kedalaman saluran sungai" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Kedalaman sungai" +msgstr "Lebar saluran sungai" #: src/settings_translation_file.cpp msgid "River depth" @@ -5592,9 +5586,8 @@ msgid "River size" msgstr "Saiz sungai" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Kedalaman sungai" +msgstr "Lebar lembah sungai" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -5938,7 +5931,7 @@ msgstr "Kelajuan menyelinap" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Kelajuan menyelinap, dalam unit nod per saat." #: src/settings_translation_file.cpp msgid "Sound" @@ -6324,7 +6317,6 @@ msgid "Undersampling" msgstr "Pensampelan pengurangan" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6335,7 +6327,8 @@ msgstr "" "Pensampelan pengurangan serupa seperti menggunakan resolusi skrin rendah,\n" "tetapi ia hanya diaplikasikan kepada dunia permainan sahaja, tidak mengubah " "GUI.\n" -"Ia boleh meningkatkan prestasi dengan mengorbankan perincian imej." +"Ia boleh meningkatkan prestasi dengan mengorbankan perincian imej.\n" +"Nilai lebih tinggi membuatkan imej yang kurang perincian." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6448,7 +6441,7 @@ msgstr "Pelbagai kecuraman cenuram." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Kelajuan memanjat menegak, dalam unit nod per saat." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6506,7 +6499,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Kelajuan berjalan dan terbang, dalam unit nod per saat." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6515,6 +6508,8 @@ msgstr "Kelajuan berjalan" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Kelajuan berjalan, terbang dan memanjat dalam mod pantas, dalam unit nod per " +"saat." #: src/settings_translation_file.cpp msgid "Water level" @@ -6541,19 +6536,16 @@ msgid "Waving water" msgstr "Air bergelora" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave height" -msgstr "Ketinggian air bergelora" +msgstr "Ketinggian ombak air bergelora" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave speed" -msgstr "Kelajuan air bergelora" +msgstr "Kelajuan ombak air bergelora" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wavelength" -msgstr "Panjang air bergelora" +msgstr "Panjang ombak air bergelora" #: src/settings_translation_file.cpp msgid "" From 1f419ad19fd96f162c1f74d7980553d6c3518307 Mon Sep 17 00:00:00 2001 From: Mateusz Mendel Date: Fri, 1 Nov 2019 15:33:44 +0000 Subject: [PATCH 039/624] Translated using Weblate (Polish) Currently translated at 81.1% (1033 of 1274 strings) --- po/pl/minetest.po | 48 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/po/pl/minetest.po b/po/pl/minetest.po index 35d450dcb..669e78bfd 100644 --- a/po/pl/minetest.po +++ b/po/pl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Polish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-02 23:03+0000\n" +"Last-Translator: Mateusz Mendel \n" "Language-Team: Polish \n" "Language: pl\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1860,8 +1860,9 @@ msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." msgstr "Szum 3D dla nawisów skalnych, klifów, itp. Zwykle mało zróżnicowany." #: src/settings_translation_file.cpp +#, fuzzy msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "Szum 3D, który wpływa na liczbę lochów na jeden mapchunk." #: src/settings_translation_file.cpp msgid "" @@ -1920,8 +1921,9 @@ msgid "Acceleration in air" msgstr "Przyspieszenie w powietrzu" #: src/settings_translation_file.cpp +#, fuzzy msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Przyśpieszenie grawitacyjne, w blokach na sekundę." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2432,8 +2434,9 @@ msgstr "" "zostaje niezmienione." #: src/settings_translation_file.cpp +#, fuzzy msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Wpływa na prędkość zanurzania w płynie." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2509,8 +2512,9 @@ msgid "Dec. volume key" msgstr "Klawisz zmniejszania głośności" #: src/settings_translation_file.cpp +#, fuzzy msgid "Decrease this to increase liquid resistence to movement." -msgstr "" +msgstr "Zmniejsz wartość, aby zwiększyć opór ruchu w cieczy." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -3088,11 +3092,14 @@ msgid "Font size" msgstr "Rozmiar czcionki" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Format of player chat messages. The following strings are valid " "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Format wiadomości czatu graczy. Następujące ciągi są dozwolone: \n" +"@name, @message, @timestamp (opcjonalne0" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3355,22 +3362,31 @@ msgid "Homepage of server, to be displayed in the serverlist." msgstr "Główna strona serwera, wyświetlana na liście serwerów." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Przyśpieszenie poziome podczas skoku lub upadku,\n" +"w blokach na sekundę." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Poziome i pionowe przyśpieszenie w trybie szybkim,\n" +"w blokach na sekundę." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Poziome i pionowe przyśpieszenie na ziemi lub podczas wchodzenia,\n" +"w blokach na sekunde." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3721,8 +3737,9 @@ msgid "Inc. volume key" msgstr "Klawisz zwiększania głośności" #: src/settings_translation_file.cpp +#, fuzzy msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Początkowa prędkość pionowa podczas skoku, w blokach na sekundę." #: src/settings_translation_file.cpp #, fuzzy @@ -5067,10 +5084,13 @@ msgid "Maximum hotbar width" msgstr "Maksymalna długość hotbar" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Maksymalny opór cieczy. Wpływa na spowolnienie przy wejściu w ciecz \n" +"z dużą prędkością." #: src/settings_translation_file.cpp msgid "" @@ -6001,8 +6021,9 @@ msgid "Sneaking speed" msgstr "Szybkość skradania" #: src/settings_translation_file.cpp +#, fuzzy msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Prędkość skradania, w blokach na sekundę." #: src/settings_translation_file.cpp msgid "Sound" @@ -6487,8 +6508,9 @@ msgid "Varies steepness of cliffs." msgstr "Kontroluje stromość/wysokość gór." #: src/settings_translation_file.cpp +#, fuzzy msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Pionowa prędkość wchodzenia, w blokach na sekundę." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6546,16 +6568,20 @@ msgstr "" "Jego zakres jest od -2 do 2" #: src/settings_translation_file.cpp +#, fuzzy msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Prędkość chodzenia i latania, w blokach na sekundę." #: src/settings_translation_file.cpp msgid "Walking speed" msgstr "Szybkość chodzenia" #: src/settings_translation_file.cpp +#, fuzzy msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Prędkość chodzenia, latania i wchodzenia w trybie szybkiego chodzenia, w " +"blokach na sekundę." #: src/settings_translation_file.cpp msgid "Water level" From 93db4be7268ac7ffd5745feefa019f608fa39b82 Mon Sep 17 00:00:00 2001 From: Vicente Carrasco Alvarez Date: Fri, 1 Nov 2019 22:06:35 +0000 Subject: [PATCH 040/624] Translated using Weblate (Spanish) Currently translated at 61.5% (783 of 1274 strings) --- po/es/minetest.po | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 73e0f91d1..bf097e64a 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-02 23:03+0000\n" +"Last-Translator: Vicente Carrasco Alvarez \n" "Language-Team: Spanish \n" "Language: es\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -791,9 +791,8 @@ msgid "Waving Leaves" msgstr "Movimiento de Hojas" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Movimiento de hojas" +msgstr "Movimiento de Líquidos" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -922,9 +921,8 @@ msgid "- Server Name: " msgstr "- Nombre del servidor: " #: src/client/game.cpp -#, fuzzy msgid "Automatic forward disabled" -msgstr "Avance automático descativado" +msgstr "Avance automático desactivado" #: src/client/game.cpp #, fuzzy @@ -1882,7 +1880,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "Ruido 3D que determina la cantidad de mazmorras por chunk." #: src/settings_translation_file.cpp msgid "" @@ -2365,6 +2363,14 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" +"Lista de banderas a ocultar en el repositorio de contenido. La lista usa la " +"coma como separador.\n" +"Se puede usar la etiqueta \"nonfree\" para ocultar paquetes que no tienen " +"licencia libre (tal como define la Funcación de software libre (FSF).\n" +"También puedes especificar proporciones de contenido.\n" +"Estas banderas son independientes de la versión de Minetest.\n" +"Si quieres ver una lista completa visita https://content.minetest.net/help/" +"content_flags/" #: src/settings_translation_file.cpp msgid "" From d877e9030182cec48747b4c3519ce79d95f1b105 Mon Sep 17 00:00:00 2001 From: Mateusz Mendel Date: Sun, 3 Nov 2019 16:51:39 +0000 Subject: [PATCH 041/624] Translated using Weblate (Polish) Currently translated at 81.1% (1033 of 1274 strings) --- po/pl/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/pl/minetest.po b/po/pl/minetest.po index 669e78bfd..c58933756 100644 --- a/po/pl/minetest.po +++ b/po/pl/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Polish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-02 23:03+0000\n" +"PO-Revision-Date: 2019-11-04 17:03+0000\n" "Last-Translator: Mateusz Mendel \n" "Language-Team: Polish \n" @@ -3099,7 +3099,7 @@ msgid "" "@name, @message, @timestamp (optional)" msgstr "" "Format wiadomości czatu graczy. Następujące ciągi są dozwolone: \n" -"@name, @message, @timestamp (opcjonalne0" +"@name, @message, @timestamp (opcjonalne)" #: src/settings_translation_file.cpp msgid "Format of screenshots." From 7f2911b7f036fa633fef131058f952f4c38733cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Wed, 6 Nov 2019 08:55:35 +0000 Subject: [PATCH 042/624] Translated using Weblate (Italian) Currently translated at 96.9% (1234 of 1274 strings) --- po/it/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/it/minetest.po b/po/it/minetest.po index f330f5bc3..621ac9bd7 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-10-29 11:53+0000\n" -"Last-Translator: Jacques Lagrange \n" +"PO-Revision-Date: 2019-11-07 09:04+0000\n" +"Last-Translator: Allan Nordhøy \n" "Language-Team: Italian \n" "Language: it\n" @@ -12,7 +12,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.9.1\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1534,7 +1534,7 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Stai per accedere a questo server col nome \"%2$s\" per la prima volta. \n" +"Stai per accedere a questo server col nome \"%s\" per la prima volta. \n" "Se prosegui, su questo server sarà creato un nuovo account usando le tue " "credenziali.\n" "Per favore reinserisci la tua password e premi Registrati e accedi per " From 8e35ab78b43f063243df0e985dfacecb0cff3907 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:37:55 +0000 Subject: [PATCH 043/624] Translated using Weblate (Lao) Currently translated at 0.1% (1 of 1274 strings) --- po/lo/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/lo/minetest.po b/po/lo/minetest.po index 9971e84fd..d52565df1 100644 --- a/po/lo/minetest.po +++ b/po/lo/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Lao (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Lao \n" "Language: lo\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -857,7 +857,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From 3c234107532cca9899a77ed96be4910f7ea0980f Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:38:03 +0000 Subject: [PATCH 044/624] Translated using Weblate (Lithuanian) Currently translated at 15.4% (196 of 1274 strings) --- po/lt/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/lt/minetest.po b/po/lt/minetest.po index 91864ca50..85263e363 100644 --- a/po/lt/minetest.po +++ b/po/lt/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Lithuanian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Lithuanian \n" "Language: lt\n" @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > " "19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? " "1 : 2);\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -935,7 +935,7 @@ msgstr "Pateiktas pasaulio kelias neegzistuoja: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From 6dbbe07d50d73362a908ff746c646b49f0038932 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:33:50 +0000 Subject: [PATCH 045/624] Translated using Weblate (Thai) Currently translated at 66.8% (851 of 1274 strings) --- po/th/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/th/minetest.po b/po/th/minetest.po index ebda995d1..70d78ca4e 100644 --- a/po/th/minetest.po +++ b/po/th/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Thai (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Thai \n" "Language: th\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -871,7 +871,7 @@ msgstr "โลกมีเส้นไม่มี: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "ต้องการใช้แทนอักษร" +msgstr "yes" #: src/client/game.cpp #, fuzzy From 8e5fa96ffcbaefb417ee3772859af0d6d7c46948 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:36:07 +0000 Subject: [PATCH 046/624] Translated using Weblate (Filipino) Currently translated at 0.1% (1 of 1274 strings) --- po/fil/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/fil/minetest.po b/po/fil/minetest.po index 3bf95e45e..5323fa6ed 100644 --- a/po/fil/minetest.po +++ b/po/fil/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Filipino (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Filipino \n" "Language: fil\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 " "|| n % 10 == 6 || n % 10 == 9);\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -858,7 +858,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From f5d2d79f756007367856a838d15ac297e3228295 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:38:51 +0000 Subject: [PATCH 047/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.4% (1228 of 1274 strings) --- po/pt_BR/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index 9fb7bbbe8..21bec314a 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -874,7 +874,7 @@ msgstr "O caminho do mundo providenciado não existe. " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "precisa_fonte_reserva" +msgstr "no" #: src/client/game.cpp msgid "" From 2ef7df5cfe40b2875e7557c4f51ba97b2c6f41d2 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:33:05 +0000 Subject: [PATCH 048/624] Translated using Weblate (Danish) Currently translated at 49.5% (631 of 1274 strings) --- po/da/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/da/minetest.po b/po/da/minetest.po index 600eb042a..cdca137ba 100644 --- a/po/da/minetest.po +++ b/po/da/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Danish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Danish \n" "Language: da\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -884,7 +884,7 @@ msgstr "Angivne sti til verdenen findes ikke: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From 839bb713895700f0d0188153ee3eedf96c5a4450 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:34:56 +0000 Subject: [PATCH 049/624] Translated using Weblate (Greek) Currently translated at 1.1% (14 of 1274 strings) --- po/el/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/el/minetest.po b/po/el/minetest.po index 18e4b8a14..afc61a060 100644 --- a/po/el/minetest.po +++ b/po/el/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Greek (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Greek \n" "Language: el\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -860,7 +860,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From b037efc5c6f4c86f4dbf2a5e8daece20dd3c50a5 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:35:15 +0000 Subject: [PATCH 050/624] Translated using Weblate (Esperanto) Currently translated at 79.6% (1014 of 1274 strings) --- po/eo/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/eo/minetest.po b/po/eo/minetest.po index d9630fc17..c53d4181f 100644 --- a/po/eo/minetest.po +++ b/po/eo/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Esperanto (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Esperanto \n" "Language: eo\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -869,7 +869,7 @@ msgstr "Donita monda dosierindiko ne ekzistas: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "bezonas_rezervan_tiparon" +msgstr "yes" #: src/client/game.cpp msgid "" From 0ea16328dfda7049510ca640285dc207f467194a Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:35:46 +0000 Subject: [PATCH 051/624] Translated using Weblate (Estonian) Currently translated at 14.4% (183 of 1274 strings) --- po/et/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/et/minetest.po b/po/et/minetest.po index d2a659cd2..2207f3a80 100644 --- a/po/et/minetest.po +++ b/po/et/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Estonian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Estonian \n" "Language: et\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -919,7 +919,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "no" #: src/client/game.cpp msgid "" From 18e42efa015af121f1c7599fd10ee43797521ad7 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:36:30 +0000 Subject: [PATCH 052/624] Translated using Weblate (Hungarian) Currently translated at 61.9% (788 of 1274 strings) --- po/hu/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/hu/minetest.po b/po/hu/minetest.po index c4de6a3d2..93ad4bab3 100644 --- a/po/hu/minetest.po +++ b/po/hu/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Hungarian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-10-29 11:53+0000\n" -"Last-Translator: Ács Zoltán \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -12,7 +12,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.9.1\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -873,7 +873,7 @@ msgstr "A megadott útvonalon nem létezik világ: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "Tartalék szövegtípus szükséges" +msgstr "yes" #: src/client/game.cpp msgid "" From 0823bb1276348554791b70239861524a6972ce33 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:36:18 +0000 Subject: [PATCH 053/624] Translated using Weblate (Hebrew) Currently translated at 4.3% (55 of 1274 strings) --- po/he/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/he/minetest.po b/po/he/minetest.po index 746a68d36..263c5d24a 100644 --- a/po/he/minetest.po +++ b/po/he/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Hebrew (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Hebrew \n" "Language: he\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -888,7 +888,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From 92aab79d275d4943a72b8d4b092dde292860de67 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:36:45 +0000 Subject: [PATCH 054/624] Translated using Weblate (Italian) Currently translated at 96.9% (1234 of 1274 strings) --- po/it/minetest.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/it/minetest.po b/po/it/minetest.po index 621ac9bd7..525b967e5 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-07 09:04+0000\n" -"Last-Translator: Allan Nordhøy \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Italian \n" "Language: it\n" @@ -865,7 +865,7 @@ msgstr "Il percorso fornito per il mondo non esiste: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "richiede_font_ripiego" +msgstr "no" #: src/client/game.cpp msgid "" From 1d268f4b8355ee162837829dfe333c2d12fd5a79 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:38:34 +0000 Subject: [PATCH 055/624] Translated using Weblate (Norwegian Nynorsk) Currently translated at 31.2% (398 of 1274 strings) --- po/nn/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/nn/minetest.po b/po/nn/minetest.po index b341f4187..3bd237b2a 100644 --- a/po/nn/minetest.po +++ b/po/nn/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Norwegian Nynorsk (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -872,7 +872,7 @@ msgstr "Verds-ruta du ga finnes ikkje: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "Trengar_attoverfall_skriftstype" +msgstr "yes" #: src/client/game.cpp msgid "" From 1407a7bc8a374af0c57898838c3a456484a2c4ab Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:37:15 +0000 Subject: [PATCH 056/624] Translated using Weblate (Kazakh) Currently translated at 0.1% (1 of 1274 strings) --- po/kk/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/kk/minetest.po b/po/kk/minetest.po index db633a053..cd847a9b7 100644 --- a/po/kk/minetest.po +++ b/po/kk/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Kazakh (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Kazakh \n" "Language: kk\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -857,7 +857,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From 3f3fce466473da1619a43e313928740ed5b84f90 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:37:29 +0000 Subject: [PATCH 057/624] Translated using Weblate (Kannada) Currently translated at 3.0% (38 of 1274 strings) --- po/kn/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/kn/minetest.po b/po/kn/minetest.po index e4045c7a8..6b8c4ec75 100644 --- a/po/kn/minetest.po +++ b/po/kn/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Kannada (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Kannada \n" "Language: kn\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -870,7 +870,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From e38415c56ddba61fcf20133ceaeb276f59ce967d Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:39:06 +0000 Subject: [PATCH 058/624] Translated using Weblate (Slovenian) Currently translated at 42.0% (535 of 1274 strings) --- po/sl/minetest.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/sl/minetest.po b/po/sl/minetest.po index 47e53ffe8..d48ee9167 100644 --- a/po/sl/minetest.po +++ b/po/sl/minetest.po @@ -3,17 +3,17 @@ msgstr "" "Project-Id-Version: Slovenian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Slovenian \n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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.9-dev\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.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -874,7 +874,7 @@ msgstr "Podana pot do sveta ne obstaja: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "no" #: src/client/game.cpp msgid "" From 4666c99b27a7ae1539f80ccf3ed0cb6fcf2bb3b0 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:37:36 +0000 Subject: [PATCH 059/624] Translated using Weblate (Kyrgyz) Currently translated at 8.6% (110 of 1274 strings) --- po/ky/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/ky/minetest.po b/po/ky/minetest.po index 29a57ee93..2f91441c1 100644 --- a/po/ky/minetest.po +++ b/po/ky/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Kyrgyz (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Kyrgyz \n" "Language: ky\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -926,7 +926,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From ab2fa2ca9da806716fd326f8e475affe13fd369c Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:38:20 +0000 Subject: [PATCH 060/624] Translated using Weblate (Burmese) Currently translated at 0.1% (1 of 1274 strings) --- po/my/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/my/minetest.po b/po/my/minetest.po index d0f8bfdc7..272eb01c9 100644 --- a/po/my/minetest.po +++ b/po/my/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Burmese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Burmese \n" "Language: my\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -857,7 +857,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From 6f97e15a8f643156362f4dfbcbf5038663e4530d Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:40:29 +0000 Subject: [PATCH 061/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 63.0% (803 of 1274 strings) --- po/zh_CN/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 648ad72e9..e723e35b2 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -868,7 +868,7 @@ msgstr "提供的世界路径不存在: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "需要_fallback_字体" +msgstr "yes" #: src/client/game.cpp msgid "" From 662af2edba37c0cbc800a471c2823c5f750b0974 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:34:31 +0000 Subject: [PATCH 062/624] Translated using Weblate (Dhivehi) Currently translated at 8.2% (105 of 1274 strings) --- po/dv/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/dv/minetest.po b/po/dv/minetest.po index 2f252435d..c96ac042e 100644 --- a/po/dv/minetest.po +++ b/po/dv/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Dhivehi (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Dhivehi \n" "Language: dv\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -878,7 +878,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From 642cac3759ebf1f494411a6c33801cd63201dc00 Mon Sep 17 00:00:00 2001 From: Krock Date: Sat, 9 Nov 2019 14:37:00 +0000 Subject: [PATCH 063/624] Translated using Weblate (Japanese (Kansai)) Currently translated at 0.1% (1 of 1274 strings) --- po/ja_KS/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/ja_KS/minetest.po b/po/ja_KS/minetest.po index ca5d315ee..504aadb3b 100644 --- a/po/ja_KS/minetest.po +++ b/po/ja_KS/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Japanese (Kansai) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-10 15:04+0000\n" +"Last-Translator: Krock \n" "Language-Team: Japanese (Kansai) \n" "Language: ja_KS\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -857,7 +857,7 @@ msgstr "" #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "yes" #: src/client/game.cpp msgid "" From 7d2ae10849c843d8483b157706b89076ffbc0684 Mon Sep 17 00:00:00 2001 From: Jacques Lagrange Date: Tue, 12 Nov 2019 06:11:53 +0000 Subject: [PATCH 064/624] Translated using Weblate (Italian) Currently translated at 100.0% (1274 of 1274 strings) --- po/it/minetest.po | 191 +++++++++++++++++++++++----------------------- 1 file changed, 97 insertions(+), 94 deletions(-) diff --git a/po/it/minetest.po b/po/it/minetest.po index 525b967e5..0779ba55a 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2019-11-13 16:04+0000\n" +"Last-Translator: Jacques Lagrange \n" "Language-Team: Italian \n" "Language: it\n" @@ -28,7 +28,7 @@ msgstr "Si è verificato un errore in uno script Lua:" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "È successo un errore:" +msgstr "Si è verificato un errore:" #: builtin/fstk/ui.lua msgid "Main menu" @@ -245,7 +245,7 @@ msgstr "Nessun gioco selezionato" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "Seme" +msgstr "Seme di generazione" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The minimal development test is meant for developers." @@ -261,13 +261,13 @@ msgstr "Non hai nessun gioco installato." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "Sei sicuro di volere cancellare \"$1\"?" +msgstr "Sei sicuro di volere eliminare \"$1\"?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" -msgstr "Cancella" +msgstr "Elimina" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" @@ -279,7 +279,7 @@ msgstr "pkgmgr: percorso non valido \"$1\"" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "Cancellare il mondo \"$1\"?" +msgstr "Vuoi eliminare il mondo \"$1\"?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" @@ -307,11 +307,11 @@ msgstr "Rumore 2D" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "< Torna alla Pag. impostazioni" +msgstr "< Torna alle impostazioni" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" -msgstr "Mostra" +msgstr "Scorri" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" @@ -343,7 +343,7 @@ msgstr "Persistenza" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "Per favore inserisci un intero valido." +msgstr "Per favore inserisci un numero intero valido." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." @@ -403,19 +403,19 @@ msgstr "Propagazione Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" -msgstr "val.ass." +msgstr "'absvalue'" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "predefiniti" +msgstr "'defaults'" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" -msgstr "semplificato" +msgstr "'eased'" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" -msgstr "$1 (Abilitato)" +msgstr "$1 (abilitato)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" @@ -427,12 +427,12 @@ msgstr "Impossibile installare $1 in $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "Installa mod: Impossibile trovare il nome reale del mod per: $1" +msgstr "Installa mod: Impossibile trovare il vero nome del mod per: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Installa mod: Impossibile trovare un nome cartella adatto per il pacchetto " +"Installa mod: Impossibile trovare un nome cartella corretto per il pacchetto " "mod $1" #: builtin/mainmenu/pkgmgr.lua @@ -601,7 +601,7 @@ msgstr "Ferimento abilitato" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Del. Favorite" -msgstr "Canc. preferito" +msgstr "Elimina preferito" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Favorite" @@ -653,7 +653,7 @@ msgstr "Sei sicuro di azzerare il tuo mondo locale?" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "Salvare dim. finestra" +msgstr "Ricorda dim. finestra" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" @@ -701,11 +701,11 @@ msgstr "Nessuna mipmap" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "Evidenz. nodo" +msgstr "Evidenzia nodi" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" -msgstr "Profilo nodo" +msgstr "Profilo nodi" #: builtin/mainmenu/tab_settings.lua msgid "None" @@ -753,7 +753,7 @@ msgstr "Foglie semplici" #: builtin/mainmenu/tab_settings.lua msgid "Smooth Lighting" -msgstr "Illuminaz. uniforme" +msgstr "Luce uniforme" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" @@ -837,7 +837,7 @@ msgstr "Impossibile trovare o caricare il gioco \"" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." -msgstr "Spec. gioco non valida." +msgstr "Requisiti gioco non validi." #: src/client/clientlauncher.cpp msgid "Main Menu" @@ -1682,9 +1682,8 @@ msgid "Toggle noclip" msgstr "Scegli incorporea" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Scegli registro chat" +msgstr "Modalità beccheggio" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1824,9 +1823,8 @@ msgstr "" "Rumore 2D che controlla forma/comparsa delle file di montagne con dirupi." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "Rumore 2D che controlla forma/dimensione delle colline in serie." +msgstr "Rumore 2D che posiziona fiumi e canali." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -1864,7 +1862,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "Rumore 3D che stabilisce il numero di segrete per blocco di mondo." #: src/settings_translation_file.cpp msgid "" @@ -1922,7 +1920,7 @@ msgstr "Accelerazione in aria" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Accelerazione di gravità, in nodi per secondo al secondo." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2153,14 +2151,14 @@ msgid "Bumpmapping" msgstr "Bumpmapping" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" "Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Distanza in nodi del piano vicino alla telecamera, tra 0 e 0.5\n" +"Distanza in nodi del \"piano di ritaglio vicino\" alla telecamera, tra 0 e " +"0.5.\n" "La maggior parte degli utenti non dovrà cambiarla.\n" "Aumentarla può ridurre l'artificialità sulle GPU più deboli.\n" "0.1 = predefinita, 0.25 = buon valore per tablet più deboli." @@ -2250,9 +2248,8 @@ msgid "Chat message count limit" msgstr "Numero limite dei messaggi di chat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Lunghezza massima dei messaggi di chat" +msgstr "Formato dei messaggi di chat" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2433,7 +2430,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Controlla la velocità di affondamento nei liquidi." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2498,9 +2495,8 @@ msgid "Debug info toggle key" msgstr "Tasto di scelta delle informazioni di debug" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Soglia di rumore del deserto" +msgstr "Dimensione del file di debug" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2512,7 +2508,7 @@ msgstr "Tasto dim. volume" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." -msgstr "" +msgstr "Va diminuito per aumentare la resistenza al movimento nel liquido." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2606,9 +2602,8 @@ msgid "Defines the base ground level." msgstr "Definisce il livello base del terreno." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Definisce il livello base del terreno." +msgstr "Stabilisce la profondità del letto del fiume." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2617,14 +2612,12 @@ msgstr "" "= illimitata)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Definisce la struttura dei canali fluviali di ampia scala." +msgstr "Stabilisce la larghezza del fiume." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Definisce aree in cui gli alberi hanno le mele." +msgstr "Stabilisce la larghezza della valle del fiume." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2657,6 +2650,9 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" +"Sconsigliato, va usata la definizione del bioma per definire e posizionare " +"le caverne di liquido.\n" +"Limite verticale della lava nelle caverne grandi." #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2679,13 +2675,12 @@ msgid "Desert noise threshold" msgstr "Soglia di rumore del deserto" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" -"Quando np_biome eccede questo valore si verificano i deserti.\n" -"Ciò viene ignorato quando è attivato il nuovo sistema di bioma." +"I deserti si presentano quando np_biome supera questo valore.\n" +"Quando è attivo il parametro 'snowbiomes', viene ignorato." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2732,9 +2727,8 @@ msgid "Dungeon minimum Y" msgstr "Y minimo dei sotterranei" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Y minimo dei sotterranei" +msgstr "Rumore per le segrete" #: src/settings_translation_file.cpp msgid "" @@ -3099,6 +3093,9 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Formato dei messaggi del giocatore. Le stringhe seguenti sono segnaposto " +"validi:\n" +"@name, @message, @timestamp (optional)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3359,18 +3356,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Accelerazione orizzontale in aria quando si salta o si cade,\n" +"in nodi al secondo per secondo." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Accelerazione orizzontale e verticale in modalità veloce,\n" +"in nodi al secondo per secondo." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Accelerazione orizzontale sul terreno o in scalata,\n" +"in nodi al secondo per secondo." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3659,6 +3662,11 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Se la dimensione del file debug.txt supera il numero di Mb indicati in\n" +"questa impostazione quando viene aperto, il file viene rinominato in " +"debug.txt.1,\n" +"eliminando un eventuale debug.txt.1 più vecchio.\n" +"debug.txt viene rinominato solo se c'è questa impostazione." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3692,7 +3700,7 @@ msgstr "Tasto aum. volume" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Velocità verticale iniziale quando si salta, in nodi al secondo." #: src/settings_translation_file.cpp msgid "" @@ -4733,9 +4741,8 @@ msgid "Liquid queue purge time" msgstr "Tempo di svuotamento della coda del liquido" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Velocità di affondamento del liquido" +msgstr "Velocità di affondamento nel liquido" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -4819,14 +4826,15 @@ msgstr "" "\"altitude_dry\": riduce l'umidità con l'altitudine." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen flat.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Attributi di generazione della mappa specifici del generatore di mappe v7.\n" -"\"ridges\" abilita i fiumi." +"Attributi di generazione della mappa specifici del generatore di mappe " +"piatto.\n" +"'terrain' abilita la generazione di terreno non-frattale:\n" +"oceano, isole e sotterranei." #: src/settings_translation_file.cpp msgid "" @@ -4843,7 +4851,6 @@ msgstr "" "Attributi di generazione della mappa specifici del generatore di mappe v5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" @@ -4851,9 +4858,9 @@ msgid "" "the 'jungles' flag is ignored." msgstr "" "Attributi di generazione della mappa specifici del generatore di mappe v6.\n" -"Il valore \"snowbiomes\" abilita il nuovo sistema di bioma 5.\n" -"Quando è abilitato il nuovo sistema di bioma le giungle sono abilitate\n" -"automaticamente e il valore \"jungles\" è ignorato." +"Il valore \"snowbiomes\" abilita il nuovo sistema di 5 biomi.\n" +"Quando è abilitato,le giungle sono abilitate automaticamente \n" +"e il valore \"jungles\" viene ignorato." #: src/settings_translation_file.cpp msgid "" @@ -4908,9 +4915,8 @@ msgid "Mapgen Fractal" msgstr "Generatore di mappe Fractal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Valori specifici del generatore di mappe Flat" +msgstr "Valori specifici del generatore di mappe frattale" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -4997,6 +5003,8 @@ msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Resistenza massima dei liquidi. Gestisce la decelerazione \n" +"quando si entra ad alta velocità in un liquido." #: src/settings_translation_file.cpp msgid "" @@ -5209,7 +5217,6 @@ msgid "Mute sound" msgstr "Silenzia audio" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" @@ -5217,12 +5224,9 @@ msgid "" "- The optional floatlands of v7 (disabled by default)." msgstr "" "Nome del generatore mappa da usare alla creazione di un nuovo mondo.\n" -"Creare un mondo nel menu principale lo scavalcherà.\n" -"Generatori mappe attualmente stabili:\n" -"v5, v6, v7 (eccetto terre fluttuanti), singlenode.\n" -"\"Stabile\" significa che la forma del terreno in un mondo esistente non\n" -"sarà cambiata in futuro. Si noti che i biomi sono determinati dai giochi\n" -"e potrebbero ancora cambiare." +"Non viene usato se si crea un mondo nel menu principale.\n" +"Generatori mappe attualmente molto instabili:\n" +"- 'floatlands' in v7 (disabilitato per impostazione predefinita)." #: src/settings_translation_file.cpp msgid "" @@ -5243,9 +5247,8 @@ msgstr "" "dei server." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near clipping plane" -msgstr "Piano vicino" +msgstr "Piano di ritaglio vicino" #: src/settings_translation_file.cpp msgid "Network" @@ -5296,7 +5299,6 @@ msgid "Number of emerge threads" msgstr "Numero di thread emerge" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "WARNING: Currently there are multiple bugs that may cause crashes when\n" @@ -5312,17 +5314,22 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" -"Numero di thread emerge da usare.\n" -"Vuoto o valore 0:\n" -"- Selezione automatica. Il numero di thread emerge sarà\n" +"Numero di emerge thread da usare.\n" +"Attenzione: Attualmente ci sono diversi bachi che possono provocare crash " +"quando\n" +"'num_emerge_threds' è maggiore di 1. Fintanto che questo avviso non viene " +"rimosso \n" +"si raccomanda vivamente di impostarlo al valore predefinito 1.\n" +"Valore 0:\n" +"- Selezione automatica. Il numero di emerge thread sarà\n" "- \"numero di processori - 2\", con un limite inferiore di 1.\n" "Qualunque altro valore:\n" -"- Specifica il numero di thread emerge, con un limite inferiore di 1.\n" -"Avvertimento: aumentare il numero di thread emerge aumenta la\n" +"- Specifica il numero di emerge thread, con un limite inferiore di 1.\n" +"Avvertimento: aumentare il numero di emerge thread aumenta la\n" "velocità del motore del generatore mappa, ma ciò potrebbe danneggiare\n" "le prestazioni del gioco interferendo con altri processi, specialmente in\n" -"modalità giocatore singolo e/o quando si esegue codice Lua in \"on_generated" -"\".\n" +"modalità giocatore singolo e/o quando si esegue codice Lua in \"" +"on_generated\".\n" "Per molti utenti l'impostazione ottimale può essere \"1\"." #: src/settings_translation_file.cpp @@ -5601,14 +5608,12 @@ msgid "Rightclick repetition interval" msgstr "Intervallo di ripetizione del click destro" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Profondità dei fiumi" +msgstr "Profondità dell'alveo dei fiumi" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Profondità dei fiumi" +msgstr "Larghezza dell'alveo dei fiumi" #: src/settings_translation_file.cpp msgid "River depth" @@ -5623,9 +5628,8 @@ msgid "River size" msgstr "Dimensione dei fiumi" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Profondità dei fiumi" +msgstr "Larghezza delle valli dei fiumi" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -5974,7 +5978,7 @@ msgstr "Velocità di strisciamento" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Velocità furtiva, in nodi al secondo." #: src/settings_translation_file.cpp msgid "Sound" @@ -6364,7 +6368,6 @@ msgid "Undersampling" msgstr "Sotto-campionamento" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6372,12 +6375,13 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"Il sotto-campionamento è simile all'uso di una risoluzione schermo " +"Il sotto-campionamento è analogo all'uso di una risoluzione schermo " "inferiore,\n" "ma è applicato solo al mondo di gioco, mantenendo intatta l'interfaccia " "utente.\n" "Dovrebbe dare un aumento di prestazioni significativo al costo di immagini\n" -"meno dettagliate." +"meno dettagliate.\n" +"Più si aumenta il valore, meno dettagliata sarà l'immagine." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6493,7 +6497,7 @@ msgstr "Varia la ripidità dei dirupi." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Velocità di scalata, in nodi al secondo." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6551,7 +6555,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Velocità a terra o in volo, in nodi al secondo." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6560,6 +6564,8 @@ msgstr "Velocità di cammino" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Velocità sul terreno, in volo e in scalata con modalità rapida, in nodi al " +"secondo." #: src/settings_translation_file.cpp msgid "Water level" @@ -6586,19 +6592,16 @@ msgid "Waving water" msgstr "Acqua ondeggiante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave height" -msgstr "Altezza dell'acqua ondeggiante" +msgstr "Altezza di ondeggiamento dei liquidi" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave speed" -msgstr "Velocità di ondeggiamento dell'acqua" +msgstr "Velocità di ondeggiamento dei liquidi" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wavelength" -msgstr "Durata di ondeggiamento dell'acqua" +msgstr "Durata di ondeggiamento dei liquidi" #: src/settings_translation_file.cpp msgid "" From dcaa7ac609a404d74d470f05c766bfd06a67fe84 Mon Sep 17 00:00:00 2001 From: Julien Maulny Date: Tue, 12 Nov 2019 15:11:01 +0000 Subject: [PATCH 065/624] Translated using Weblate (French) Currently translated at 97.0% (1236 of 1274 strings) --- po/fr/minetest.po | 51 ++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index cec173e3d..386d8aeef 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-13 16:04+0000\n" +"Last-Translator: Julien Maulny \n" "Language-Team: French \n" "Language: fr\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Vous êtes mort" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Une erreur est survenue dans un script Lua (comme un mod) :" +msgstr "Une erreur est survenue dans un script Lua :" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -121,18 +120,16 @@ msgid "Mod:" msgstr "Mod :" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Dépendances optionnelles :" +msgstr "Pas de dépendances (optionnelles)" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Pas de description du jeu fournie." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Pas de dépendances." +msgstr "Pas de dépendances" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -141,7 +138,7 @@ msgstr "Aucune description fournie pour le pack de mods." #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "No optional dependencies" -msgstr "Dépendances optionnelles :" +msgstr "Pas de dépendances optionnelles" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -789,9 +786,8 @@ msgid "Waving Leaves" msgstr "Feuilles ondulantes" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Environnement mouvant" +msgstr "Liquides ondulants" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1533,7 +1529,7 @@ msgid "Register and Join" msgstr "S'enregistrer et rejoindre" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1541,12 +1537,13 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Vous allez rejoindre le serveur %1$s1 avec le nom \"%2$s2\" pour la première " -"fois. Si vous continuez un nouveau compte avec ces identifiants sera créé " +"Vous êtes sur le point de rejoindre ce serveur avec le nom \"%s\" pour la " +"première fois.\n" +"Si vous continuez, un nouveau compte utilisant vos identifiants sera créé " "sur ce serveur.\n" -"Merci d'inscrire de nouveau votre mot de passe et de cliquer sur Enregistrer " -"et rejoindre pour confirmer la création du coup. Auquel cas, cliquez sur " -"Annuler pour retourner en arrière." +"Veuillez retaper votre mot de passe et cliquer sur \"S'enregistrer et " +"rejoindre\" pour confirmer la création de votre compte, ou cliquez sur \"" +"Annuler\"." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1925,7 +1922,7 @@ msgstr "Accélération en l'air" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Accélération de la gravité, en nœuds par seconde par seconde." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2254,9 +2251,8 @@ msgid "Chat message count limit" msgstr "Limite du nombre de message de discussion" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Longueur maximum d'un message de chat" +msgstr "Format du message de chat" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2503,9 +2499,8 @@ msgid "Debug info toggle key" msgstr "Infos de débogage" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Limite de bruit pour le désert" +msgstr "Seuil de la taille du fichier de logs" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2518,6 +2513,7 @@ msgstr "Touche pour diminuer le volume" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." msgstr "" +"Diminuer cette valeur pour augmenter la résistance du liquide au mouvement." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2735,9 +2731,8 @@ msgid "Dungeon minimum Y" msgstr "Minimum Y des donjons" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Minimum Y des donjons" +msgstr "Bruit de donjon" #: src/settings_translation_file.cpp msgid "" @@ -3101,6 +3096,8 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Format des messages de chat des joueurs. Substituts valides :\n" +"@name, @message, @timestamp (facultatif)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3362,12 +3359,16 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Accélération horizontale dans l'air en sautant ou en tombant,\n" +"en nœuds par seconde par seconde." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Accélération horizontale et verticale en mode rapide,\n" +"en nœuds par seconde par seconde." #: src/settings_translation_file.cpp msgid "" From a95e75261a0baf22d94fe558a3a170876b1898d3 Mon Sep 17 00:00:00 2001 From: Viktar Vauchkevich Date: Mon, 18 Nov 2019 20:59:06 +0000 Subject: [PATCH 066/624] Translated using Weblate (Belarusian) Currently translated at 100.0% (1274 of 1274 strings) --- po/be/minetest.po | 243 ++++++++++++++++++++++------------------------ 1 file changed, 114 insertions(+), 129 deletions(-) diff --git a/po/be/minetest.po b/po/be/minetest.po index 59be1980a..1658d2dbe 100644 --- a/po/be/minetest.po +++ b/po/be/minetest.po @@ -3,17 +3,17 @@ msgstr "" "Project-Id-Version: Belarusian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-19 23:04+0000\n" +"Last-Translator: Viktar Vauchkevich \n" "Language-Team: Belarusian \n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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.9-dev\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.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,9 +24,8 @@ msgid "You died" msgstr "Вы загінулі" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Памылка ў скрыпце Lua, такая як у мадыфікацыі:" +msgstr "Адбылася памылка ў Lua-скрыпце:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -121,27 +120,24 @@ msgid "Mod:" msgstr "Мадыфікацыя:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Неабавязковыя залежнасці:" +msgstr "Няма (неабясковыя) залежнасцей" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Апісанне гульні адсутнічае." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Залежнасці адсутнічаюць." +msgstr "Няма жорсткіх залежнасцяў" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Апісанне мадыфікацыі адсутнічае." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Неабавязковыя залежнасці:" +msgstr "Няма неабавязковых залежнасцей" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -787,9 +783,8 @@ msgid "Waving Leaves" msgstr "Дрыготкае лісце" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Калыханне блокаў" +msgstr "Калыханне вадкасцяў" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -916,14 +911,12 @@ msgid "- Server Name: " msgstr "- Назва сервера: " #: src/client/game.cpp -#, fuzzy msgid "Automatic forward disabled" -msgstr "Аўтаматычны рух адключаны" +msgstr "Аўтаматычны рух наперад адключаны" #: src/client/game.cpp -#, fuzzy msgid "Automatic forward enabled" -msgstr "Аўтаматычны рух уключаны" +msgstr "Аўтаматычны рух наперад уключаны" #: src/client/game.cpp msgid "Camera update disabled" @@ -1536,7 +1529,7 @@ msgid "Register and Join" msgstr "Зарэгістравацца і далучыцца" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1544,10 +1537,11 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Вы хочаце першы раз увайсці на сервер %1$s як \"%2$s\". Калі вы працягнеце, " -"то на серверы будзе створаны новы акаўнт з уведзенымі данымі. Калі ласка, " -"ўвядзіце пароль яшчэ раз і націсніце \"Зарэгістравацца і далучыцца\", каб " -"пацвердзіць стварэнне акаўнта альбо \"Скасаваць\", каб адмовіцца." +"Вы хочаце першы раз увайсці на сервер з назвай «%s».\n" +"Калі вы працягнеце, то на серверы будзе створаны новы конт з вашамі данымі.\n" +"Калі ласка, ўвядзіце пароль яшчэ раз і націсніце «Зарэгістравацца і " +"далучыцца», каб пацвердзіць стварэнне конта альбо \"Скасаваць\", каб " +"адмовіцца." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1691,9 +1685,8 @@ msgid "Toggle noclip" msgstr "Рух скрозь сцены" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Размова" +msgstr "Нахіленне руху" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1812,24 +1805,20 @@ msgid "2D noise that controls the shape/size of step mountains." msgstr "2D-шум, што кіруе формай/памерам сталовых гор." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "2D-шум, што кіруе памерам/месцазнаходжаннем горных ланцугоў." +msgstr "2D-шум, што кіруе памерам/распаўсюдам складчатых горных ланцугоў." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "2D-шум, што кіруе памерам/месцазнаходжаннем пагоркаў." +msgstr "2D-шум, што кіруе памерам/распаўсюдам пагоркаў." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "2D-шум, што кіруе памерам/месцазнаходжаннем горных ланцугоў." +msgstr "2D-шум, што кіруе памерам/распаўсюдам ступенявых горных ланцугоў." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "2D-шум, што кіруе памерам/месцазнаходжаннем горных ланцугоў." +msgstr "2D-шум, што размяшчае поймы рэк і рэчышчы." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -1866,7 +1855,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D-шум, што вызначае колькасць падзямелляў на кавалку мапы." #: src/settings_translation_file.cpp msgid "" @@ -1922,7 +1911,7 @@ msgstr "Паскарэнне ў паветры" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Паскарэнне свабоднага падзення ў вузлах за секунду за секунду." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2066,9 +2055,8 @@ msgstr "" "Прызначаецца ў блоках мапы (16 вузлоў)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Automatic forward key" -msgstr "Клавіша ўперад" +msgstr "Клавіша аўта-ўперад" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." @@ -2151,17 +2139,17 @@ msgid "Bumpmapping" msgstr "Рэльефнае тэкстураванне" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" "Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Адлегласць паміж камерай і плоскасцю, ад 0 да 0.5 блока. Большасці " -"карыстальнікаў няма патрэбы змяняць гэты параметр. Павелічэнне параметра " -"можа паменшыць колькасць артэфактаў на слабых графічных працэсарах.\n" -"Прадвызначана - 0.1; 0.25 будзе добра для слабых планшэтаў." +"Блізкая плоскаць адсячэння камеры ў вузлах ад 0 да 0.5.\n" +"Большасці карыстальнікаў няма патрэбы змяняць гэты параметр.\n" +"Павелічэнне можа паменшыць колькасць артэфактаў на слабых графічных " +"працэсарах.\n" +"Тыповае — 0.1, а 0.25 будзе добра для слабых планшэтаў." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2248,9 +2236,8 @@ msgid "Chat message count limit" msgstr "Максімальная колькасць паведамленняў у размове" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Максімальная працягласць паведамлення ў размове" +msgstr "Фармат чат-паведамленняў" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2393,12 +2380,11 @@ msgstr "Вышыня кансолі" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" -msgstr "" +msgstr "Чорны спіс сцяжкоў ContentDB" #: src/settings_translation_file.cpp -#, fuzzy msgid "ContentDB URL" -msgstr "Змесціва" +msgstr "URL ContentDB" #: src/settings_translation_file.cpp msgid "Continuous forward" @@ -2427,7 +2413,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Кантралюе хуткасць сцякання вадкасці." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2490,9 +2476,8 @@ msgid "Debug info toggle key" msgstr "Клавіша пераключэння адладачных даных" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Парог шуму пустынь" +msgstr "Парог памеру файла журнала адладкі" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2504,7 +2489,7 @@ msgstr "Кнопка памяншэння гучнасці" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." -msgstr "" +msgstr "Паменшыце гэта, каб павялічыць інерцыю вадкасці." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2596,9 +2581,8 @@ msgid "Defines the base ground level." msgstr "Вызначае базавы ўзровень зямлі." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Вызначае базавы ўзровень зямлі." +msgstr "Вызначае глыбіню рэчышча." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2607,14 +2591,12 @@ msgstr "" "(0 — неабмежаваная)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Вызначае буйнамаштабную структуру рэчышч." +msgstr "Вызначае шырыню рэчышча." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Вызначае вобласці, дзе на дрэвах ёсць яблыкі." +msgstr "Вызначае шырыню поймы ракі." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2647,6 +2629,9 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" +"Састарэлы. Вызначае і размяшчае пячорныя вадкасці з выкарыстаннем азначэнняў " +"біёму.\n" +"Y верхняй мяжы лавы ў вялікіх пячорах." #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2668,13 +2653,12 @@ msgid "Desert noise threshold" msgstr "Парог шуму пустынь" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" "Пустыні з'яўляюцца, калі np_biome перавысіць гэтае значэнне.\n" -"Ігнаруецца, калі ўключаная новая сістэма біёмаў." +"Ігнаруецца, калі ўключаны сцяжок snowbiomes." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2721,9 +2705,8 @@ msgid "Dungeon minimum Y" msgstr "Мінімальная Y падзямелля" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Мінімальная Y падзямелля" +msgstr "Шум падзямелля" #: src/settings_translation_file.cpp msgid "" @@ -3078,6 +3061,9 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Фармат чат-паведамленняў гульца. Наступныя радкі з'яўляюцца запаўняльнікамі:" +"\n" +"@name, @message і @timestamp (неабавязкова)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3202,18 +3188,15 @@ msgid "Global callbacks" msgstr "Глабальныя зваротныя выклікі" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Global map generation attributes.\n" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" "Глабальныя параметры генерацыі мапы.\n" -"У генератары мапы 6 параметр \"decorations\" кіруе ўсімі дэкарацыямі,\n" +"У генератары мапы 6 параметр «decorations» кіруе ўсімі дэкарацыямі,\n" "апроч дрэў і травы джунгляў, а ў астатніх генератарах гэты параметр\n" -"кіруе ўсімі дэкарацыямі.\n" -"Параметры, не вызначаныя ў радку, застаюцца з прадвызначанымі значэннямі.\n" -"Параметры з \"no\" выключаюцца." +"кіруе ўсімі дэкарацыямі." #: src/settings_translation_file.cpp msgid "Gradient of light curve at maximum light level." @@ -3336,18 +3319,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Гарызантальнае паскарэнне ў паветры пры скачках ці падзенні\n" +"ў вузлах за секунду за секунду." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Гарызантальнае паскарэнне ў хуткі рэжыме\n" +"ў вузлах за секунду за секунду." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Гарызантальнае і вертыкальнае паскарэнне на зямлі ці пры карасканні\n" +"ў вузлах за секунду за секунду." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3487,7 +3476,7 @@ msgstr "Прадмет 9 панэлі хуткага доступу" #: src/settings_translation_file.cpp msgid "How deep to make rivers." -msgstr "Якой глыбіні рабіць рэкі." +msgstr "Наколькі глыбокімі рабіць рэкі." #: src/settings_translation_file.cpp msgid "" @@ -3500,7 +3489,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "How wide to make rivers." -msgstr "Якой шырыні рабіць рэкі." +msgstr "Наколькі шырокімі рабіць рэкі." #: src/settings_translation_file.cpp msgid "Humidity blend noise" @@ -3634,6 +3623,10 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Калі памер файла debug.txt пры адкрыцці перавысіць колькасць мегабайтаў,\n" +"пазначаных гэтай наладай, файл будзе перамешчаны ў debug.txt.1,\n" +"а стары debug.txt.1 будзе выдалены.\n" +"debug.txt перамяшчаецца, калі гэтая значэнне станоўчае." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3665,7 +3658,7 @@ msgstr "Клавіша павелічэння гучнасці" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Пачатковая вертыкальная хуткасць пры скоках у вызлах за секунду." #: src/settings_translation_file.cpp msgid "" @@ -4694,9 +4687,8 @@ msgid "Liquid queue purge time" msgstr "Час ачышчэння чаргі вадкасцяў" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Хуткасць апускання ў вадкасць" +msgstr "Сцяканне вадкасці" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -4758,7 +4750,7 @@ msgstr "Каталог мапаў" #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" +msgstr "Атрыбуты генерацыі для генератара Карпат." #: src/settings_translation_file.cpp msgid "" @@ -4770,11 +4762,11 @@ msgid "" "'altitude_dry': Reduces humidity with altitude." msgstr "" "Атрыбуты генерацыі мапы для генератара далін.\n" -"'altitude_chill': памяншае цеплыню з ростам вышыні.\n" -"'humid_rivers': павялічвае вільготнасць абапал рэк.\n" -"Variable_river_depth: калі ўключана, то нізкая вільготнасць і высокая " +"«altitude_chill»: памяншае цеплыню з ростам вышыні.\n" +"«humid_rivers»: павялічвае вільготнасць абапал рэк.\n" +"«vary_river_depth»: калі ўключана, то нізкая вільготнасць і высокая " "тэмпература ўплываюць на ўзровень вады ў рэках.\n" -"'altitude_dry': памяншае вільготнасць з ростам вышыні." +"«altitude_dry»: памяншае вільготнасць з ростам вышыні." #: src/settings_translation_file.cpp msgid "" @@ -4782,24 +4774,23 @@ msgid "" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" +"Атрыбуты генерацыі для плоскага генератара.\n" +"«terrain» уключае генерацыю не-фрактальнага рельефу:\n" +"акіяны, выспы і падзямеллі." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" "Атрыбуты генерацыі мапы для генератара плоскасці.\n" -"Выпадковыя азёры і пагоркі могуць дадавацца на плоскасць свету.\n" -"Нявызначаныя атрыбуты прадвызначана не змяняюцца.\n" -"Атрыбуты, што пачынаюцца з 'no' выкарыстоўваюцца для іх выключэння." +"Часам азёры і пагоркі могуць дадавацца ў плоскі свет." #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen v5." -msgstr "" +msgstr "Атрыбуты генерацыі для генератара 5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" @@ -4808,16 +4799,16 @@ msgid "" msgstr "" "Атрыбуты генерацыі мапы для генератара мапы 6.\n" "Параметр «snowbiomes» (снежныя біёмы) ўключае новую сістэму з 5 біёмамі.\n" -"Калі новая сістэма ўключаная, то аўтаматычна ўключаюцца \"джунглі\", а " -"параметр \"jungles\" ігнаруецца.\n" -"Нявызначаныя параметры прадвызначана не змяняюцца.\n" -"Параметры, што пачынаюцца з \"no\", выкарыстоўваюцца для выключэння." +"Калі «snowbiomes» ўключаны, то аўтаматычна ўключаюцца «джунглі»,\n" +"а параметр «jungles» ігнаруецца." #: src/settings_translation_file.cpp msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges' enables the rivers." msgstr "" +"Атрыбуты генерацыі для генератара 7.\n" +"«ridges» уключае рэкі." #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -4864,9 +4855,8 @@ msgid "Mapgen Fractal" msgstr "Генератар мапы: фракталы" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Адмысловыя параметры генератара плоскасці мапы" +msgstr "Адмысловыя параметры фрактальнага генератара мапы" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -4953,6 +4943,8 @@ msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Максімальная ўстойлівасць вадкасці. Кантралюе запавольванне\n" +"пры паступленні вадкасці з высокай хуткасцю." #: src/settings_translation_file.cpp msgid "" @@ -5159,21 +5151,17 @@ msgid "Mute sound" msgstr "Выключыць гук" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" "Current mapgens in a highly unstable state:\n" "- The optional floatlands of v7 (disabled by default)." msgstr "" -"Назва генератара мапы, што будзе выкарыстоўвацца для стварэння новага " -"свету.\n" -"Пры стварэнні свету ў галоўным меню гэта можна змяніць.\n" -"Бягучыя стабільныя генератары:\n" -"V5, V6, V7 (за выключэннем лятучых астравоў (floatlands)), плоскасці (flat), " -"адзіночны блок (singlenode).\n" -"\"Стабільны\" азначае, што форма ландшафту існага свету не зменіцца ў " -"будучыні. Майце на ўвазе, што біёмы вызначаюцца гульцамі і могуць змяняцца." +"Назва генератара мапы, што будзе выкарыстоўвацца для стварэння новага свету." +"\n" +"Гэта можна змяніць пры стварэнні свету ў галоўным меню.\n" +"Цяперашнія вельмі нестабільныя генератары:\n" +"- Неабавясковыя плаваючыя выспы 7 (звычайна адключаны)." #: src/settings_translation_file.cpp msgid "" @@ -5192,9 +5180,8 @@ msgid "" msgstr "Назва сервера, што будзе паказвацца пры падлучэнні і ў спісе сервераў." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near clipping plane" -msgstr "Адлегласць да плоскасці" +msgstr "Блізкая плоскасць адсячэння" #: src/settings_translation_file.cpp msgid "Network" @@ -5245,7 +5232,6 @@ msgid "Number of emerge threads" msgstr "Колькасць узнікаючых патокаў" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "WARNING: Currently there are multiple bugs that may cause crashes when\n" @@ -5262,17 +5248,21 @@ msgid "" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" "Колькасць узнікаючых патокаў.\n" -"Пуста альбо 0:\n" -"- аўтаматычны выбар. Колькасць узнікаючых патокаў будзе вызначацца як\n" -"\"колькасць працэсараў - 2\" з ніжнім лімітам 1.\n" +"УВАГА: Цяпер можа ўзнікаць мноства хібаў, калі «num_emerge_threads» больш за " +"1.\n" +"Строга рэкамендуецца ўстанавіць гэтае значэнне ў 1, пакуль гэта папярэджанне " +"не знікне.\n" +"Значэнне 0:\n" +"- аўтаматычны выбар. Колькасць узнікаючых патокаў будзе вызначацца\n" +"як «колькасць працэсараў - 2» з ніжняй мяжой у 1.\n" "Любое іншае значэнне:\n" -"- вызначае колькасць узнікаючых патокаў з ніжнім лімітам 1.\n" -"Майце на ўвазе, што павелічэнне колькасці патокаў павялічвае хуткасць " -"рухавіка генератара мапы, але можа ўплываць на прадукцыйнасць гульні, " +"- вызначае колькасць узнікаючых патокаў з ніжняй мяжой у 1.\n" +"УВАГА: Майце на ўвазе, што павелічэнне колькасці патокаў павялічвае\n" +"хуткасць рухавіка генератара мапы, але можа ўплываць на прадукцыйнасць " +"гульні,\n" "замінаючы іншым працэсам, асабліва адзіночнай гульні і (альбо) запуску коду " "Lua у\n" -"'On_generated.\n" -"Для мноства карыстальнікаў найлепшым значэннем можа быць \"1\"." +"'On_generated. Для большасці карыстальнікаў найлепшым значэннем можа быць 1." #: src/settings_translation_file.cpp msgid "" @@ -5453,7 +5443,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Raises terrain to make valleys around the rivers." -msgstr "Падымае мясцовасць, каб зрабіць даліны вакол рэк." +msgstr "Падымае мясцовасць, каб зрабіць поймы ўздоўж рэк." #: src/settings_translation_file.cpp msgid "Random input" @@ -5540,14 +5530,12 @@ msgid "Rightclick repetition interval" msgstr "Інтэрвал паўторнай пстрычкі правай кнопкі мышы" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Глыбіня рэк" +msgstr "Глыбіня рэчышча" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Глыбіня рэк" +msgstr "Шырыня рэчышча" #: src/settings_translation_file.cpp msgid "River depth" @@ -5562,9 +5550,8 @@ msgid "River size" msgstr "Памер рэк" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Глыбіня рэк" +msgstr "Шырыня поймы ракі" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -5906,7 +5893,7 @@ msgstr "Хуткасць хады ўпотай" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Хуткасць крадкоў у вузлах за секунду." #: src/settings_translation_file.cpp msgid "Sound" @@ -6282,7 +6269,6 @@ msgid "Undersampling" msgstr "Субдыскрэтызацыя" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6293,7 +6279,9 @@ msgstr "" "Субдыскрэтызацыя падобная на выкарыстанне нізкай раздзяляльнай здольнасці " "экрана,\n" "але ўжываецца толькі да гульнявога свету, не кранаючы інтэрфейс.\n" -"Гэта значна павялічыць працаздольнасць за кошт вываду менш падрабязнай выявы." +"Гэта значна павялічвае працаздольнасць за кошт вываду менш падрабязнай выявы." +"\n" +"Высокія значэнні прыводзяць да менш дэталізаванай выявы." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6407,7 +6395,7 @@ msgstr "Кіруе крутасцю гор." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Хуткасць вертыкальнага караскання ў вузлах за секунду." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6465,7 +6453,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Хуткасць хады і палёту ў вузлах за секунду." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6473,7 +6461,7 @@ msgstr "Хуткасць хады" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" +msgstr "Хуткасць хады, палёту і караскання ў хуткі рэжыме ў вузлах за секунду." #: src/settings_translation_file.cpp msgid "Water level" @@ -6500,17 +6488,14 @@ msgid "Waving water" msgstr "Хваляванне вады" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave height" msgstr "Вышыня водных хваляў" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave speed" msgstr "Хуткасць водных хваляў" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wavelength" msgstr "Даўжыня водных хваляў" @@ -6531,10 +6516,10 @@ msgid "" "to the old scaling method, for video drivers that don't\n" "properly support downloading textures back from hardware." msgstr "" -"Калі gui_scaling_filter_txr2img уключаны, скапіяваць гэтыя выявы з апаратуры " -"ў праграмнае асяроддзе для маштабавання. Калі не, то вярнуцца да старога " -"метаду маштабавання для відэадрайвераў, якія не падтрымліваюць перадачу " -"тэкстур з апаратуры назад." +"Калі gui_scaling_filter_txr2img уключаны, выявы капіююцца\n" +"з апаратуры ў праграмнае асяроддзе для маштабавання.\n" +"Калі не, то вярнуцца да старога метаду маштабавання для відэадрайвераў,\n" +"якія не падтрымліваюць перадачу тэкстур з апаратуры назад." #: src/settings_translation_file.cpp msgid "" From 01e763f8797ccd3e0fa23e25f15f69b057f656ed Mon Sep 17 00:00:00 2001 From: abidin toumi Date: Thu, 21 Nov 2019 09:10:00 +0000 Subject: [PATCH 067/624] Added translation using Weblate (Arabic) --- po/ar/minetest.po | 5892 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5892 insertions(+) create mode 100644 po/ar/minetest.po diff --git a/po/ar/minetest.po b/po/ar/minetest.po new file mode 100644 index 000000000..b0f5737fc --- /dev/null +++ b/po/ar/minetest.po @@ -0,0 +1,5892 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the minetest package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: minetest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-10-09 22:02+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred in a Lua script:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Ok" +msgstr "" + +#: builtin/mainmenu/common.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server supports protocol versions between $1 and $2. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server enforces protocol version $1. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We support protocol versions between version $1 and $2." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We only support protocol version $1." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Protocol version mismatch. " +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "World:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Mod:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No (optional) dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No hard dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No optional dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp +msgid "Save" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "enabled" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "All packages" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Games" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Mods" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Downloading and installing $1, please wait..." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Uninstall" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back to Main Menu" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No results" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No packages could be retrieved" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "World name" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "You have no games installed." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Warning: The minimal development test is meant for developers." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "A world named \"$1\" already exists" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "No game selected" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "Are you sure you want to delete \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua +#: src/client/keycode.cpp +msgid "Delete" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: failed to delete \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: invalid path \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_world.lua +msgid "Delete World \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Accept" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "" +"This modpack has an explicit name given in its modpack.conf which will " +"override any renaming here." +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "2D Noise" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Octaves" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Persistance" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Lacunarity" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "defaults" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "eased" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid integer." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select directory" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select file" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "< Back to Settings page" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 (Enabled)" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Failed to install $1 to $2" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to find a valid mod or modpack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find suitable folder name for modpack $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find real mod name for: $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: file: \"$1\"" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: Unsupported file type \"$1\" or broken archive" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 mods" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Installed Packages:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No package description available" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Rename" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No dependencies." +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Use Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Uninstall Package" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Active Contributors" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative Mode" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Announce Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name/Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Bind Address" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Play Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Start Game" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Address / Port" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Name / Password" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Connect" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Ping" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative mode" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Damage enabled" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "PvP enabled" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Fancy Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Trilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "2x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "4x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "8x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Yes" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Connected Glass" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Antialiasing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Autosave Screen Size" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/client/game.cpp +msgid "Change Keys" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "All Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Touchthreshold: (px)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bump Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Tone Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Generate Normal Maps" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Plants" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Start Singleplayer" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Config mods" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Main" +msgstr "" + +#: src/client/client.cpp +msgid "Connection timed out." +msgstr "" + +#: src/client/client.cpp +msgid "Loading textures..." +msgstr "" + +#: src/client/client.cpp +msgid "Rebuilding shaders..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Connection error (timed out?)" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Could not find or load game \"" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Invalid gamespec." +msgstr "" + +#: src/client/fontengine.cpp +msgid "needs_fallback_font" +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating server..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating client..." +msgstr "" + +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/client/game.cpp +msgid "Item definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Node definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "KiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp src/gui/modalMenu.cpp +msgid "ok" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Profiler graph shown" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info and profiler graph hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update enabled" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +msgid "Enabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Disabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "" +"Default Controls:\n" +"No menu visible:\n" +"- single tap: button activate\n" +"- double tap: place/use\n" +"- slide finger: look around\n" +"Menu/Inventory visible:\n" +"- double tap (outside):\n" +" -->close\n" +"- touch stack, touch slot:\n" +" --> move stack\n" +"- touch&drag, tap 2nd finger\n" +" --> place single item to slot\n" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" + +#: src/client/game.cpp +msgid "Continue" +msgstr "" + +#: src/client/game.cpp +msgid "Change Password" +msgstr "" + +#: src/client/game.cpp +msgid "Game paused" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to Menu" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to OS" +msgstr "" + +#: src/client/game.cpp +msgid "Game info:" +msgstr "" + +#: src/client/game.cpp +msgid "- Mode: " +msgstr "" + +#: src/client/game.cpp +msgid "Remote server" +msgstr "" + +#: src/client/game.cpp +msgid "- Address: " +msgstr "" + +#: src/client/game.cpp +msgid "Hosting server" +msgstr "" + +#: src/client/game.cpp +msgid "- Port: " +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "On" +msgstr "" + +#: src/client/game.cpp +msgid "Off" +msgstr "" + +#: src/client/game.cpp +msgid "- Damage: " +msgstr "" + +#: src/client/game.cpp +msgid "- Creative Mode: " +msgstr "" + +#: src/client/game.cpp +msgid "- PvP: " +msgstr "" + +#: src/client/game.cpp +msgid "- Public: " +msgstr "" + +#: src/client/game.cpp +msgid "- Server Name: " +msgstr "" + +#: src/client/game.cpp +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat hidden" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD hidden" +msgstr "" + +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" +msgstr "" + +#: src/client/gameui.cpp +msgid "Profiler hidden" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Middle Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Backspace" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Clear" +msgstr "" + +#: src/client/keycode.cpp +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp +msgid "Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Pause" +msgstr "" + +#: src/client/keycode.cpp +msgid "Caps Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page up" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" +msgstr "" + +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#: src/client/keycode.cpp +msgid "Select" +msgstr "" + +#: src/client/keycode.cpp +msgid "Print" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Snapshot" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 0" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 3" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 4" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 5" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 6" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 7" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 8" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 9" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad *" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad +" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad ." +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad -" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad /" +msgstr "" + +#: src/client/keycode.cpp +msgid "Num Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Scroll Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "Apps" +msgstr "" + +#: src/client/keycode.cpp +msgid "Sleep" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Play" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Zoom" +msgstr "" + +#: src/client/keycode.cpp +msgid "OEM Clear" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +#, c-format +msgid "" +"You are about to join this server with the name \"%s\" for the first time.\n" +"If you proceed, a new account using your credentials will be created on this " +"server.\n" +"Please retype your password and click 'Register and Join' to confirm account " +"creation, or click 'Cancel' to abort." +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiFormSpecMenu.cpp +msgid "Proceed" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "\"Special\" = climb down" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Automatic jumping" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Change camera" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Autoforward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Local command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle HUD" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle chat log" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fog" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "New Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Confirm Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Change" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Exit" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Muted" +msgstr "" + +#: src/gui/modalMenu.cpp +msgid "Enter " +msgstr "" + +#: src/network/clientpackethandler.cpp +msgid "LANG_CODE" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Always fly and fast" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated right clicks when holding the " +"right\n" +"mouse button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Fixes the position of virtual joystick.\n" +"If disabled, virtual joystick will center to first-touch's position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Use virtual joystick to trigger \"aux\" button.\n" +"If enabled, virtual joystick will also tap \"aux\" button when out of main " +"circle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Right key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Adds particles when digging a node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shader path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bumpmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of generated normalmaps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion scale" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving water.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving plants.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS in pause menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near clipping plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" +"Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust the gamma encoding for the light tables. Higher numbers are " +"brighter.\n" +"This setting is for the client only and is ignored by the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Darkness sharpness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gradient of light curve at minimum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lightness sharpness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gradient of light curve at maximum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve mid boost" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of light curve mid-boost." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve mid boost center" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Center of light curve mid-boost." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve mid boost spread" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Spread of light curve mid-boost.\n" +"Standard deviation of the mid-boost gaussian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended, and it’s the only driver with\n" +"shader support currently." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D support.\n" +"Currently supported:\n" +"- none: no 3d output.\n" +"- anaglyph: cyan/magenta color 3d.\n" +"- interlaced: odd/even line based polarisation screen support.\n" +"- topbottom: split screen top/bottom.\n" +"- sidebyside: split screen side by side.\n" +"- crossview: Cross-eyed 3d\n" +"- pageflip: quadbuffer based 3d.\n" +"Note that the interlaced mode requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box border color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Useable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ambient occlusion gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name to tooltip." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled in." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to TrueTypeFont or bitmap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow offset, if 0 then shadow will not be drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "This font will be used for certain languages." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to save screenshots at." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce to this serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rollback recording" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shutdown message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server crashes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ask to reconnect after crash" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_range." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amount of messages a player may send per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistence to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistence. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated lua api calls:\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block management interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ABM interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"At this distance the server will aggressively optimize which blocks are sent " +"to\n" +"clients.\n" +"Small values potentially improve performance a lot, at the expense of " +"visible\n" +"rendering glitches (some blocks will not be rendered under water and in " +"caves,\n" +"as well as sometimes on land).\n" +"Setting this to a value greater than max_block_send_distance disables this\n" +"optimization.\n" +"Stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Restricts the access of certain client-side functions on servers.\n" +"Combine the byteflags below to restrict client-side features, or set to 0\n" +"for no restrictions:\n" +"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" +"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" +"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" +"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" +"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Changes the main menu UI:\n" +"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " +"etc.\n" +"- Simple: One singleplayer world, no game or texture pack choosers. May " +"be\n" +"necessary for smaller screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls width of tunnels, a smaller value creates wider tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lava depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deprecated, define and locate cave liquids using biome definitions instead.\n" +"Y of upper limit of lava in large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges' enables the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain density" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls the density of mountain-type floatlands.\n" +"Is a noise offset added to the 'mgv7_np_mountain' noise value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Typical maximum height, above and below midpoint, of floatland mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Alters how mountain-type floatlands taper above and below midpoint." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of floatland midpoint and lake surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shadow limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level to which floatland shadows extend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge underwater noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines areas of floatland smooth terrain.\n" +"Smooth floatlands occur when noise > 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland base height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of hill height and lake depth on floatland smooth terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River valley width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of step mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hill size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridged mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of ridged mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of step mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that locates the river valleys and channels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen flat.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Selects one of 18 fractal types.\n" +"1 = 4D \"Roundy\" mandelbrot set.\n" +"2 = 4D \"Roundy\" julia set.\n" +"3 = 4D \"Squarry\" mandelbrot set.\n" +"4 = 4D \"Squarry\" julia set.\n" +"5 = 4D \"Mandy Cousin\" mandelbrot set.\n" +"6 = 4D \"Mandy Cousin\" julia set.\n" +"7 = 4D \"Variation\" mandelbrot set.\n" +"8 = 4D \"Variation\" julia set.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" mandelbrot set.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" julia set.\n" +"11 = 3D \"Christmas Tree\" mandelbrot set.\n" +"12 = 3D \"Christmas Tree\" julia set.\n" +"13 = 3D \"Mandelbulb\" mandelbrot set.\n" +"14 = 3D \"Mandelbulb\" julia set.\n" +"15 = 3D \"Cosine Mandelbulb\" mandelbrot set.\n" +"16 = 3D \"Cosine Mandelbulb\" julia set.\n" +"17 = 4D \"Mandelbulb\" mandelbrot set.\n" +"18 = 4D \"Mandelbulb\" julia set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slice w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Seabed noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Altitude chill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slope and fill work together to modify the heights." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amplifies the valleys." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" +"WARNING!: There is no benefit, and there are several dangers, in\n" +"increasing this value above 5.\n" +"Reducing this value increases cave and dungeon density.\n" +"Altering this value is for special usage, leaving it unchanged is\n" +"recommended." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Absolute limit of emerge queues" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues on disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"WARNING: Currently there are multiple bugs that may cause crashes when\n" +"'num_emerge_threads' is larger than 1. Until this warning is removed it is\n" +"strongly recommended this value is set to the default '1'.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The URL for the content repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" From a07acc067b74c9c0234dfefc61b0691c4ea20e8e Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Thu, 21 Nov 2019 18:15:19 +0000 Subject: [PATCH 068/624] Translated using Weblate (Russian) Currently translated at 81.7% (1041 of 1274 strings) --- po/ru/minetest.po | 79 ++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 46 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index c083dffe4..50ee6393d 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,17 +3,17 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-22 06:11+0000\n" +"Last-Translator: Andrei Stepanov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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.9-dev\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.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -138,9 +138,8 @@ msgid "No modpack description provided." msgstr "Описание пакета модов недоступно." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Необязательные зависимости:" +msgstr "Нет необязательных зависимостей" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -356,7 +355,7 @@ msgstr "Пожалуйста, введите число." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Восстановить стандартные" +msgstr "Сбросить значение" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" @@ -789,9 +788,8 @@ msgid "Waving Leaves" msgstr "Покачивание листвы" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Покачивание блоков" +msgstr "Покачивание жидкостей" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -976,15 +974,15 @@ msgid "" "- %s: chat\n" msgstr "" "Управление:\n" -"- %s: двигаться вперёд\n" -"- %s: двигаться назад\n" -"- %s: двигаться влево\n" -"- %s: двигаться вправо\n" +"- %s: вперёд\n" +"- %s: назад\n" +"- %s: влево\n" +"- %s: вправо\n" "- %s: прыжок/подъём\n" -"- %s: красться/спуститься\n" +"- %s: красться/спуск\n" "- %s: бросить предмет\n" "- %s: инвентарь\n" -"- Мышка: поворот\n" +"- Мышь: поворот/обзор\n" "- ЛКМ: копать/удар\n" "- ПКМ: поставить/использовать\n" "- Колесо мыши: выбор предмета\n" @@ -1053,7 +1051,7 @@ msgstr "Выход в меню" #: src/client/game.cpp msgid "Exit to OS" -msgstr "Выход в ОС" +msgstr "Выход в систему" #: src/client/game.cpp msgid "Fast mode disabled" @@ -1695,9 +1693,8 @@ msgid "Toggle noclip" msgstr "Сквозь стены" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Чат" +msgstr "Включить/отключить движение вниз/вверх по направлению взгляда" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1916,7 +1913,6 @@ msgid "A message to be displayed to all clients when the server shuts down." msgstr "Сообщение, которое будет показано всем при отключении сервера." #: src/settings_translation_file.cpp -#, fuzzy msgid "ABM interval" msgstr "Интервал сохранения карты" @@ -1937,7 +1933,6 @@ msgid "Active Block Modifiers" msgstr "Модификаторы активных блоков" #: src/settings_translation_file.cpp -#, fuzzy msgid "Active block management interval" msgstr "Интервал управления активным блоком" @@ -2008,9 +2003,8 @@ msgstr "" "чат в течении 10 секунд." #: src/settings_translation_file.cpp -#, fuzzy msgid "Amplifies the valleys." -msgstr "Усиливает долины" +msgstr "Усиливает долины." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" @@ -2021,17 +2015,16 @@ msgid "Announce server" msgstr "О сервере" #: src/settings_translation_file.cpp -#, fuzzy msgid "Announce to this serverlist." -msgstr "О сервере" +msgstr "Анонсировать на этот список серверов." #: src/settings_translation_file.cpp msgid "Append item name" -msgstr "lua-имена предметов" +msgstr "Добавлять названия предметов" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." -msgstr "Добавлять lua-имена предметов во всплывающих подсказках." +msgstr "Добавлять названия предметов во всплывающих подсказках." #: src/settings_translation_file.cpp msgid "Apple trees noise" @@ -2415,9 +2408,8 @@ msgid "ContentDB Flag Blacklist" msgstr "Чёрный список флагов ContentDB" #: src/settings_translation_file.cpp -#, fuzzy msgid "ContentDB URL" -msgstr "Дополнения" +msgstr "Адрес ContentDB" #: src/settings_translation_file.cpp msgid "Continuous forward" @@ -2514,9 +2506,8 @@ msgid "Debug info toggle key" msgstr "Клавиша переключения показа отладочной информации" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Порог шума пустынь" +msgstr "Порог размера файла журнала отладки" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -3178,7 +3169,7 @@ msgstr "Часть видимого расстояния, на которой н #: src/settings_translation_file.cpp msgid "FreeType fonts" -msgstr "FreeType шрифты" +msgstr "Шрифты FreeType" #: src/settings_translation_file.cpp msgid "" @@ -3279,9 +3270,8 @@ msgid "Ground noise" msgstr "Шум грязи" #: src/settings_translation_file.cpp -#, fuzzy msgid "HTTP mods" -msgstr "HTTP Моды" +msgstr "Моды HTTP" #: src/settings_translation_file.cpp msgid "HUD scale factor" @@ -3677,8 +3667,8 @@ msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." msgstr "" -"Если включено, определяет направления движения относительно наклона игрока " -"во время полёта или плавания." +"Если включено, определяет направления движения вверх/вниз в зависимости от " +"взгляда игрока во время полёта или плавания." #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." @@ -4540,15 +4530,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling pitch move mode.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша переключения режима проверки столкновений.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша переключения режима движение вниз/вверх по направлению взгляда.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -5480,14 +5469,12 @@ msgid "Physics" msgstr "Физика" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "Кнопка полёта" +msgstr "Кнопка движение вниз/вверх по направлению взгляда" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move mode" -msgstr "Режим движения вниз/вверх по направлению взгляда включён" +msgstr "Режим движения вниз/вверх по направлению взгляда" #: src/settings_translation_file.cpp msgid "" @@ -6664,8 +6651,8 @@ msgstr "" msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled in." msgstr "" -"Использовать FreeType шрифты (независимо от этого, поддержка FreeType должна " -"быть включена при сборке)." +"Использовать шрифты FreeType. Поддержка FreeType должна быть включена при " +"сборке." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." From e5b191e1f1a96ba8012dbf6d2533a111fe580215 Mon Sep 17 00:00:00 2001 From: abidin toumi Date: Thu, 21 Nov 2019 09:14:49 +0000 Subject: [PATCH 069/624] Translated using Weblate (Arabic) Currently translated at 4.2% (53 of 1274 strings) --- po/ar/minetest.po | 116 ++++++++++++++++++++++++---------------------- 1 file changed, 60 insertions(+), 56 deletions(-) diff --git a/po/ar/minetest.po b/po/ar/minetest.po index b0f5737fc..c01860ddc 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -8,13 +8,17 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"PO-Revision-Date: 2019-11-22 06:11+0000\n" +"Last-Translator: abidin toumi \n" +"Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" @@ -22,7 +26,7 @@ msgstr "" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" -msgstr "" +msgstr "أعِد الإحياء" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" @@ -30,11 +34,11 @@ msgstr "" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "" +msgstr "أعد الإتصال" #: builtin/fstk/ui.lua msgid "Main menu" -msgstr "" +msgstr "القائمة الرئيسية" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -42,43 +46,43 @@ msgstr "" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "" +msgstr "حدث خطأ:" #: builtin/fstk/ui.lua msgid "Ok" -msgstr "" +msgstr "موافق" #: builtin/mainmenu/common.lua src/client/game.cpp msgid "Loading..." -msgstr "" +msgstr "يحمل..." #: builtin/mainmenu/common.lua msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" +msgstr "جرب إعادة تمكين قائمة الحوادم العامة وتحقق من إتصالك بالانترنت." #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "" +msgstr "الخادم يدعم نسخ الميفاق ما بين $1 و $2. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "" +msgstr "يفرظ الخادم إ ستخدام الميفاق $1. " #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "" +msgstr "نحن ندعم نسخ الميفاق ما بين $1 و $2." #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "" +msgstr "نحن ندعم نسخة الميفاق $1فقط." #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " -msgstr "" +msgstr "لا تتطابق نسخ الميفاق. " #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "" +msgstr "العالم:" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -86,7 +90,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "" +msgstr "لا يتوفر وصف للعبة." #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -94,28 +98,28 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "" +msgstr "بدون إعتماديات إختيارية" #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "" +msgstr "بدون إعتماديات لازمة" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "" +msgstr "الإعتماديات الإختيارية:" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "" +msgstr "الإعتماديات:" #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "" +msgstr "بدون إعتماديات إختيارية" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "" +msgstr "إحفظ" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua @@ -125,7 +129,7 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "" +msgstr "ألغِ" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" @@ -137,15 +141,15 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "" +msgstr "مُمَكن" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "" +msgstr "عطِل الكل" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "" +msgstr "مكِن الكل" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -155,12 +159,12 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" -msgstr "" +msgstr "كل الحزم" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "" +msgstr "الألعاب" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -173,40 +177,40 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "" +msgstr "فشل تحميل $1" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading and installing $1, please wait..." -msgstr "" +msgstr "تنزيل وتثبيت $1, يرجى الإنتظار..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Back" -msgstr "" +msgstr "عُد" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "" +msgstr "ثبت" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "" +msgstr "حدِث" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" -msgstr "" +msgstr "أزل" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua msgid "Search" -msgstr "" +msgstr "إبحث" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "" +msgstr "عُد للقائمة الرئيسة" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "" +msgstr "بدون نتائج" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" @@ -214,7 +218,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "World name" -msgstr "" +msgstr "إسم العالم" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -227,19 +231,19 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "" +msgstr "اللعبة" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" -msgstr "" +msgstr "أنشئ" #: builtin/mainmenu/dlg_create_world.lua msgid "You have no games installed." -msgstr "" +msgstr "ليس لديك لعبة مثبتت." #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "" +msgstr "نزِّل لعبة من minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The minimal development test is meant for developers." @@ -247,41 +251,41 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" +msgstr "نزِّل لعبة,مثل لعبة Minetest, من minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "" +msgstr "إسم العالم \"$1\" موجود مسبقاً" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" -msgstr "" +msgstr "لم تحدد لعبة" #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "" +msgstr "هل تريد حذف \"$1\" ؟" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" -msgstr "" +msgstr "إحذف" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" +msgstr "مدير الحزم: فشل حذف \"$1\"" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "" +msgstr "مدير الحزم: المسار \"$1\" غير صالح" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "" +msgstr "حذف العالم \"$1\"؟" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "" +msgstr "أقبل" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -295,15 +299,15 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "" +msgstr "عطِّل" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "" +msgstr "مكِّن" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" -msgstr "" +msgstr "استعرض" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" @@ -343,7 +347,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "" +msgstr "إفتراضي" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" From 0a4580368aaffed85ba4ed73db75b480fd1cc26e Mon Sep 17 00:00:00 2001 From: abidin toumi Date: Fri, 22 Nov 2019 16:51:25 +0000 Subject: [PATCH 070/624] Translated using Weblate (Arabic) Currently translated at 5.6% (71 of 1274 strings) --- po/ar/minetest.po | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/po/ar/minetest.po b/po/ar/minetest.po index c01860ddc..be7552dd3 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-22 06:11+0000\n" +"PO-Revision-Date: 2019-11-23 18:04+0000\n" "Last-Translator: abidin toumi \n" "Language-Team: Arabic \n" @@ -22,7 +22,7 @@ msgstr "" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +msgstr "مِت" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -30,7 +30,7 @@ msgstr "أعِد الإحياء" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "" +msgstr "يطلب الخادم إعادة الإتصال:" #: builtin/fstk/ui.lua msgid "Reconnect" @@ -141,7 +141,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "مُمَكن" +msgstr "مُفعل" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" @@ -149,7 +149,7 @@ msgstr "عطِل الكل" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "مكِن الكل" +msgstr "فعِل الكل" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -173,7 +173,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "" +msgstr "حِزم الإكساء" #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -227,7 +227,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" -msgstr "" +msgstr "مولِد الخريطة" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -303,7 +303,7 @@ msgstr "عطِّل" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "مكِّن" +msgstr "مُفعل" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" @@ -375,51 +375,51 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "" +msgstr "يرجى إدخال رقم صحيح صالح." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." -msgstr "" +msgstr "يحب أن لا تقل القيمة عن $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must not be larger than $1." -msgstr "" +msgstr "يحب أن لا تزيد القيمة عن $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." -msgstr "" +msgstr "يرجى إدخال رقم صالح." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "" +msgstr "إختر الدليل" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select file" -msgstr "" +msgstr "إختر ملف" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "" +msgstr "< عد لصفحة الإعدادات" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "" +msgstr "حرر" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "" +msgstr "إستعِد الإفتراضي" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "" +msgstr "إعرض الأسماء التقنية" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" -msgstr "" +msgstr "$1 (مفعل)" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" -msgstr "" +msgstr "فشل تثبيت $1 كحزمة إكساء" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" @@ -447,11 +447,11 @@ msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" -msgstr "" +msgstr "فشل تثبيت اللعبة كـ $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "" +msgstr "ثبت: الملف: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" From b6a229775ec035e7c08d64f6451b00695c662458 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Sun, 24 Nov 2019 19:25:26 +0000 Subject: [PATCH 071/624] Translated using Weblate (Russian) Currently translated at 81.9% (1044 of 1274 strings) --- po/ru/minetest.po | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 50ee6393d..b4e9e3d55 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-22 06:11+0000\n" +"PO-Revision-Date: 2019-11-25 09:46+0000\n" "Last-Translator: Andrei Stepanov \n" "Language-Team: Russian \n" @@ -24,9 +24,8 @@ msgid "You died" msgstr "Вы умерли" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Ошибка в скрипте Lua (например, в моде):" +msgstr "Обнаружена ошибка в скрипте Lua:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -120,18 +119,16 @@ msgid "Mod:" msgstr "Мод:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Необязательные зависимости:" +msgstr "Нет необязательных зависимостей" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Описание игры недоступно." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Нет зависимостей." +msgstr "Нет жёстких зависимостей" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." From 429d7f33d49810a0478bc3653fbed7899f803252 Mon Sep 17 00:00:00 2001 From: Fixer Date: Tue, 26 Nov 2019 17:58:17 +0000 Subject: [PATCH 072/624] Translated using Weblate (Ukrainian) Currently translated at 42.1% (536 of 1274 strings) --- po/uk/minetest.po | 55 +++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/po/uk/minetest.po b/po/uk/minetest.po index af3a5d00d..156d94494 100644 --- a/po/uk/minetest.po +++ b/po/uk/minetest.po @@ -3,17 +3,17 @@ msgstr "" "Project-Id-Version: Ukrainian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-11-27 20:04+0000\n" +"Last-Translator: Fixer \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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.9-dev\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.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,9 +24,8 @@ msgid "You died" msgstr "Ви загинули" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Трапилася помилка у Lua скрипті модифікації:" +msgstr "Трапилася помилка у Lua скрипті:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -121,27 +120,24 @@ msgid "Mod:" msgstr "Мод:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Необов'язкові залежності:" +msgstr "Необов'язкові залежності відсутні" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Опис гри відсутній." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Без залежностей." +msgstr "Без обов'язкових залежностей" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Опис модифікації відсутній." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Необов'язкові залежності:" +msgstr "Відсутні необов'язкові залежності" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -750,7 +746,7 @@ msgstr "Шейдери" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" -msgstr "" +msgstr "Шейдери (недоступно)" #: builtin/mainmenu/tab_settings.lua msgid "Simple Leaves" @@ -785,9 +781,8 @@ msgid "Waving Leaves" msgstr "Коливати листя" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Блоки, що коливаються" +msgstr "Хвилясті Рідини" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -863,7 +858,7 @@ msgstr "Будь-ласка введіть ім'я!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "" +msgstr "Не вдалося відкрити файл паролю: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " @@ -914,12 +909,10 @@ msgid "- Server Name: " msgstr "- Назва сервера: " #: src/client/game.cpp -#, fuzzy msgid "Automatic forward disabled" msgstr "Автоматичний рух вперед вимкнено" #: src/client/game.cpp -#, fuzzy msgid "Automatic forward enabled" msgstr "Автоматичний рух вперед увімкнено" @@ -945,7 +938,7 @@ msgstr "Кінорежим увімкнено" #: src/client/game.cpp msgid "Client side scripting is disabled" -msgstr "" +msgstr "Клієнтосторонні скрипти на клієнті вимкнено" #: src/client/game.cpp msgid "Connecting to server..." @@ -1534,7 +1527,7 @@ msgid "Register and Join" msgstr "Зареєструватися і увійти" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1542,11 +1535,11 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Ви збираєтеся вперше підключитися до сервера %1$s з іменем %2$s. Якщо ви " -"продовжите, буде створено новий ігровий профіль на даному сервері з вашим " -"іменем/паролем.\n" -"Будь-ласка введіть повторно ваш пароль і натисніть \"Зареєструватися і увійти" -"\", або \"Скасувати\", якщо ви проти." +"Ви збираєтеся вперше підключитися до сервера з іменем \"%s\". \n" +"Якщо ви продовжите, буде створено новий ігровий профіль на даному сервері з " +"вашим іменем/паролем.\n" +"Будь-ласка введіть повторно ваш пароль і натисніть \"Зареєструватися і " +"увійти\", або \"Скасувати\", якщо ви проти." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1691,9 +1684,8 @@ msgid "Toggle noclip" msgstr "Прохід крізь стіни" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Увімкнути чат (журнал)" +msgstr "Увімкнути висотний рух" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1740,6 +1732,9 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android) Закріплює позицію віртуального джойстика.\n" +"Якщо вимкнено, віртуальний джойстик буде відцентровано до першого місця " +"дотику." #: src/settings_translation_file.cpp msgid "" @@ -1747,6 +1742,10 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" +"(Android) Використовувати віртуальний джойстик для активації кнопки \"aux\"." +"\n" +"Якщо увімкнено, віртуальний джойстик також натисне \"aux\", коли поза межами " +"головного кола." #: src/settings_translation_file.cpp msgid "" From ffcdf741fc84256cb3d700af082c056e47d0df3f Mon Sep 17 00:00:00 2001 From: abidin toumi Date: Tue, 26 Nov 2019 19:04:41 +0000 Subject: [PATCH 073/624] Translated using Weblate (Arabic) Currently translated at 5.7% (73 of 1274 strings) --- po/ar/minetest.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/ar/minetest.po b/po/ar/minetest.po index be7552dd3..44d3abba4 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-23 18:04+0000\n" +"PO-Revision-Date: 2019-11-27 20:04+0000\n" "Last-Translator: abidin toumi \n" "Language-Team: Arabic \n" @@ -723,11 +723,11 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "" +msgstr "الشاشة:" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "" +msgstr "حفظ حجم الشاشة تلقائيا" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" From fa2978b3b92eef0fbd8ac4bd093fa22ea4faf9b7 Mon Sep 17 00:00:00 2001 From: Matej Mlinar Date: Thu, 28 Nov 2019 21:33:49 +0000 Subject: [PATCH 074/624] Translated using Weblate (Slovenian) Currently translated at 43.9% (559 of 1274 strings) --- po/sl/minetest.po | 85 ++++++++++++++++++++++++----------------------- 1 file changed, 43 insertions(+), 42 deletions(-) diff --git a/po/sl/minetest.po b/po/sl/minetest.po index d48ee9167..1e1591061 100644 --- a/po/sl/minetest.po +++ b/po/sl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Slovenian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2019-11-29 23:04+0000\n" +"Last-Translator: Matej Mlinar \n" "Language-Team: Slovenian \n" "Language: sl\n" @@ -24,9 +24,8 @@ msgid "You died" msgstr "Umrl si" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Prišlo je do napake v Lua kodi, kot prilagoditvi:" +msgstr "Prišlo je do napake v Lua skripti:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -786,9 +785,8 @@ msgid "Waving Leaves" msgstr "Pokaži premikanje listov" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Pokaži premikanje listov" +msgstr "Valovanje tekočin" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1107,7 +1105,7 @@ msgstr "KiB/s" #: src/client/game.cpp msgid "Media..." -msgstr "" +msgstr "Medij..." #: src/client/game.cpp msgid "MiB/s" @@ -1299,7 +1297,7 @@ msgstr "Konec" #: src/client/keycode.cpp msgid "Erase EOF" -msgstr "" +msgstr "Izbriši EOF" #: src/client/keycode.cpp msgid "Execute" @@ -1538,7 +1536,7 @@ msgid "Register and Join" msgstr "Registriraj in prijavi se" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1546,10 +1544,11 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Prvič se boste prijavili v strežnik v %1$s z imenom \"%2$s\". Če " -"nadaljujete, bo na tem strežniku ustvarjen nov račun z vašimi referencami.\n" -"Prosimo, znova vnesite svoje geslo in kliknite \"Registriraj in prijavi se" -"\", da potrdite ustvarjanje računa ali kliknite \"Prekliči\" za prekinitev." +"Prvič se boste prijavili v strežnik z imenom \"%s\".\n" +"Če nadaljujete, bo na tem strežniku ustvarjen nov račun z vašimi prijavnimi " +"podatki.\n" +"Prosimo, znova vnesite svoje geslo in kliknite \"Registriraj in prijavi se\"" +", da potrdite ustvarjanje računa ali kliknite \"Prekliči\" za prekinitev." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1780,7 +1779,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "2D šum, ki nadzoruje obliko/velikost gorskih verig." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." @@ -1808,11 +1807,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D clouds" -msgstr "" +msgstr "3D oblaki" #: src/settings_translation_file.cpp msgid "3D mode" -msgstr "" +msgstr "3D način" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2405,7 +2404,7 @@ msgstr "Poškodbe" #: src/settings_translation_file.cpp msgid "Darkness sharpness" -msgstr "" +msgstr "Ostrina teme" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2433,7 +2432,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Default acceleration" -msgstr "" +msgstr "Privzet pospešek" #: src/settings_translation_file.cpp msgid "Default game" @@ -2457,7 +2456,7 @@ msgstr "Privzeti privilegiji" #: src/settings_translation_file.cpp msgid "Default report format" -msgstr "" +msgstr "Privzeta oblika poročanja" #: src/settings_translation_file.cpp msgid "" @@ -2513,23 +2512,20 @@ msgid "Defines the base ground level." msgstr "Določa osnovno podlago." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Določa osnovno podlago." +msgstr "Določa globino rečne struge." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "Določa maksimalno razdaljo prenosa igralcev v blokih (0 = neomejeno)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Določa obsežno strukturo rečnega kanala." +msgstr "Določa širino rečne struge." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Določa območja, kjer imajo drevesa jabolka." +msgstr "Določa širino rečne doline." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2595,7 +2591,7 @@ msgstr "Kopanje delcev" #: src/settings_translation_file.cpp msgid "Disable anticheat" -msgstr "" +msgstr "Onemogoči preprečevanje goljufanja" #: src/settings_translation_file.cpp msgid "Disallow empty passwords" @@ -2630,9 +2626,8 @@ msgid "Dungeon minimum Y" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Šum votline" +msgstr "Šum ječe" #: src/settings_translation_file.cpp msgid "" @@ -2667,7 +2662,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Enable players getting damage and dying." -msgstr "Omogoči da igralci dobijo poškodbo in umrejo." +msgstr "Omogoči, da igralci dobijo poškodbo in umrejo." #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." @@ -2774,7 +2769,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "FSAA" -msgstr "" +msgstr "FSAA" #: src/settings_translation_file.cpp msgid "Factor noise" @@ -2802,7 +2797,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Fast key" -msgstr "Tipka za hitro" +msgstr "Tipka za hitro premikanje" #: src/settings_translation_file.cpp msgid "Fast mode acceleration" @@ -2927,12 +2922,14 @@ msgid "Fog toggle key" msgstr "Tipka za preklop na meglo" #: src/settings_translation_file.cpp +#, fuzzy msgid "Font path" -msgstr "" +msgstr "Pot pisave" #: src/settings_translation_file.cpp +#, fuzzy msgid "Font shadow" -msgstr "" +msgstr "Senca pisave" #: src/settings_translation_file.cpp msgid "Font shadow alpha" @@ -2947,8 +2944,9 @@ msgid "Font shadow offset, if 0 then shadow will not be drawn." msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Font size" -msgstr "" +msgstr "Velikost pisave" #: src/settings_translation_file.cpp msgid "" @@ -2958,40 +2956,43 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Format of screenshots." -msgstr "" +msgstr "Oblika posnetkov zaslona." #: src/settings_translation_file.cpp +#, fuzzy msgid "Formspec Default Background Color" -msgstr "" +msgstr "Formspec privzeta barva ozadja" #: src/settings_translation_file.cpp msgid "Formspec Default Background Opacity" -msgstr "" +msgstr "Formspec privzeta neprosojnost ozadja" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" -msgstr "" +msgstr "Formspec barva ozadja v celozaslonskem načinu" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" -msgstr "" +msgstr "Formspec neprosojnost ozadja v celozaslonskem načinu" #: src/settings_translation_file.cpp msgid "Formspec default background color (R,G,B)." -msgstr "" +msgstr "Formspec privzeta barva ozadja (R,G,B)." #: src/settings_translation_file.cpp msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" +msgstr "Formspec privzeta neprosojnost ozadja (med 0 in 255)." #: src/settings_translation_file.cpp msgid "Formspec full-screen background color (R,G,B)." -msgstr "" +msgstr "Formspec barva ozadja v celozaslonskem načinu (R,G,B)." #: src/settings_translation_file.cpp msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" +"Formspec neprosojnost ozadja v celozaslonskem načinu (between 0 and 255)." #: src/settings_translation_file.cpp msgid "Forward key" From 699e1d4b77b04a11b78833a52dddc1f61ca43839 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Sun, 1 Dec 2019 02:54:47 +0000 Subject: [PATCH 075/624] Translated using Weblate (Russian) Currently translated at 100.0% (1274 of 1274 strings) --- po/ru/minetest.po | 1007 +++++++++++++++++++++------------------------ 1 file changed, 467 insertions(+), 540 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index b4e9e3d55..91200f904 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-25 09:46+0000\n" +"PO-Revision-Date: 2019-12-02 20:16+0000\n" "Last-Translator: Andrei Stepanov \n" "Language-Team: Russian \n" @@ -308,11 +308,11 @@ msgstr "2D шум" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "В главное меню" +msgstr "< Назад к странице настроек" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" -msgstr "Выбрать" +msgstr "Обзор" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" @@ -1529,10 +1529,10 @@ msgstr "Пароли не совпадают!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "Подключиться" +msgstr "Зарегистрироваться и подключиться" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1540,12 +1540,12 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Вы собираетесь впервые присоединиться к серверу на «%1$s» под именем «%2$s». " +"Вы собираетесь впервые присоединиться к серверу под именем «%s».\n" "Если вы продолжите, на этом сервере будет создан новый аккаунт с вашими " "учётными данными.\n" -"Пожалуйста, введите пароль ещё раз и нажмите «Подключиться», чтобы " -"подтвердить создание аккаунта, либо нажмите «Отмена», чтобы прервать " -"операцию." +"Пожалуйста, введите пароль ещё раз и нажмите «Зарегистрироваться и " +"подключиться», чтобы подтвердить создание аккаунта, либо нажмите «Отмена», " +"чтобы прервать операцию." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1795,8 +1795,8 @@ msgid "" "0 = parallax occlusion with slope information (faster).\n" "1 = relief mapping (slower, more accurate)." msgstr "" -"0 = Параллакс с информацией о наклоне (Быстрее).\n" -"1 = Рельефный маппинг (Медленнее, качественнее)." +"0 = Параллакс окклюзии с информацией о склоне (быстро).\n" +"1 = Рельефный маппинг (медленно, но качественно)." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." @@ -1828,9 +1828,8 @@ msgstr "" "хребтов." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "Двухмерный шум, контролирующий форму и размер холмов." +msgstr "2D-шум, определяющие расположение пойм рек и их русел." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -1867,7 +1866,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D-шум, определяющий количество подземелий в куске карты." #: src/settings_translation_file.cpp msgid "" @@ -1923,7 +1922,7 @@ msgstr "Ускорение в воздухе" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Ускорение свободного падения в узлах в секунду." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -1981,7 +1980,6 @@ msgid "Alters how mountain-type floatlands taper above and below midpoint." msgstr "Управляет сужением островов горного типа ниже средней точки." #: src/settings_translation_file.cpp -#, fuzzy msgid "Altitude chill" msgstr "Высота нивального пояса" @@ -2042,7 +2040,6 @@ msgid "Ask to reconnect after crash" msgstr "Запрашивать переподключение после аварийного завершения" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "At this distance the server will aggressively optimize which blocks are sent " "to\n" @@ -2056,30 +2053,27 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" -"На этом расстоянии сервер будет агрессивно оптимизировать то, какие " -"фрагменты будут\n" -"отправлены клиентам. Малые значения, возможно, увеличат производительность " -"за счет\n" -"видимых глюков отрисовки (некоторые фрагменты не будут отрисовываться под " -"водой\n" -"и в пещерах, а иногда и на суше). Установка этого значения больше, чем " -"max_block_send_distance\n" -"отключает оптимизацию. Указывается в фрагментах (16 блоков)" +"На этом расстоянии сервер будет агрессивно оптимизировать то, какие блоки " +"будут\n" +"отправлены клиентам.\n" +"Малые значения могут увеличить производительность за счёт заметных\n" +"проблем отрисовки (некоторые фрагменты не будут отрисовываться под водой\n" +"и в пещерах, а иногда и на суше).\n" +"Установка этого значения больше, чем max_block_send_distance\n" +"отключит эту оптимизацию.\n" +"Указывается в блоках карты (16 блоков)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Automatic forward key" -msgstr "Клавиша вперёд" +msgstr "Клавиша авто-вперёд" #: src/settings_translation_file.cpp -#, fuzzy msgid "Automatically jump up single-node obstacles." -msgstr "Автоматически запрыгивать на препятствия высотой в 1 метр." +msgstr "Автоматически запрыгивать на одноблочные препятствия." #: src/settings_translation_file.cpp -#, fuzzy msgid "Automatically report to the serverlist." -msgstr "Автоматически добавлять в список серверов." +msgstr "Автоматически анонсировать в список серверов." #: src/settings_translation_file.cpp msgid "Autosave screen size" @@ -2094,14 +2088,12 @@ msgid "Backward key" msgstr "Клавиша назад" #: src/settings_translation_file.cpp -#, fuzzy msgid "Base ground level" msgstr "Уровень земли" #: src/settings_translation_file.cpp -#, fuzzy msgid "Base terrain height." -msgstr "Высота основной местности" +msgstr "Высота основной местности." #: src/settings_translation_file.cpp msgid "Basic" @@ -2140,7 +2132,6 @@ msgid "Bits per pixel (aka color depth) in fullscreen mode." msgstr "Бит на пиксель (глубина цвета) в полноэкранном режиме." #: src/settings_translation_file.cpp -#, fuzzy msgid "Block send optimize distance" msgstr "Оптимизированное расстояние отправки блока" @@ -2157,17 +2148,17 @@ msgid "Bumpmapping" msgstr "Бампмаппинг" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" "Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Расстояние между камерой и плоскостью, от 0 до 0.5 размера узла. Большинству " -"пользователей не нужно будет изменить этот параметр. Его увеличение может " -"уменьшить количество артефактов на слабых графических процессорах.\n" -"По умолчанию = 0.1; 0.25 будет хорошим значением для слабых планшетов." +"Расстояние между камерой и плоскостью отсечения в узлах от 0 до 0.5.\n" +"Большинству пользователей не потребуется менять этот параметр.\n" +"Его увеличение может уменьшить количество артефактов на слабых графических " +"процессорах.\n" +"0.1 — по умолчанию; 0.25 — хорошее значение для слабых планшетов." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2222,16 +2213,14 @@ msgid "Cavern threshold" msgstr "Порог пещеры" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cavern upper limit" -msgstr "Предел пещеры" +msgstr "Верхнее ограничение пещер" #: src/settings_translation_file.cpp msgid "Center of light curve mid-boost." msgstr "Центр среднего подъёма кривой света." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Changes the main menu UI:\n" "- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " @@ -2241,11 +2230,10 @@ msgid "" "necessary for smaller screens." msgstr "" "Изменение интерфейса в главном меню:\n" -"- full: выбор миров для одиночной или сетевой игры, список чужих серверов " -"в отдельной вкладке.\n" -"- simple: один мир для одиночной игры в том же меню, где и список чужих " -"серверов; может быть полезно для небольших экранов.\n" -"По умолчанию: simple для Android, full для всех остальных." +"- Full: несколько однопользовательских миров, выбор игры, выбор пакета " +"текстур и т. д.\n" +"- Simple: один однопользовательский мир без выбора игр или текстур. Может " +"быть полезно для небольших экранов." #: src/settings_translation_file.cpp msgid "Chat key" @@ -2256,9 +2244,8 @@ msgid "Chat message count limit" msgstr "Максимальное количество сообщений в чате" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Максимальная длина сообщения в чате" +msgstr "Формат сообщений в чате" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2278,7 +2265,7 @@ msgstr "Команды в чате" #: src/settings_translation_file.cpp msgid "Chunk size" -msgstr "Размер чанка" +msgstr "Размер куска" #: src/settings_translation_file.cpp msgid "Cinematic mode" @@ -2305,9 +2292,8 @@ msgid "Client modding" msgstr "Моддинг клиента" #: src/settings_translation_file.cpp -#, fuzzy msgid "Client side modding restrictions" -msgstr "Моддинг клиента" +msgstr "Ограничения моддинга на стороне клиента" #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" @@ -2417,27 +2403,26 @@ msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" -"Непрерывное движение вперёд, переключаемое клавишей «автоматический бег».\n" -"Нажмите автоматический бег ещё раз либо движение назад, чтобы выключить." +"Непрерывное движение вперёд, переключаемое клавишей «автобег».\n" +"Нажмите автобег ещё раз либо движение назад, чтобы выключить." #: src/settings_translation_file.cpp msgid "Controls" msgstr "Управление" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Controls length of day/night cycle.\n" "Examples:\n" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" -"Задает длину цикла дня/ночи.\n" -"Примеры: 72 = 20 минут, 360 = 4 минуты, 1 = 24 часа, 0 = время суток не " -"меняется." +"Задает скорость смены времени суток.\n" +"Примеры:\n" +"72 = 20 минут, 360 = 4 минуты, 1 = 24 часа, 0 = статичное время суток." #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Контролирует скорость погружения в жидкости." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2448,13 +2433,12 @@ msgid "Controls steepness/height of hills." msgstr "Регулирует крутизну и высоту холмов." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Controls the density of mountain-type floatlands.\n" "Is a noise offset added to the 'mgv7_np_mountain' noise value." msgstr "" "Контролирует плотность горной местности парящих островов.\n" -"Является смещением, добавляемым к значению шума 'np_mountain'." +"Является смещением, добавляемым к значению шума 'mgv7_np_mountain'." #: src/settings_translation_file.cpp msgid "Controls width of tunnels, a smaller value creates wider tunnels." @@ -2494,9 +2478,8 @@ msgid "Damage" msgstr "Урон" #: src/settings_translation_file.cpp -#, fuzzy msgid "Darkness sharpness" -msgstr "Крутизна озёр" +msgstr "Резкость темноты" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2516,7 +2499,7 @@ msgstr "Клавиша уменьшения громкости" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." -msgstr "" +msgstr "Уменьшите значение, чтобы увеличить сопротивление жидкости движению." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2575,14 +2558,14 @@ msgid "Defines areas with sandy beaches." msgstr "Определяет области с песчаными пляжами." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "Определяет области возвышений поверхности и влияет на крутизну скал." +msgstr "" +"Определяет распределение поверхности на возвышенностях и влияет на крутизну " +"скал." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines distribution of higher terrain." -msgstr "Определяет области 'terrain_higher' (местность на вершинах утёсов)." +msgstr "Определяет распределение поверхности на возвышенностях." #: src/settings_translation_file.cpp msgid "Defines full size of caverns, smaller values create larger caverns." @@ -2606,14 +2589,12 @@ msgstr "" "Более высокое значение приводит к более гладким картам нормалей." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the base ground level." -msgstr "Определяет области и плотность деревьев." +msgstr "Определяет базовый уровень земли." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Определяет области и плотность деревьев." +msgstr "Определяет глубину русла реки." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2622,14 +2603,12 @@ msgstr "" "неограниченное)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Определяет крупномасштабную структуру каналов рек." +msgstr "Определяет ширину русла реки." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Определяет области, где у деревьев есть яблоки." +msgstr "Определяет ширину поймы реки." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2662,11 +2641,13 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" +"Устарело, определяет и располагает жидкости в пещерах с использованием " +"определений биома.\n" +"Y верхней границы лавы в больших пещерах." #: src/settings_translation_file.cpp -#, fuzzy msgid "Depth below which you'll find giant caverns." -msgstr "Глубина, ниже которой встречаются крупные пещеры." +msgstr "Глубина, ниже которой встречаются гигантские пещеры." #: src/settings_translation_file.cpp msgid "Depth below which you'll find large caves." @@ -2685,13 +2666,12 @@ msgid "Desert noise threshold" msgstr "Порог шума пустынь" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" "Пустыни появляются, когда np_biome превышает это значение.\n" -"Это игнорируется, когда включена новая система биомов." +"Игнорируется, когда включён флаг 'snowbiomes'." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2726,9 +2706,8 @@ msgid "Drop item key" msgstr "Кнопка выброса блока" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dump the mapgen debug information." -msgstr "Дамп отладочной информации генератора мира." +msgstr "Дамп отладочных данных генератора карты." #: src/settings_translation_file.cpp msgid "Dungeon maximum Y" @@ -2739,9 +2718,8 @@ msgid "Dungeon minimum Y" msgstr "Минимальная Y подземелья" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Минимальная Y подземелья" +msgstr "Шум подземелья" #: src/settings_translation_file.cpp msgid "" @@ -2764,14 +2742,12 @@ msgid "Enable creative mode for new created maps." msgstr "Включить творческий режим для вновь созданных карт." #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable joysticks" msgstr "Включить джойстики" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable mod channels support." -msgstr "Включить защиту модов" +msgstr "Включить поддержку каналов модов." #: src/settings_translation_file.cpp msgid "Enable mod security" @@ -2841,13 +2817,11 @@ msgstr "" "Например: 0 отключает покачивание, 1.0 для обычного, 2.0 для двойного." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enable/disable running an IPv6 server.\n" "Ignored if bind_address is set." msgstr "" -"Включить/отключить запуск IPv6-сервера. Сервер IPv6 может быть\n" -"ограничен IPv6-клиентами в зависимости от конфигурации системы.\n" +"Включить/отключить запуск IPv6-сервера.\n" "Игнорируется, если задан bind_address." #: src/settings_translation_file.cpp @@ -2951,7 +2925,7 @@ msgstr "Ускорение быстрого перемещения" #: src/settings_translation_file.cpp msgid "Fast mode speed" -msgstr "Скорость быстрой ходьбы" +msgstr "Скорость быстрого перемещения" #: src/settings_translation_file.cpp msgid "Fast movement" @@ -2974,17 +2948,15 @@ msgid "Field of view in degrees." msgstr "Поле зрения в градусах." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "File in client/serverlist/ that contains your favorite servers displayed in " "the\n" "Multiplayer Tab." msgstr "" -"Файл в директории client/serverlist/, содержащий ваши избранные серверы, " -"показываемые на вкладке Мультиплеер." +"Файл в директории client/serverlist/, содержащий ваши избранные серверы\n" +"из вкладки Мультиплеер." #: src/settings_translation_file.cpp -#, fuzzy msgid "Filler depth" msgstr "Глубина наполнителя" @@ -2997,7 +2969,6 @@ msgid "Filmic tone mapping" msgstr "Кинематографическое тональное отображение" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Filtered textures can blend RGB values with fully-transparent neighbors,\n" "which PNG optimizers usually discard, sometimes resulting in a dark or\n" @@ -3014,12 +2985,10 @@ msgid "Filtering" msgstr "Фильтрация" #: src/settings_translation_file.cpp -#, fuzzy msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "Первый из двух 3D-шумов, которые вместе определяют туннели." +msgstr "Первый из четырёх 2D-шумов, определяющий диапазон высоты холмов и гор." #: src/settings_translation_file.cpp -#, fuzzy msgid "First of two 3D noises that together define tunnels." msgstr "Первый из двух 3D-шумов, которые вместе определяют туннели." @@ -3048,9 +3017,8 @@ msgid "Floatland mountain density" msgstr "Плотность гор на парящих островах" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland mountain exponent" -msgstr "Плотность гор на парящих островах" +msgstr "Экспонента гор на парящих островах" #: src/settings_translation_file.cpp msgid "Floatland mountain height" @@ -3106,6 +3074,9 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Формат сообщений игрока в чате. В качестве заполнителей доступны следующие " +"строки:\n" +"@name, @message, @timestamp (необязательно)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3113,48 +3084,44 @@ msgstr "Формат скриншотов." #: src/settings_translation_file.cpp msgid "Formspec Default Background Color" -msgstr "Стандартный цвет фона игровой консоли" +msgstr "Стандартный цвет фона формы" #: src/settings_translation_file.cpp msgid "Formspec Default Background Opacity" -msgstr "Стандартная непрозрачность фона игровой консоли" +msgstr "Стандартная непрозрачность фона формы" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" -msgstr "Цвет фона игровой консоли в полноэкранном режиме" +msgstr "Цвет фона формы в полноэкранном режиме" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" -msgstr "Непрозрачность фона игровой консоли в полноэкранном режиме" +msgstr "Непрозрачность фона формы в полноэкранном режиме" #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background color (R,G,B)." -msgstr "Цвет фона внутриигровой консоли (R, G, B)." +msgstr "Стандартный цвет фона формы (R,G,B)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background opacity (between 0 and 255)." -msgstr "Прозрачность фона внутриигровой консоли (непрозрачность от 0 до 255)." +msgstr "Стандартная непрозрачность фона формы (от 0 до 255)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background color (R,G,B)." -msgstr "Цвет фона внутриигровой консоли (R, G, B)." +msgstr "Цвет фона формы в полноэкранном режиме (R,G,B)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "Прозрачность фона внутриигровой консоли (непрозрачность от 0 до 255)." +msgstr "Непрозрачность фона формы в полноэкранном режиме (от 0 до 255)." #: src/settings_translation_file.cpp msgid "Forward key" msgstr "Клавиша вперёд" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "Первый из двух 3D-шумов, которые вместе определяют туннели." +msgstr "" +"Четвертый из четырех 2D-шумов, определяющий диапазон высоты холмов и гор." #: src/settings_translation_file.cpp msgid "Fractal type" @@ -3191,6 +3158,11 @@ msgid "" "to maintain active objects up to this distance in the direction the\n" "player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" +"Расстояние в блоках, на котором клиенты распознают объекты (16 узлов).\n" +"\n" +"Если указать значение более active_block_range, то сервер будет запоминать\n" +"движущиеся объекты на этом расстоянии в направлении взгляда игрока.\n" +"(Это поможет избежать внезапного исчезновения мобов из поля зрения)" #: src/settings_translation_file.cpp msgid "Full screen" @@ -3229,17 +3201,15 @@ msgid "Global callbacks" msgstr "Глобальные обратные вызовы" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Global map generation attributes.\n" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" "Глобальные атрибуты генерации карт.\n" -"В генераторе карты v6 флаг 'decorations' не влияет на деревья и траву в " -"джунглях, в остальных генераторах этот флаг контролирует все декорации.\n" -"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" -"Приставка 'no' отключает флаг." +"В генераторе карт v6 флаг 'decorations' не влияет на деревья и траву в " +"джунглях,\n" +"в остальных генераторах этот флаг контролирует все декорации." #: src/settings_translation_file.cpp msgid "Gradient of light curve at maximum light level." @@ -3262,9 +3232,8 @@ msgid "Ground level" msgstr "Уровень земли" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground noise" -msgstr "Шум грязи" +msgstr "Шум грунта" #: src/settings_translation_file.cpp msgid "HTTP mods" @@ -3339,24 +3308,20 @@ msgid "Hill threshold" msgstr "Порог холмов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness1 noise" -msgstr "Шум крутизны" +msgstr "Шум холмистости 1" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness2 noise" -msgstr "Шум крутизны" +msgstr "Шум холмистости 2" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness3 noise" -msgstr "Шум крутизны" +msgstr "Шум холмистости 3" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness4 noise" -msgstr "Шум крутизны" +msgstr "Шум холмистости 4" #: src/settings_translation_file.cpp msgid "Homepage of server, to be displayed in the serverlist." @@ -3367,191 +3332,164 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Горизонтальное ускорение в воздухе при прыжке или падении\n" +"в узлах в секунду." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Горизонтальное и вертикальное ускорение в режиме \n" +"быстрого перемещения в узлах в секунду." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Горизонтальное и вертикальное ускорение на земле или при лазании\n" +"в узлах за секунду." #: src/settings_translation_file.cpp msgid "Hotbar next key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Следующий предмет на горячей панели" #: src/settings_translation_file.cpp msgid "Hotbar previous key" -msgstr "Предыдущий предмет в быстрой панели" +msgstr "Предыдущий предмет на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 1 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 1 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 10 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 10 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 11 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 11 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 12 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 12 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 13 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 13 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 14 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 14 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 15 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 15 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 16 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 16 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 17 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 17 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 18 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 18 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 19 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 19 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 2 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 2 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 20 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 20 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 21 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 21 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 22 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 22 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 23 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 23 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 24 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 24 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 25 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 25 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 26 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 26 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 27 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 27 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 28 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 28 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 29 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 29 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 3 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 3 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 30 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 30 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 31 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 31 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 32 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 32 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 4 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 4 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 5 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 5 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 6 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 6 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 7 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 7 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 8 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 8 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 9 key" -msgstr "Следующий предмет в быстрой панели" +msgstr "Предмет 9 на горячей панели" #: src/settings_translation_file.cpp -#, fuzzy msgid "How deep to make rivers." -msgstr "Глубина рек" +msgstr "Как глубоко делать реки." #: src/settings_translation_file.cpp msgid "" @@ -3562,9 +3500,8 @@ msgstr "" "Высокие значения более плавные, но используют больше RAM." #: src/settings_translation_file.cpp -#, fuzzy msgid "How wide to make rivers." -msgstr "Насколько широкими делать реки" +msgstr "Насколько широкими делать реки." #: src/settings_translation_file.cpp msgid "Humidity blend noise" @@ -3604,8 +3541,8 @@ msgid "" "are\n" "enabled." msgstr "" -"Если выключено, кнопка «Использовать» используется для быстрого полёта, если " -"одновременно включены быстрый режим и режим полёта." +"Если отключено, кнопка «Использовать» активирует быстрый полёт, если " +"одновременно включены режим быстрого перемещения и режим полёта." #: src/settings_translation_file.cpp msgid "" @@ -3687,6 +3624,8 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" +"Если ограничение CSM для диапазона узлов включено, вызовы\n" +"get_node ограничиваются на это расстояние от игрока до узла." #: src/settings_translation_file.cpp msgid "" @@ -3695,6 +3634,10 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Если размер файла debug.txt при открытии превысит количество мегабайтов,\n" +"указанных в этой настройке, файл будет перемещён в debug.txt.1,\n" +"а старый debug.txt.1 будет удалён.\n" +"debug.txt перемещается только тогда, когда это значение положительное." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3726,7 +3669,7 @@ msgstr "Клавиша увеличения громкости" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Начальная вертикальная скорость при прыжках в узлах в секунду." #: src/settings_translation_file.cpp msgid "" @@ -3805,6 +3748,10 @@ msgid "" "increases processing load.\n" "At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" +"Количество итераций рекурсивной функции.\n" +"Большее количество итераций улучшает детализацию фрактала,\n" +"но увеличивает вычислительную нагрузку.\n" +"При 20 итерациях нагрузка сравнима с картогенератором V7." #: src/settings_translation_file.cpp msgid "Joystick ID" @@ -3819,12 +3766,10 @@ msgid "Joystick frustum sensitivity" msgstr "Чувствительность джойстика" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick type" msgstr "Тип джойстика" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "W component of hypercomplex constant.\n" @@ -3832,45 +3777,46 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" -"Только множество Жюлиа: Компонент W гиперкомплексной константы, определяющий " -"форму фрактала Жюлиа.\n" +"Только для множества Жюлиа:\n" +"компонент W гиперкомплексной константы,\n" +"определяющий форму фрактала Жюлиа.\n" "Не влияет на 3D-фракталы.\n" "Диапазон примерно от -2 до 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "X component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Только множество Жюлиа: Компонент X гиперкомплексной константы, определяющей " -"форму фрактала.\n" +"Только для множества Жюлиа:\n" +"компонент Х гиперкомплексной константы,\n" +"определяющий форму фрактала Жюлиа.\n" "Диапазон примерно от -2 до 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "Y component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Только множество Жюлиа: Компонент Y гиперкомплексной константы, определяющей " -"форму фрактала.\n" +"Только для множества Жюлиа:\n" +"компонент Y гиперкомплексной константы,\n" +"определяющий форму фрактала Жюлиа.\n" "Диапазон примерно от -2 до 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "Z component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Только множество Жюлиа: Компонент Z гиперкомплексной константы, определяющей " -"форму фрактала.\n" +"Только для множества Жюлиа:\n" +"компонент Z гиперкомплексной константы,\n" +"определяющий форму фрактала Жюлиа.\n" "Диапазон примерно от -2 до 2." #: src/settings_translation_file.cpp @@ -3968,7 +3914,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for moving the player backward.\n" "Will also disable autoforward, when active.\n" @@ -3976,8 +3921,9 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша движения назад.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"При активации также отключает автобег.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4060,290 +4006,264 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 11 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 12th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 12 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 13th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 13 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 14th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 14 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 15th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 15 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 16th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 16 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 17th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 17 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 18th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 18 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 19th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 19 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 20th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 20 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 21st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 21 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 22nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 22 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 23rd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 23 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 24th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 24 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 25th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 25 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 26th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 26 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 27th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 27 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 28th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 28 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 29th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 29 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 30th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 30 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 31st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 31 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 32nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 32 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the eighth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 8 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fifth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 5 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the first hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 1 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fourth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора предыдущего предмета в быстрой панели.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 4 на горячей панели.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4351,20 +4271,19 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора следующего предмета на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the ninth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 9 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4372,64 +4291,59 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора предыдущего предмета в быстрой панели.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предыдущего предмета на горячей панели.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the second hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 2 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the seventh hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 7 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the sixth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 6 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the tenth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 10 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the third hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша выбора следующего предмета в быстрой панели.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша выбора предмета 3 на горячей панели.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4466,15 +4380,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling autoforward.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша переключения режима постоянной ходьбы.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша переключения автобега.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4503,8 +4416,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша переключения режима быстрого перемещения.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4547,15 +4460,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of chat.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша переключения отображения чата.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4568,15 +4480,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of fog.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша переключения отображения тумана.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4656,9 +4567,8 @@ msgid "Large chat console key" msgstr "Кнопка вызова консоли" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lava depth" -msgstr "Глубина больших пещер" +msgstr "Глубина лавы" #: src/settings_translation_file.cpp msgid "Leaves style" @@ -4682,28 +4592,25 @@ msgid "Left key" msgstr "Кнопка выхода" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of a server tick and the interval at which objects are generally " "updated over\n" "network." msgstr "" -"Длина серверного тика и интервал, на котором объекты, как правило, " +"Длина серверного тика и интервал, на котором объекты обычно\n" "обновляются по сети." #: src/settings_translation_file.cpp -#, fuzzy msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "Время между циклами выполнения модификаторов активных блоков" +msgstr "Время между циклами выполнения модификаторов активных блоков (ABM)" #: src/settings_translation_file.cpp msgid "Length of time between NodeTimer execution cycles" msgstr "Время между циклами выполнения таймеров блоков" #: src/settings_translation_file.cpp -#, fuzzy msgid "Length of time between active block management cycles" -msgstr "Время между циклами управления активными блоками" +msgstr "Время между циклами управления активными блоками (ABM)" #: src/settings_translation_file.cpp msgid "" @@ -4756,7 +4663,8 @@ msgid "" "Value is stored per-world." msgstr "" "Предел генерации карты, в блоках, во всех шести направлениях от (0, 0, 0).\n" -"Генерируются только чанки, которые умещаются в заданном пределе полностью.\n" +"Генерируются только куски карты, которые умещаются в заданном пределе " +"полностью.\n" "Значение сохраняется отдельно для каждого мира." #: src/settings_translation_file.cpp @@ -4790,9 +4698,8 @@ msgid "Liquid queue purge time" msgstr "Время очистки очереди жидкостей" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Скорость погружения в жидкость" +msgstr "Стекание жидкости" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -4864,46 +4771,46 @@ msgid "" "to become shallower and occasionally dry.\n" "'altitude_dry': Reduces humidity with altitude." msgstr "" +"Атрибуты генерации карты для генератора долин.\n" +"«altitude_chill»: уменьшает теплоту с ростом высоты.\n" +"«humid_rivers»: увеличивает влажность по обе стороны рек.\n" +"«vary_river_depth»: если включено, то низкая влажность и высокая\n" +"температура влияют на уровень воды в реках.\n" +"«altitude_dry»: уменьшает влажность с ростом высоты." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen flat.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Атрибуты генерации карт для Mapgen v7.\n" -"«хребты» включают реки." +"Атрибуты генерации для генератора плоскости.\n" +"«terrain» включает генерацию не-фрактального рельефа:\n" +"океаны, острова и подземелья." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" -"Атрибуты генерации карты, относящиеся к генератору плоской карты.\n" -"Случайные озёра и холмы могут быть добавлены в плоский мир.\n" -"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" -"Флаги с приставкой 'no' явно отключают их." +"Атрибуты генерации карты для генератора плоскости.\n" +"Иногда озера и холмы могут добавляться в плоский мир." #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen v5." msgstr "Атрибуты генерации карт для Mapgen v5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" -"Атрибуты генерации карты, относящиеся к генератору карты версии 6.\n" -"Флаг 'snowbiomes' включает новую систему биомов.\n" -"Когда включена новая система биомов, джунгли включаются автоматически\n" -"и флаг 'jungles' игнорируется.\n" -"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" -"Флаги с приставкой 'no' явно отключают их." +"Атрибуты генерации карты для генератора карты v6.\n" +"Параметр «snowbiomes» (снежные биомы) включает новую систему с 5 биомами.\n" +"Если «snowbiomes» включён, то автоматически задействуются джунгли,\n" +"а флаг «jungles» игнорируется." #: src/settings_translation_file.cpp msgid "" @@ -4930,82 +4837,68 @@ msgid "Mapblock mesh generation delay" msgstr "Задержка в генерации мешей блоков" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "Размер кэша блоков в генераторе мешей в МБ" +msgstr "Размер кэша блоков карты в генераторе мешей в МБ" #: src/settings_translation_file.cpp msgid "Mapblock unload timeout" msgstr "Таймаут выгрузки блоков" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian" -msgstr "Генератор фрактальной карты" +msgstr "Генератор карты Карпаты" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian specific flags" -msgstr "Флаги генератора плоской карты" +msgstr "Специальные флаги генератора Карпаты" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat" -msgstr "Генератор плоской карты" +msgstr "Картогенератор плоскости" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat specific flags" -msgstr "Флаги генератора плоской карты" +msgstr "Специальные флаги картогенератора плоскости" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal" -msgstr "Генератор фрактальной карты" +msgstr "Картогенератор Фрактал" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Флаги генератора плоской карты" +msgstr "Специальные флаги картогенератора Фрактал" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5" -msgstr "Генератор карты версии 5" +msgstr "Картогенератор V5" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5 specific flags" -msgstr "Флаги генератора карты версии 5" +msgstr "Специальные флаги картогенератора V5" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6" -msgstr "Генератор карты версии 6" +msgstr "Картогенератор V6" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6 specific flags" -msgstr "Флаги генератора карты версии 6" +msgstr "Специальные флаги картогенератора V6" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7" -msgstr "Генератор карты версии 7" +msgstr "Картогенератора V7" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7 specific flags" -msgstr "Флаги генератора карты версии 7" +msgstr "Специальные флаги картогенератора V7" #: src/settings_translation_file.cpp msgid "Mapgen Valleys" msgstr "Генератор карты Valleys" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Valleys specific flags" -msgstr "Флаги генератора плоской карты" +msgstr "Специальные флаги картогенератора долин" #: src/settings_translation_file.cpp msgid "Mapgen debug" @@ -5053,13 +4946,15 @@ msgstr "Максимальное количество принудительно #: src/settings_translation_file.cpp msgid "Maximum hotbar width" -msgstr "Максимальная ширина быстрой панели" +msgstr "Максимальная ширина горячей панели" #: src/settings_translation_file.cpp msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Максимальное сопротивление жидкости. Контролирует замедление\n" +"при поступлении жидкости с высокой скоростью." #: src/settings_translation_file.cpp msgid "" @@ -5067,6 +4962,9 @@ msgid "" "The maximum total count is calculated dynamically:\n" "max_total = ceil((#clients + max_users) * per_client / 4)" msgstr "" +"Максимальное количество одновременно отправляемых каждому клиенту блоков.\n" +"Общее максимальное количество вычисляется динамически:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" #: src/settings_translation_file.cpp msgid "Maximum number of blocks that can be queued for loading." @@ -5114,14 +5012,12 @@ msgstr "" "умноженного на два." #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum number of players that can be connected simultaneously." -msgstr "Максимальное количество одновременно подключающихся клиентов." +msgstr "Максимальное количество одновременно подключённых игроков." #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum number of recent chat messages to show" -msgstr "Максимальное количество принудительно загруженных блоков." +msgstr "Максимальное количество последних отображаемых сообщений чата" #: src/settings_translation_file.cpp msgid "Maximum number of statically stored objects in a block." @@ -5136,7 +5032,7 @@ msgid "" "Maximum proportion of current window to be used for hotbar.\n" "Useful if there's something to be displayed right or left of hotbar." msgstr "" -"Максимальная доля окна, используемая для быстрой панели.\n" +"Максимальная доля окна, используемая для горячей панели.\n" "Полезно, если что-то будет отображаться справа или слева от него." #: src/settings_translation_file.cpp @@ -5198,9 +5094,8 @@ msgid "Minimap scan height" msgstr "Высота сканирования миникарты" #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum texture size" -msgstr "Минимальный размер текстуры для фильтров" +msgstr "Минимальный размер текстуры" #: src/settings_translation_file.cpp msgid "Mipmapping" @@ -5231,14 +5126,12 @@ msgid "Mountain noise" msgstr "Шум гор" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mountain variation noise" -msgstr "Шум высоты гор" +msgstr "Шум вариации гор" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mountain zero level" -msgstr "Шум гор" +msgstr "Нулевой уровень гор" #: src/settings_translation_file.cpp msgid "Mouse sensitivity" @@ -5269,7 +5162,6 @@ msgid "Mute sound" msgstr "Заглушить звук" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" @@ -5279,11 +5171,8 @@ msgstr "" "Название генератора карты, который будет использоваться при создании нового " "мира.\n" "Это значение переопределяется при создании мира через главное меню .\n" -"Текущие стабильные картографы: v5, v6, v7 (кроме floatlans), flat, " -"singlenode.\n" -"«Стабильные» означает, что рельеф местности в существующем мире не изменится " -"в будущем.\n" -"Обратите внимание, что биомы определяются играми и всё ещё могут меняться." +"Текущие крайне нестабильные картогенераторы:\n" +"- Дополнительные парящие острова v7 (выключено по умолчанию)." #: src/settings_translation_file.cpp msgid "" @@ -5301,9 +5190,8 @@ msgid "" msgstr "Имя сервера, отображаемое при входе и в списке серверов." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near clipping plane" -msgstr "Дистанция до плоскости" +msgstr "Близкая плоскость отсечения" #: src/settings_translation_file.cpp msgid "Network" @@ -5369,6 +5257,21 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" +"Количество возникающих потоков для использования.\n" +"ВНИМАНИЕ: Пока могут появляться ошибки, вызывающие сбой, если\n" +"«num_emerge_threads» больше 1. Строго рекомендуется использовать\n" +"значение «1», до тех пор, пока предупреждение не будет убрано.\n" +"Значение 0:\n" +"- Автоматический выбор. Количество потоков будет\n" +"- «число процессоров - 2», минимально — 1.\n" +"Любое другое значение:\n" +"- Указывает количество потоков, минимально — 1.\n" +"ВНИМАНИЕ: Увеличение числа потоков улучшает быстродействие\n" +"движка картогенератора, но может ухудшать на производительность игры, \n" +"мешая другим процессам, особенно в одиночной игре и/или при запуске кода Lua " +"в\n" +"«on_generated». Для большинства пользователей наилучшим значением может быть " +"1." #: src/settings_translation_file.cpp msgid "" @@ -5400,8 +5303,8 @@ msgid "" "formspec is\n" "open." msgstr "" -"Открыть меню паузы при потере окном фокуса. Не срабатывает, если какое-либо " -"меню уже открыто." +"Открыть меню паузы при потере окном фокуса. Не срабатывает, если какая-либо\n" +"форма уже открыта." #: src/settings_translation_file.cpp msgid "Overall bias of parallax occlusion effect, usually scale/2." @@ -5428,9 +5331,8 @@ msgid "Parallax occlusion mode" msgstr "Режим параллакса" #: src/settings_translation_file.cpp -#, fuzzy msgid "Parallax occlusion scale" -msgstr "Масштаб параллакса" +msgstr "Масштаб параллаксной окклюзии" #: src/settings_translation_file.cpp msgid "Parallax occlusion strength" @@ -5518,12 +5420,11 @@ msgstr "" "консольных команд." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." msgstr "" -"Печатать информацию о профилировании через заданные интервалы (в секундах). " +"Печатать информацию о профилировании через заданные интервалы (в секундах).\n" "0 = отключить. Полезно для разработчиков." #: src/settings_translation_file.cpp @@ -5552,9 +5453,8 @@ msgstr "" "Значения больше чем 26 вызывают резкое обрезание углов зоны облаков." #: src/settings_translation_file.cpp -#, fuzzy msgid "Raises terrain to make valleys around the rivers." -msgstr "Поднимает местность, чтобы образовать долины вдоль рек" +msgstr "Поднимает местность, чтобы образовывать поймы вдоль рек." #: src/settings_translation_file.cpp msgid "Random input" @@ -5581,6 +5481,8 @@ msgid "" "Remove color codes from incoming chat messages\n" "Use this to stop players from being able to use color in their messages" msgstr "" +"Удаляет коды цветов из входящих сообщений чата\n" +"Используйте, чтобы запретить игрокам применять цвета в своих сообщениях" #: src/settings_translation_file.cpp msgid "Replaces the default main menu with a custom one." @@ -5603,11 +5505,20 @@ msgid "" "csm_restriction_noderange)\n" "READ_PLAYERINFO: 32 (disable get_player_names call client-side)" msgstr "" +"Ограничивает доступ к определенным клиентским функциям на серверах.\n" +"Суммируйте отметки байтов ниже для ограничения функций, либо введите 0,\n" +"чтобы ничего не ограничивать:\n" +"LOAD_CLIENT_MODS: 1 (отключить загрузку пользовательских модификаций)\n" +"CHAT_MESSAGES: 2 (отключить вызов send_chat_message со стороны клиента)\n" +"READ_ITEMDEFS: 4 (отключить вызов get_item_def со стороны клиента)\n" +"READ_NODEDEFS: 8 (отключить вызов get_node_def со стороны клиента)\n" +"LOOKUP_NODES_LIMIT: 16 (ограничивает вызов get_node со стороны клиента\n" +"до csm_restriction_noderange)\n" +"READ_PLAYERINFO: 32 (отключить вызов get_player_names со стороны клиента)" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridge mountain spread noise" -msgstr "Шум подводных хребтов" +msgstr "Шум распространения горных хребтов" #: src/settings_translation_file.cpp msgid "Ridge noise" @@ -5618,9 +5529,8 @@ msgid "Ridge underwater noise" msgstr "Шум подводных хребтов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridged mountain size noise" -msgstr "Шум подводных хребтов" +msgstr "Размер шума подводных хребтов" #: src/settings_translation_file.cpp msgid "Right key" @@ -5631,34 +5541,28 @@ msgid "Rightclick repetition interval" msgstr "Интервал повторного клика правой кнопкой" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Глубина рек" +msgstr "Глубина русла реки" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Глубина рек" +msgstr "Ширина русла реки" #: src/settings_translation_file.cpp -#, fuzzy msgid "River depth" msgstr "Глубина рек" #: src/settings_translation_file.cpp -#, fuzzy msgid "River noise" msgstr "Шум рек" #: src/settings_translation_file.cpp -#, fuzzy msgid "River size" msgstr "Размер рек" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Глубина рек" +msgstr "Ширина поймы реки" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -5697,7 +5601,6 @@ msgid "Saving map received from server" msgstr "Сохранение карты, полученной с сервера" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Scale GUI by a user specified value.\n" "Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" @@ -5708,7 +5611,7 @@ msgstr "" "Масштабировать интерфейс, используя заданное пользователем значение.\n" "Использовать метод ближайшего соседа и антиалиасинг, чтобы масштабировать " "интерфейс.\n" -"Это сгладит некоторые острые углы и смешает пиксели при уменьшении масштаба, " +"Это сгладит некоторые острые углы и смешает пиксели при уменьшении масштаба " "за счёт\n" "размывания пикселей на гранях при масштабировании на нецелые размеры." @@ -5747,12 +5650,12 @@ msgid "Seabed noise" msgstr "Шум морского дна" #: src/settings_translation_file.cpp -#, fuzzy msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "Второй из двух 3D-шумов, которые вместе определяют туннели." +msgstr "" +"Второй из четырех 2D-шумов, которые вместе определяют диапазон высот холмов " +"и гор." #: src/settings_translation_file.cpp -#, fuzzy msgid "Second of two 3D noises that together define tunnels." msgstr "Второй из двух 3D-шумов, которые вместе определяют туннели." @@ -5761,9 +5664,8 @@ msgid "Security" msgstr "Безопасность" #: src/settings_translation_file.cpp -#, fuzzy msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "Смотрите http://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "См. http://www.sqlite.org/pragma.html#pragma_synchronous" #: src/settings_translation_file.cpp msgid "Selection box border color (R,G,B)." @@ -5778,7 +5680,6 @@ msgid "Selection box width" msgstr "Толщина рамки выделения" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Selects one of 18 fractal types.\n" "1 = 4D \"Roundy\" mandelbrot set.\n" @@ -5800,7 +5701,7 @@ msgid "" "17 = 4D \"Mandelbulb\" mandelbrot set.\n" "18 = 4D \"Mandelbulb\" julia set." msgstr "" -"Выбор из 18 фракталов из 9 формул.\n" +"Выбирает один из 18 типов фракталов.\n" "1 = 4D \"Круглое\" множество Мандельброта.\n" "2 = 4D \"Круглое\" множество Жюлиа.\n" "3 = 4D \"Квадратное\" множество Мандельброта.\n" @@ -5899,7 +5800,6 @@ msgid "Shader path" msgstr "Путь к шейдерам" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shaders allow advanced visual effects and may increase performance on some " "video\n" @@ -5908,7 +5808,7 @@ msgid "" msgstr "" "Шейдеры позволяют использовать дополнительные визуальные эффекты и могут " "увеличить производительность на некоторых видеокартах.\n" -"Они работают только с бэкендом OpenGL." +"Работают только с видео-бэкендом OpenGL." #: src/settings_translation_file.cpp msgid "Shadow limit" @@ -5939,6 +5839,16 @@ msgid "" "Altering this value is for special usage, leaving it unchanged is\n" "recommended." msgstr "" +"Размер кусков карты, создаваемых картогенератором, указывает в блоках карты (" +"16 узлов).\n" +"ВНИМАНИЕ!: От изменения этого значения нет никакой пользы, и значение больше " +"5\n" +"может быть вредным.\n" +"С уменьшением этого значения увеличится плотность расположения пещер и " +"подземелий.\n" +"Изменять это значение нужно только в особых ситуациях, а в обычных " +"рекомендуется\n" +"оставить как есть." #: src/settings_translation_file.cpp msgid "" @@ -5955,9 +5865,8 @@ msgid "Slice w" msgstr "Разрез w" #: src/settings_translation_file.cpp -#, fuzzy msgid "Slope and fill work together to modify the heights." -msgstr "Скос и заполнение работают совместно для изменения высот" +msgstr "Склон и заполнение работают совместно для изменения высот." #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." @@ -5999,16 +5908,15 @@ msgstr "Скорость скрытной ходьбы" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Скорость ходьбы украдкой в узлах в секунду." #: src/settings_translation_file.cpp msgid "Sound" msgstr "Звук" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key" -msgstr "Красться" +msgstr "Клавиша использовать" #: src/settings_translation_file.cpp msgid "Special key for climbing/descending" @@ -6044,14 +5952,12 @@ msgid "Steepness noise" msgstr "Шум крутизны" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain size noise" -msgstr "Шум гор" +msgstr "Шаг шума размера гор" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain spread noise" -msgstr "Шум гор" +msgstr "Шаг шума распространения гор" #: src/settings_translation_file.cpp msgid "Strength of generated normalmaps." @@ -6059,7 +5965,7 @@ msgstr "Сила сгенерированных карт нормалей." #: src/settings_translation_file.cpp msgid "Strength of light curve mid-boost." -msgstr "" +msgstr "Сила среднего подъёма кривой света." #: src/settings_translation_file.cpp msgid "Strength of parallax." @@ -6071,7 +5977,7 @@ msgstr "Строгая проверка протокола" #: src/settings_translation_file.cpp msgid "Strip color codes" -msgstr "" +msgstr "Прятать коды цветов" #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6082,18 +5988,16 @@ msgid "Temperature variation for biomes." msgstr "Вариация температур в биомах." #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain alternative noise" -msgstr "Альтернативный шум ландшафта" +msgstr "Альтернативный шум рельефа" #: src/settings_translation_file.cpp msgid "Terrain base noise" msgstr "Базовый шум поверхности" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain height" -msgstr "Высота местности" +msgstr "Высота рельефа" #: src/settings_translation_file.cpp msgid "Terrain higher noise" @@ -6140,6 +6044,14 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" +"Текстуры блока можно выровнять либо относительно блока, либо мира.\n" +"Первый режим лучше подходит к таким вещам, как машины, мебель и т. д.,\n" +"а во втором лестницы и микроблоки становятся более соответствующими среде.\n" +"Однако это новая возможность, и её нельзя использовать на старых серверах,\n" +"данный параметр позволяет принудительно применять к определенным типам " +"блоков.\n" +"Замечение: этот режим ЭКСПЕРИМЕНТАЛЬНЫЙ и может работать ненадлежащим " +"образом." #: src/settings_translation_file.cpp msgid "The URL for the content repository" @@ -6154,9 +6066,8 @@ msgstr "" "когда вызывают '/profiler save [формат]' без формата." #: src/settings_translation_file.cpp -#, fuzzy msgid "The depth of dirt or other biome filler node." -msgstr "Глубина земли или другого наполнителя" +msgstr "Глубина грунта или иного узла-заполнителя." #: src/settings_translation_file.cpp msgid "" @@ -6197,6 +6108,12 @@ msgid "" "maintained.\n" "This should be configured together with active_object_range." msgstr "" +"Радиус объема блоков вокруг каждого игрока, в котором действуют\n" +"активные блоки, определенные в блоках карты (16 блоков).\n" +"В активных блоках загружаются объекты и работает ABM.\n" +"Также это минимальный диапазон, в котором обрабатываются активные объекты " +"(мобы).\n" +"Необходимо настраивать вместе с active_object_range." #: src/settings_translation_file.cpp msgid "" @@ -6207,6 +6124,11 @@ msgid "" "On other platforms, OpenGL is recommended, and it’s the only driver with\n" "shader support currently." msgstr "" +"Бэк-энд отрисовки для Irrlicht.\n" +"После изменения этого параметра потребуется перезапуск.\n" +"Примечание: На Андроиде, применяйте OGLES1, если не уверены, иначе\n" +"приложение может не запуститься. На других платформах рекомендуется\n" +"OpenGL, так как сейчас это единственный драйвер с поддержкой шейдеров." #: src/settings_translation_file.cpp msgid "" @@ -6264,11 +6186,15 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" +"Вертикальное расстояние, на котором температура падает на 20, когда\n" +"«altitude_chill» включён. Также вертикальная расстояние,\n" +"на котором влажность падает на 10, когда «altitude_dry» включён." #: src/settings_translation_file.cpp -#, fuzzy msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "Первый из двух 3D-шумов, которые вместе определяют туннели." +msgstr "" +"Третий из четырех 2D-шумов, которые вместе определяют диапазон высот холмов " +"и гор." #: src/settings_translation_file.cpp msgid "This font will be used for certain languages." @@ -6348,10 +6274,10 @@ msgid "Trusted mods" msgstr "Доверенные моды" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Typical maximum height, above and below midpoint, of floatland mountains." -msgstr "Типичная максимальная высота горной местности парящих островов." +msgstr "" +"Типичная максимальная высота, выше и ниже средней точки гор парящих островов." #: src/settings_translation_file.cpp msgid "URL to the server list displayed in the Multiplayer Tab." @@ -6359,10 +6285,9 @@ msgstr "Адрес списка серверов, отображающийся #: src/settings_translation_file.cpp msgid "Undersampling" -msgstr "Undersampling" +msgstr "Субдискретизация" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6370,10 +6295,12 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"Undersampling похож на использование низкого разрешения экрана, но он\n" -"применяется только к игровому миру, оставляя интерфейс нетронутым.\n" -"Он должен дать существенное увеличение производительности за счёт менее " -"детального изображения." +"Субдискретизация аналогична использованию низкого разрешения экрана,\n" +"но она применяется только к игровому миру, графический интерфейс не " +"затрагивается.\n" +"Значительно увеличивает производительность за счёт вывода менее подробного " +"изображения.\n" +"Высокие значения приводят к менее детализированному изображению." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6385,7 +6312,7 @@ msgstr "Выгружать неиспользуемые сервером дан #: src/settings_translation_file.cpp msgid "Upper Y limit of dungeons." -msgstr "" +msgstr "Верхний лимит Y для подземелий." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." @@ -6410,6 +6337,10 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" +"Использовать MIP-текстурирование для масштабирования текстур.\n" +"Может немного увеличить производительность, особенно при\n" +"использовании пакета текстур высокого разрешения.\n" +"Гамма-коррекция при уменьшении масштаба не поддерживается." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -6420,29 +6351,24 @@ msgid "VBO" msgstr "VBO" #: src/settings_translation_file.cpp -#, fuzzy msgid "VSync" msgstr "Вертикальная синхронизация" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley depth" msgstr "Глубина долин" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley fill" msgstr "Заполнение долин" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley profile" -msgstr "Профиль Долины" +msgstr "Профиль долины" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley slope" -msgstr "Уклон долин" +msgstr "Склон долин" #: src/settings_translation_file.cpp msgid "Variation of biome filler depth." @@ -6487,7 +6413,7 @@ msgstr "Регулирует крутизну утёсов." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Скорость вертикального лазания в узлах в секунду." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6523,14 +6449,13 @@ msgstr "Дистанция отрисовки" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "" +msgstr "Дополнительная кнопка триггеров виртуального джойстика" #: src/settings_translation_file.cpp msgid "Volume" msgstr "Громкость" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "W coordinate of the generated 3D slice of a 4D fractal.\n" "Determines which 3D slice of the 4D shape is generated.\n" @@ -6538,14 +6463,15 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" -"W координата генерируемого 3D среза 4D фрактала.\n" -"Определяет, какой из 3D срезов 4D формы будет сгенерирован.\n" -"Не оказывает влияния на 3D фракталы.\n" -"Диапазон от -2 до 2." +"Координата W генерируемого 3D-среза 4D-фрактала.\n" +"Определяет, какой из 3D-срезов 4D-формы будет сгенерирован.\n" +"Изменяет форму фрактала.\n" +"Не оказывает влияния на 3D-фракталы.\n" +"Диапазон примерно от -2 до 2." #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Скорость ходьбы и полёта в узлах в секунду." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6554,6 +6480,8 @@ msgstr "Скорость ходьбы" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Скорость ходьбы, полёта и лазания в режиме быстрого перемещения в узлах в " +"секунду." #: src/settings_translation_file.cpp msgid "Water level" @@ -6580,17 +6508,14 @@ msgid "Waving water" msgstr "Волны на воде" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave height" msgstr "Высота волн на воде" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave speed" msgstr "Скорость волн на воде" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wavelength" msgstr "Длина волн на воде" @@ -6619,7 +6544,6 @@ msgstr "" "правильно поддерживают загрузку текстур с аппаратного обеспечения." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" "can be blurred, so automatically upscale them with nearest-neighbor\n" @@ -6631,18 +6555,16 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" -"При использовании билинейных/трилинейных/анизотропных фильтров текстуры с " -"низким разрешением\n" -"могут быть размыты, поэтому автоматически увеличивайте их с помощью " -"интерполяции \"ближайшего соседа\"\n" -"для сохранения четких пикселей. Это устанавливает минимальный размер " -"текстуры\n" -"для масштабированных текстур; Более высокие значения выглядят более резкими, " -"но требуют больше\n" -"памяти. Рекомендуется значение 2. Установка этого значения выше 1 может не " -"иметь\n" -"видимого эффекта, если билинейная/трилинейная/анизотропная фильтрация\n" -"включена." +"При использовании билинейного, трилинейного или анизотропного фильтра\n" +"текстуры с низким разрешением могут быть размыты, поэтому происходит\n" +"автоматическое масштабирование их с интерполяцией по ближайшим соседям,\n" +"чтобы сохранить чёткие пиксели. Этот параметр определяет минимальный\n" +"размер для увеличенных текстур. При высоких значениях отображение более\n" +"чёткое, но требует больше памяти. Рекомендуется значение 2. Установка этого\n" +"значения выше 1 может не иметь видимого эффекта, если не включена \n" +"билинейная, трилинейная или анизотропная фильтрация.\n" +"Также используется как размер текстуры базового блока для мирового\n" +"автомасштабирования текстур." #: src/settings_translation_file.cpp msgid "" @@ -6691,7 +6613,6 @@ msgid "Width component of the initial window size." msgstr "Ширина компонента начального размера окна." #: src/settings_translation_file.cpp -#, fuzzy msgid "Width of the selection box lines around nodes." msgstr "Толщина обводки выделенных узлов." @@ -6726,10 +6647,17 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" +"Выровненные по миру текстуры можно масштабировать так, чтобы они\n" +"охватывали несколько блоков. Но сервер может не отправить нужный\n" +"масштаб, особенно если вы используете специально разработанный\n" +"пакет текстур; с этим параметром клиент пытается определить масштаб\n" +"автоматически на основании размера текстуры.\n" +"Смотрите также texture_min_size.\n" +"Внимание: Этот параметр ЭКСПЕРИМЕНТАЛЬНЫЙ!" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "" +msgstr "Режим текстур, выровненных глобально" #: src/settings_translation_file.cpp msgid "Y of flat ground." @@ -6740,11 +6668,12 @@ msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." msgstr "" +"Y нулевого уровня градиента плотности гор. Используется для вертикального " +"сдвига гор." #: src/settings_translation_file.cpp -#, fuzzy msgid "Y of upper limit of large caves." -msgstr "Верхний предел по Y для больших псевдослучайных пещер." +msgstr "Y верхнего предела больших пещер." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." @@ -6763,14 +6692,12 @@ msgid "Y-level of floatland midpoint and lake surface." msgstr "Y-уровень середины поплавка и поверхности озера." #: src/settings_translation_file.cpp -#, fuzzy msgid "Y-level of higher terrain that creates cliffs." -msgstr "Y-уровень нижнего рельефа и дна озёр." +msgstr "Y-уровень высокого рельефа, формирующего горы." #: src/settings_translation_file.cpp -#, fuzzy msgid "Y-level of lower terrain and seabed." -msgstr "Y-уровень нижнего рельефа и дна озёр." +msgstr "Y-уровень нижнего рельефа и морского дна." #: src/settings_translation_file.cpp msgid "Y-level of seabed." From 4f6c9e206c77d2465b119b764b8bae7643431a30 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Wed, 4 Dec 2019 00:30:17 +0000 Subject: [PATCH 076/624] Translated using Weblate (Russian) Currently translated at 100.0% (1274 of 1274 strings) --- po/ru/minetest.po | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 91200f904..0aeccef51 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-12-02 20:16+0000\n" +"PO-Revision-Date: 2019-12-04 01:07+0000\n" "Last-Translator: Andrei Stepanov \n" "Language-Team: Russian \n" @@ -304,7 +304,7 @@ msgstr "(Нет описания)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" -msgstr "2D шум" +msgstr "2D-шум" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" @@ -1214,12 +1214,12 @@ msgstr "Установлена видимость %dм" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "Установлена максимальная видимость - %dм" +msgstr "Видимость установлена на максимум: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "Установлена минимальная видимость - %dм" +msgstr "Видимость установлена на минимум: %d" #: src/client/game.cpp #, c-format @@ -1800,32 +1800,29 @@ msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "2D-шум, управляет формой / размером горных хребтов." +msgstr "2D-шум, управляющий формой и размером горных хребтов." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "Двухмерный шум, контролирующий форму и размер холмов." +msgstr "2D-шум, контролирующий форму и размер холмов." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "Двухмерный шум, контролирующий форму и размер ступенчатых гор." +msgstr "2D-шум, контролирующий форму и размер ступенчатых гор." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" -"Двухмерный шум, контролирующий размер и распространение складчатых горных " -"хребтов." +"2D-шум, контролирующий размер и распространение складчатых горных хребтов." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" -"Двухмерный шум, контролирующий размер и распространение холмистой местности." +msgstr "2D-шум, контролирующий размер и распространение холмистой местности." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" -"Двухмерный шум, контролирующий размер и распространение ступенчатых горных " -"хребтов." +"2D-шум, контролирующий размер и распространение ступенчатых горных хребтов." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." @@ -1883,9 +1880,9 @@ msgid "" msgstr "" "Поддержка 3D.\n" "Сейчас поддерживаются:\n" -"- none: 3D отключён.\n" +"- none: 3D-режим отключён.\n" "- anaglyph: голубой/пурпурный цвет в 3D.\n" -"- interlaced: чётные/нёчетные линии отображают два разных кадра для " +"- interlaced: чётные/нечётные линии отображают два разных кадра для " "экранов, поддерживающих поляризацию.\n" "- topbottom: Разделение экрана верх/низ\n" "- sidebyside: Разделение экрана право/лево.\n" @@ -3121,7 +3118,7 @@ msgstr "Клавиша вперёд" #: src/settings_translation_file.cpp msgid "Fourth of 4 2D noises that together define hill/mountain range height." msgstr "" -"Четвертый из четырех 2D-шумов, определяющий диапазон высоты холмов и гор." +"Четвёртый из четырёх 2D-шумов, определяющий диапазон высоты холмов и гор." #: src/settings_translation_file.cpp msgid "Fractal type" @@ -5505,7 +5502,7 @@ msgid "" "csm_restriction_noderange)\n" "READ_PLAYERINFO: 32 (disable get_player_names call client-side)" msgstr "" -"Ограничивает доступ к определенным клиентским функциям на серверах.\n" +"Ограничивает доступ к определённым клиентским функциям на серверах.\n" "Суммируйте отметки байтов ниже для ограничения функций, либо введите 0,\n" "чтобы ничего не ограничивать:\n" "LOAD_CLIENT_MODS: 1 (отключить загрузку пользовательских модификаций)\n" @@ -5652,7 +5649,7 @@ msgstr "Шум морского дна" #: src/settings_translation_file.cpp msgid "Second of 4 2D noises that together define hill/mountain range height." msgstr "" -"Второй из четырех 2D-шумов, которые вместе определяют диапазон высот холмов " +"Второй из четырёх 2D-шумов, которые вместе определяют диапазон высот холмов " "и гор." #: src/settings_translation_file.cpp @@ -6048,9 +6045,9 @@ msgstr "" "Первый режим лучше подходит к таким вещам, как машины, мебель и т. д.,\n" "а во втором лестницы и микроблоки становятся более соответствующими среде.\n" "Однако это новая возможность, и её нельзя использовать на старых серверах,\n" -"данный параметр позволяет принудительно применять к определенным типам " +"данный параметр позволяет принудительно применять к определённым типам " "блоков.\n" -"Замечение: этот режим ЭКСПЕРИМЕНТАЛЬНЫЙ и может работать ненадлежащим " +"Замечание: этот режим ЭКСПЕРИМЕНТАЛЬНЫЙ и может работать ненадлежащим " "образом." #: src/settings_translation_file.cpp @@ -6108,8 +6105,8 @@ msgid "" "maintained.\n" "This should be configured together with active_object_range." msgstr "" -"Радиус объема блоков вокруг каждого игрока, в котором действуют\n" -"активные блоки, определенные в блоках карты (16 блоков).\n" +"Радиус объёма блоков вокруг каждого игрока, в котором действуют\n" +"активные блоки, определённые в блоках карты (16 блоков).\n" "В активных блоках загружаются объекты и работает ABM.\n" "Также это минимальный диапазон, в котором обрабатываются активные объекты " "(мобы).\n" @@ -6193,7 +6190,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Third of 4 2D noises that together define hill/mountain range height." msgstr "" -"Третий из четырех 2D-шумов, которые вместе определяют диапазон высот холмов " +"Третий из четырёх 2D-шумов, которые вместе определяют диапазон высот холмов " "и гор." #: src/settings_translation_file.cpp @@ -6316,7 +6313,7 @@ msgstr "Верхний лимит Y для подземелий." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." -msgstr "Объемные облака вместо плоских." +msgstr "Объёмные облака вместо плоских." #: src/settings_translation_file.cpp msgid "Use a cloud animation for the main menu background." @@ -6576,7 +6573,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" -"Определяет необходимость рассинхронизиции анимации текстур блоков между " +"Определяет необходимость рассинхронизации анимации текстур блоков между " "фрагментами." #: src/settings_translation_file.cpp From 4e57da42c1bb291c8e6c052ba2580bbb3a10c8d4 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Wed, 4 Dec 2019 01:12:09 +0000 Subject: [PATCH 077/624] Translated using Weblate (Russian) Currently translated at 100.0% (1274 of 1274 strings) --- po/ru/minetest.po | 245 +++++++++++++++++++++++----------------------- 1 file changed, 123 insertions(+), 122 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 0aeccef51..1916f40ef 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-12-04 01:07+0000\n" +"PO-Revision-Date: 2019-12-04 03:30+0000\n" "Last-Translator: Andrei Stepanov \n" "Language-Team: Russian \n" @@ -165,11 +165,13 @@ msgstr "Назад" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "В главное меню" +msgstr "Назад в главное меню" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading and installing $1, please wait..." -msgstr "Загружается и устанавливается $1, пожалуйста, подождите..." +msgstr "" +"Загружается и устанавливается $1.\n" +"Пожалуйста, подождите..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -236,7 +238,7 @@ msgstr "Игра" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" -msgstr "Генератор карты" +msgstr "Картогенератор" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -320,7 +322,7 @@ msgstr "Отключено" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "Править" +msgstr "Изменить" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" @@ -690,7 +692,7 @@ msgstr "Мипмаппинг" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" -msgstr "Мипмаппинг с анизотр. фильтром" +msgstr "Мипмаппинг + аниз. фильтр" #: builtin/mainmenu/tab_settings.lua msgid "No" @@ -981,7 +983,7 @@ msgstr "" "- %s: инвентарь\n" "- Мышь: поворот/обзор\n" "- ЛКМ: копать/удар\n" -"- ПКМ: поставить/использовать\n" +"- ПКМ: положить/использовать\n" "- Колесо мыши: выбор предмета\n" "- %s: чат\n" @@ -1072,7 +1074,7 @@ msgstr "Режим полёта включён" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Режим полёта включён (но: нет привилегии 'fly')" +msgstr "Режим полёта включён (но: нет привилегии «fly»)" #: src/client/game.cpp msgid "Fog disabled" @@ -1152,7 +1154,7 @@ msgstr "Режим прохождения сквозь стены включён #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Режим прохождения сквозь стены включён (но: нет привилегии 'noclip')" +msgstr "Режим прохождения сквозь стены включён (но: нет привилегии «noclip»)" #: src/client/game.cpp msgid "Node definitions..." @@ -1248,11 +1250,11 @@ msgstr "Отображение чата включено" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "HUD скрыт" +msgstr "Игровой интерфейс скрыт" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "Отображение HUD'а включено" +msgstr "Игровой интерфейс отображается" #: src/client/gameui.cpp msgid "Profiler hidden" @@ -1553,7 +1555,7 @@ msgstr "Продолжить" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "Использовать = Спуск" +msgstr "Использовать = спуск" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" @@ -1593,7 +1595,7 @@ msgstr "Громкость -" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "Двойной прыжок = Полёт" +msgstr "Двойной прыжок = полёт" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" @@ -1663,7 +1665,7 @@ msgstr "Использовать" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "HUD" +msgstr "Игровой интерфейс" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" @@ -1830,11 +1832,11 @@ msgstr "2D-шум, определяющие расположение пойм р #: src/settings_translation_file.cpp msgid "3D clouds" -msgstr "3D облака" +msgstr "Объёмные облака" #: src/settings_translation_file.cpp msgid "3D mode" -msgstr "3D режим" +msgstr "3D-режим" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2138,7 +2140,7 @@ msgstr "Разрешить ставить блоки на месте игрок #: src/settings_translation_file.cpp msgid "Builtin" -msgstr "Встроен" +msgstr "Встроенный" #: src/settings_translation_file.cpp msgid "Bumpmapping" @@ -2692,7 +2694,7 @@ msgstr "Доменное имя сервера, отображаемое в сп #: src/settings_translation_file.cpp msgid "Double tap jump for fly" -msgstr "Полет по двойному прыжку" +msgstr "Полёт по двойному прыжку" #: src/settings_translation_file.cpp msgid "Double-tapping the jump key toggles fly mode." @@ -2704,7 +2706,7 @@ msgstr "Кнопка выброса блока" #: src/settings_translation_file.cpp msgid "Dump the mapgen debug information." -msgstr "Дамп отладочных данных генератора карты." +msgstr "Записывать отладочные данные картогенератора." #: src/settings_translation_file.cpp msgid "Dungeon maximum Y" @@ -2728,7 +2730,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Enable VBO" -msgstr "Включить VBO" +msgstr "Включить объекты буфера вершин (VBO)" #: src/settings_translation_file.cpp msgid "Enable console window" @@ -2819,7 +2821,7 @@ msgid "" "Ignored if bind_address is set." msgstr "" "Включить/отключить запуск IPv6-сервера.\n" -"Игнорируется, если задан bind_address." +"Игнорируется, если задан «bind_address»." #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." @@ -2886,7 +2888,7 @@ msgstr "Кадровая частота во время паузы" #: src/settings_translation_file.cpp msgid "FSAA" -msgstr "FSAA" +msgstr "Полноэкранное сглаживание (FSAA)" #: src/settings_translation_file.cpp msgid "Factor noise" @@ -3023,7 +3025,7 @@ msgstr "Высота гор на парящих островах" #: src/settings_translation_file.cpp msgid "Fly key" -msgstr "Кнопка полёта" +msgstr "Клавиша полёта" #: src/settings_translation_file.cpp msgid "Flying" @@ -3183,7 +3185,7 @@ msgstr "Фильтр масштабирования интерфейса" #: src/settings_translation_file.cpp msgid "GUI scaling filter txr2img" -msgstr "txr2img фильтр масштабирования интерфейса" +msgstr "Фильтр txr2img для масштабирования интерфейса" #: src/settings_translation_file.cpp msgid "Gamma" @@ -3204,7 +3206,7 @@ msgid "" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" "Глобальные атрибуты генерации карт.\n" -"В генераторе карт v6 флаг 'decorations' не влияет на деревья и траву в " +"В картогенераторе v6 флаг 'decorations' не влияет на деревья и траву в " "джунглях,\n" "в остальных генераторах этот флаг контролирует все декорации." @@ -3238,11 +3240,11 @@ msgstr "Моды HTTP" #: src/settings_translation_file.cpp msgid "HUD scale factor" -msgstr "Коэффициент масштабирования HUD" +msgstr "Масштаб игрового интерфейса" #: src/settings_translation_file.cpp msgid "HUD toggle key" -msgstr "Клавиша переключения HUD" +msgstr "Клавиша переключения игрового интерфейса" #: src/settings_translation_file.cpp msgid "" @@ -3518,11 +3520,11 @@ msgstr "IPv6" #: src/settings_translation_file.cpp msgid "IPv6 server" -msgstr "IPv6 сервер" +msgstr "IPv6-сервер" #: src/settings_translation_file.cpp msgid "IPv6 support." -msgstr "поддержка IPv6." +msgstr "Поддержка IPv6." #: src/settings_translation_file.cpp msgid "" @@ -3551,8 +3553,8 @@ msgid "" msgstr "" "Если включено, то сервер будет выполнять отсечение фрагментов, основываясь\n" "на положении глаз игрока. Это может уменьшить количество пересылаемых\n" -"фрагментов на 50-80%. Клиент не будет получать большую часть невидимых\n" -"фрагментов, поэтому режим noclip станет менее полезным." +"блоков на 50-80%. Клиент не будет получать большую часть невидимого,\n" +"поэтому режим прохождения сквозь стены станет менее полезным." #: src/settings_translation_file.cpp msgid "" @@ -3560,9 +3562,9 @@ msgid "" "nodes.\n" "This requires the \"noclip\" privilege on the server." msgstr "" -"Если включено одновременно с режимом полёта, игрок сможет летать через " +"Если включено одновременно с режимом полёта, игрок может пролетать сквозь " "твёрдые блоки.\n" -"Требует наличие привилегии 'noclip' на сервере." +"Требует наличие привилегии «noclip» на сервере." #: src/settings_translation_file.cpp msgid "" @@ -3570,7 +3572,7 @@ msgid "" "down and\n" "descending." msgstr "" -"Если включено, то для спуска (в воде или при полёте) будет использоваться " +"Если включено, то для спуска (в воде или при полёте) будет задействована " "клавиша «Использовать», а не «Красться»." #: src/settings_translation_file.cpp @@ -3847,8 +3849,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша уменьшения зоны видимости.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3866,9 +3868,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша бросить выбранный предмет.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша, чтобы выбросить выбранный предмет.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3877,8 +3879,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша увеличения зоны видимости.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3897,8 +3899,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша прыжка.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3929,8 +3931,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша движения вперёд.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3939,8 +3941,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша движения влево.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3949,8 +3951,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша движения вправо.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3969,8 +3971,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша открытия окна чата для ввода команды.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3989,8 +3991,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша открытия окна чата.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3999,8 +4001,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша открытия инвентаря.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4259,7 +4261,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша выбора предмета 4 на горячей панели.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/" +"См. http://irrlicht.sourceforge.net/docu/" "namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp @@ -4289,7 +4291,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша выбора предыдущего предмета на горячей панели.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/" +"См. http://irrlicht.sourceforge.net/docu/" "namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp @@ -4350,11 +4352,11 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша красться.\n" -"Также используется для спуска и погружения под воду, если aux1_descends " -"отключена.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша, чтобы красться.\n" +"Также используется для спуска и погружения под воду, если параметр " +"aux1_descends отключён.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4362,9 +4364,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша переключения вида от первого и от третьего лица.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша переключения вида от первого или от третьего лица.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4373,8 +4375,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша снятия скриншота.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4393,8 +4395,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша переключения кинематографического режима.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4403,8 +4405,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша переключения отображения миникарты.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4422,9 +4424,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша переключения режима полета.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша переключения режима полёта.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4432,9 +4434,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша переключения режима проверки столкновений.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша переключения режима прохождения сквозь стены.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4443,7 +4445,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша переключения режима движение вниз/вверх по направлению взгляда.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/" +"См. http://irrlicht.sourceforge.net/docu/" "namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp @@ -4472,9 +4474,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша переключения показа отладочной информации.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша переключения отображения отладочной информации.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4492,9 +4494,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша переключения отображения HUD.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Клавиша переключения отображения игрового интерфейса.\n" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4524,8 +4526,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Клавиша отключения ограничения зоны видимости.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"См. http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4781,8 +4783,8 @@ msgid "" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Атрибуты генерации для генератора плоскости.\n" -"«terrain» включает генерацию не-фрактального рельефа:\n" +"Атрибуты генерации для картогенератора плоскости.\n" +"«terrain» включает генерацию нефрактального рельефа:\n" "океаны, острова и подземелья." #: src/settings_translation_file.cpp @@ -4790,7 +4792,7 @@ msgid "" "Map generation attributes specific to Mapgen flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" -"Атрибуты генерации карты для генератора плоскости.\n" +"Атрибуты генерации для картогенератора плоскости.\n" "Иногда озера и холмы могут добавляться в плоский мир." #: src/settings_translation_file.cpp @@ -4804,10 +4806,10 @@ msgid "" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" -"Атрибуты генерации карты для генератора карты v6.\n" -"Параметр «snowbiomes» (снежные биомы) включает новую систему с 5 биомами.\n" -"Если «snowbiomes» включён, то автоматически задействуются джунгли,\n" -"а флаг «jungles» игнорируется." +"Атрибуты генерации для капртогенератора v6.\n" +"Параметр «snowbiomes» (снежные биомы) включает новую систему с 5 \n" +"биомами. Если «snowbiomes» включён, то автоматически\n" +"активируются джунгли, а флаг «jungles» игнорируется." #: src/settings_translation_file.cpp msgid "" @@ -4843,7 +4845,7 @@ msgstr "Таймаут выгрузки блоков" #: src/settings_translation_file.cpp msgid "Mapgen Carpathian" -msgstr "Генератор карты Карпаты" +msgstr "Картогенератор Карпаты" #: src/settings_translation_file.cpp msgid "Mapgen Carpathian specific flags" @@ -4883,7 +4885,7 @@ msgstr "Специальные флаги картогенератора V6" #: src/settings_translation_file.cpp msgid "Mapgen V7" -msgstr "Картогенератора V7" +msgstr "Картогенератор V7" #: src/settings_translation_file.cpp msgid "Mapgen V7 specific flags" @@ -4891,7 +4893,7 @@ msgstr "Специальные флаги картогенератора V7" #: src/settings_translation_file.cpp msgid "Mapgen Valleys" -msgstr "Генератор карты Valleys" +msgstr "Картогенератор долин" #: src/settings_translation_file.cpp msgid "Mapgen Valleys specific flags" @@ -4899,15 +4901,15 @@ msgstr "Специальные флаги картогенератора дол #: src/settings_translation_file.cpp msgid "Mapgen debug" -msgstr "Дебаггинг генератора карты" +msgstr "Отладка картогенератора" #: src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "Флаги генератора карты" +msgstr "Флаги картогенератора" #: src/settings_translation_file.cpp msgid "Mapgen name" -msgstr "Название генератора карты" +msgstr "Название картогенератора" #: src/settings_translation_file.cpp msgid "Max block generate distance" @@ -5034,7 +5036,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Maximum simultaneous block sends per client" -msgstr "Максимальное количество одновременных отправлений блоков на клиент" +msgstr "Максимальное число одновременно отправляемых блоков на клиент" #: src/settings_translation_file.cpp msgid "Maximum size of the out chat queue" @@ -5096,7 +5098,7 @@ msgstr "Минимальный размер текстуры" #: src/settings_translation_file.cpp msgid "Mipmapping" -msgstr "Mip-текстурирование (Мип-маппинг)" +msgstr "Мипмаппинг (MIP-текстурирование)" #: src/settings_translation_file.cpp msgid "Mod channels" @@ -5167,9 +5169,9 @@ msgid "" msgstr "" "Название генератора карты, который будет использоваться при создании нового " "мира.\n" -"Это значение переопределяется при создании мира через главное меню .\n" +"Это значение переопределяется при создании мира через главное меню.\n" "Текущие крайне нестабильные картогенераторы:\n" -"- Дополнительные парящие острова v7 (выключено по умолчанию)." +"- Дополнительные парящие острова из v7 (выключено по умолчанию)." #: src/settings_translation_file.cpp msgid "" @@ -5208,11 +5210,11 @@ msgstr "Новым пользователям нужно вводить этот #: src/settings_translation_file.cpp msgid "Noclip" -msgstr "Отключить столкновения" +msgstr "Проходить сквозь стены" #: src/settings_translation_file.cpp msgid "Noclip key" -msgstr "Клавиша отключения столкновений" +msgstr "Клавиша прохождения сквозь стены" #: src/settings_translation_file.cpp msgid "Node highlighting" @@ -5263,12 +5265,11 @@ msgstr "" "- «число процессоров - 2», минимально — 1.\n" "Любое другое значение:\n" "- Указывает количество потоков, минимально — 1.\n" -"ВНИМАНИЕ: Увеличение числа потоков улучшает быстродействие\n" -"движка картогенератора, но может ухудшать на производительность игры, \n" -"мешая другим процессам, особенно в одиночной игре и/или при запуске кода Lua " -"в\n" -"«on_generated». Для большинства пользователей наилучшим значением может быть " -"1." +"ВНИМАНИЕ: Увеличение числа потоков улучшает быстродействие движка\n" +"картогенератора, но может снижать производительность игры, мешая другим\n" +"процессам, особенно в одиночной игре и при запуске кода Lua в «on_generated»." +"\n" +"Для большинства пользователей наилучшим значением может быть «1»." #: src/settings_translation_file.cpp msgid "" @@ -5821,7 +5822,7 @@ msgstr "Показывать отладочную информацию" #: src/settings_translation_file.cpp msgid "Show entity selection boxes" -msgstr "Показывать выделение энтити" +msgstr "Показывать область выделения объектов" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -5836,15 +5837,14 @@ msgid "" "Altering this value is for special usage, leaving it unchanged is\n" "recommended." msgstr "" -"Размер кусков карты, создаваемых картогенератором, указывает в блоках карты (" -"16 узлов).\n" -"ВНИМАНИЕ!: От изменения этого значения нет никакой пользы, и значение больше " +"Размер кусков карты, выдаваемых картогенератором, указывается в блоках карты " +"(16 узлов).\n" +"ВНИМАНИЕ!: От изменения этого значения нет никакой пользы, а значение больше " "5\n" "может быть вредным.\n" "С уменьшением этого значения увеличится плотность расположения пещер и " "подземелий.\n" -"Изменять это значение нужно только в особых ситуациях, а в обычных " -"рекомендуется\n" +"Изменять его нужно только в особых ситуациях, а в обычных рекомендуется\n" "оставить как есть." #: src/settings_translation_file.cpp @@ -5853,7 +5853,7 @@ msgid "" "increase the cache hit %, reducing the data being copied from the main\n" "thread, thus reducing jitter." msgstr "" -"Размер кэша блоков в генераторе мешей. Увеличение этого значения\n" +"Размер кэша блоков карты в генераторе мешей. Увеличение этого значения\n" "увеличит процент попаданий в кэш, предотвращая копирование информации\n" "из основного потока игры, тем самым уменьшая колебания кадровой частоты." @@ -6093,7 +6093,8 @@ msgid "" "See /privs in game for a full list on your server and mod configuration." msgstr "" "Привилегии, автоматически получаемые новым пользователем.\n" -"Смотрите /privs для получения полного списка привилегий." +"См. /privs для получения полного списка привилегий на своём сервере и при " +"настройке мода." #: src/settings_translation_file.cpp msgid "" @@ -6121,9 +6122,9 @@ msgid "" "On other platforms, OpenGL is recommended, and it’s the only driver with\n" "shader support currently." msgstr "" -"Бэк-энд отрисовки для Irrlicht.\n" +"Программный интерфейс визуализации для Irrlicht.\n" "После изменения этого параметра потребуется перезапуск.\n" -"Примечание: На Андроиде, применяйте OGLES1, если не уверены, иначе\n" +"Примечание: Если не уверены, используйте OGLES1 для Android, иначе\n" "приложение может не запуститься. На других платформах рекомендуется\n" "OpenGL, так как сейчас это единственный драйвер с поддержкой шейдеров." @@ -6345,7 +6346,7 @@ msgstr "Использовать трилинейную фильтрацию д #: src/settings_translation_file.cpp msgid "VBO" -msgstr "VBO" +msgstr "Объекты буфера вершин (VBO)" #: src/settings_translation_file.cpp msgid "VSync" From 4f49a2248f074e77eba10622b3b5a3d78799a8bf Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Wed, 4 Dec 2019 03:32:16 +0000 Subject: [PATCH 078/624] Translated using Weblate (Russian) Currently translated at 100.0% (1274 of 1274 strings) --- po/ru/minetest.po | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 1916f40ef..5d1c9f4a9 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-12-04 03:30+0000\n" +"PO-Revision-Date: 2019-12-04 03:40+0000\n" "Last-Translator: Andrei Stepanov \n" "Language-Team: Russian \n" @@ -506,7 +506,7 @@ msgstr "Удалить дополнение" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" -msgstr "Включить пакет текстур" +msgstr "Использовать пакет текстур" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" @@ -1693,7 +1693,7 @@ msgstr "Сквозь стены" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "Включить/отключить движение вниз/вверх по направлению взгляда" +msgstr "По направлению взгляда" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1988,7 +1988,7 @@ msgstr "Всегда включены полёт и ускорение" #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" -msgstr "Гамма Ambient occlusion" +msgstr "Гамма глобального затенения" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." @@ -2758,7 +2758,7 @@ msgstr "Включить получение игроками урона и их #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." -msgstr "Включить случайный ввод (используется только для тестирования)." +msgstr "Включить случайный ввод пользователя (только для тестов)." #: src/settings_translation_file.cpp msgid "Enable register confirmation" @@ -2777,7 +2777,7 @@ msgid "" "Enable smooth lighting with simple ambient occlusion.\n" "Disable for speed or for different looks." msgstr "" -"Включить мягкое освещение с простым Ambient Occlusion.\n" +"Включить мягкое освещение с простым глобальным затенением.\n" "Отключите для более высокой скорости или другого внешнего вида." #: src/settings_translation_file.cpp @@ -6143,10 +6143,10 @@ msgid "" "setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" "set to the nearest valid value." msgstr "" -"Сила затенения Ambient Occlusion. Чем меньше, тем темнее,\n" +"Сила глобального затенения узлов. Чем меньше, тем темнее,\n" "и наоборот. Возможные значения параметра - от 0.25 до 4.0\n" "включительно. Если значение находится вне этого диапазона,\n" -"то оно будет округлено до ближайшего корректного." +"то оно будет округлено до ближайшего подходящего." #: src/settings_translation_file.cpp msgid "" From c558a4f4f6f7883ef01b212271ef2526f6b57c50 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Wed, 4 Dec 2019 03:44:02 +0000 Subject: [PATCH 079/624] Translated using Weblate (Russian) Currently translated at 100.0% (1274 of 1274 strings) --- po/ru/minetest.po | 173 +++++++++++++++++++++++----------------------- 1 file changed, 86 insertions(+), 87 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 5d1c9f4a9..ef5bbfdbc 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-12-04 03:40+0000\n" +"PO-Revision-Date: 2019-12-05 07:05+0000\n" "Last-Translator: Andrei Stepanov \n" "Language-Team: Russian \n" @@ -92,7 +92,7 @@ msgstr "Зависимости:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "Отключить всё" +msgstr "Отключить все" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" @@ -100,7 +100,7 @@ msgstr "Отключить пакет" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "Включить всё" +msgstr "Включить все" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" @@ -111,7 +111,7 @@ msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"Не удалось включить мод \"$1\", так как он содержит недопустимые символы. " +"Не удалось включить мод «$1», так как он содержит недопустимые символы. " "Разрешены только следующие символы: [a-z0-9_]." #: builtin/mainmenu/dlg_config_world.lua @@ -218,7 +218,7 @@ msgstr "Обновить" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "Мир «$1» уже существует" +msgstr "Мир с названием «$1» уже существует" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -274,11 +274,11 @@ msgstr "Удалить" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "pkgmgr: невозможно удалить \"$1\"" +msgstr "pkgmgr: невозможно удалить «$1»" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "pkgmgr: недопустимый путь \"$1\"" +msgstr "pkgmgr: недопустимый путь «$1»" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" @@ -302,7 +302,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" -msgstr "(Нет описания)" +msgstr "(Нет описания настройки)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" @@ -346,11 +346,11 @@ msgstr "Персистенция" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "Введите целое число." +msgstr "Пожалуйста, введите целое число." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." -msgstr "Пожалуйста, введите число." +msgstr "Пожалуйста, введите допустимое число." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" @@ -370,7 +370,7 @@ msgstr "Выбрать файл" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "Отобразить технические названия" +msgstr "Показывать технические названия" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." @@ -426,16 +426,16 @@ msgstr "$1 модов" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "pkgmgr: невозможно установить $1 в $2" +msgstr "Невозможно установить $1 в $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "Установка мода: не удаётся определить название мода для $1" +msgstr "Установка мода: не удаётся определить название мода для «$1»" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Установка мода: не удаётся найти подходящей каталог для пакета модов $1" +"Установка мода: не удаётся найти подходящей каталог для пакета модов «$1»" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" @@ -616,7 +616,7 @@ msgstr "В избранные" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "Присоединиться к игре" +msgstr "Подключиться к игре" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" @@ -692,7 +692,7 @@ msgstr "Мипмаппинг" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" -msgstr "Мипмаппинг + аниз. фильтр" +msgstr "Мипмаппинг + анизотр. фильтр" #: builtin/mainmenu/tab_settings.lua msgid "No" @@ -708,11 +708,11 @@ msgstr "Без мипмаппинга" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "Подсветка блоков" +msgstr "Подсветка нод" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" -msgstr "Обводка блоков" +msgstr "Обводка нод" #: builtin/mainmenu/tab_settings.lua msgid "None" @@ -820,11 +820,11 @@ msgstr "Готово!" #: src/client/client.cpp msgid "Initializing nodes" -msgstr "Инициализация блоков" +msgstr "Инициализация нод" #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "Инициализация блоков..." +msgstr "Инициализация нод..." #: src/client/client.cpp msgid "Loading textures..." @@ -1158,7 +1158,7 @@ msgstr "Режим прохождения сквозь стены включён #: src/client/game.cpp msgid "Node definitions..." -msgstr "Описания блоков..." +msgstr "Описания нод..." #: src/client/game.cpp msgid "Off" @@ -1531,7 +1531,7 @@ msgstr "Пароли не совпадают!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "Зарегистрироваться и подключиться" +msgstr "Регистрация и подключение" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1545,9 +1545,9 @@ msgstr "" "Вы собираетесь впервые присоединиться к серверу под именем «%s».\n" "Если вы продолжите, на этом сервере будет создан новый аккаунт с вашими " "учётными данными.\n" -"Пожалуйста, введите пароль ещё раз и нажмите «Зарегистрироваться и " -"подключиться», чтобы подтвердить создание аккаунта, либо нажмите «Отмена», " -"чтобы прервать операцию." +"Пожалуйста, введите пароль ещё раз и нажмите «Регистрация и подключение», " +"чтобы подтвердить создание аккаунта, либо нажмите «Отмена», чтобы прервать " +"операцию." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1628,8 +1628,8 @@ msgstr "Клавиша уже используется" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" -"Сочетания клавиш (если это меню сломалось, удалите настройки из minetest." -"conf)" +"Привязки клавиш. (Если это меню сломается, удалите настройки из " +"minetest.conf)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" @@ -1693,7 +1693,7 @@ msgstr "Сквозь стены" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "По направлению взгляда" +msgstr "По наклону взгляда" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1773,7 +1773,7 @@ msgstr "" "со стандартными параметрами, для других ситуаций его нужно\n" "отредактировать.\n" "Диапазон примерно от -2 до 2. Умножьте на «масштаб», чтобы получить смещение " -"в блоках." +"в нодах." #: src/settings_translation_file.cpp msgid "" @@ -1785,7 +1785,7 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" -"(Х,Y,Z) шкала фрактала в блоках.\n" +"(Х,Y,Z) шкала фрактала в нодах.\n" "Фактический фрактальный размер будет в 2-3 раза больше.\n" "Эти числа могут быть очень большими, фракталу нет нужды заполнять мир.\n" "Увеличьте их, чтобы увеличить «масштаб» детали фрактала.\n" @@ -1921,7 +1921,7 @@ msgstr "Ускорение в воздухе" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "Ускорение свободного падения в узлах в секунду." +msgstr "Ускорение свободного падения в нодах в секунду." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -1951,7 +1951,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." -msgstr "Добавляет частицы при рытье блока." +msgstr "Добавляет частицы при раскопке ноды." #: src/settings_translation_file.cpp msgid "" @@ -2052,15 +2052,14 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" -"На этом расстоянии сервер будет агрессивно оптимизировать то, какие блоки " -"будут\n" -"отправлены клиентам.\n" +"На этом расстоянии сервер будет агрессивно оптимизировать то, какие\n" +"блоки будут отправлены клиентам.\n" "Малые значения могут увеличить производительность за счёт заметных\n" -"проблем отрисовки (некоторые фрагменты не будут отрисовываться под водой\n" -"и в пещерах, а иногда и на суше).\n" +"проблем визуализации (некоторые фрагменты не будут отрисовываться\n" +"под водой, в пещерах, а иногда и на суше).\n" "Установка этого значения больше, чем max_block_send_distance\n" "отключит эту оптимизацию.\n" -"Указывается в блоках карты (16 блоков)." +"Указывается в блоках карты (16 нод)." #: src/settings_translation_file.cpp msgid "Automatic forward key" @@ -2068,7 +2067,7 @@ msgstr "Клавиша авто-вперёд" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "Автоматически запрыгивать на одноблочные препятствия." +msgstr "Автоматически запрыгивать на препятствия высотой в одну ноду." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." @@ -2153,7 +2152,7 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Расстояние между камерой и плоскостью отсечения в узлах от 0 до 0.5.\n" +"Расстояние между камерой и плоскостью отсечения в нодах от 0 до 0.5.\n" "Большинству пользователей не потребуется менять этот параметр.\n" "Его увеличение может уменьшить количество артефактов на слабых графических " "процессорах.\n" @@ -2296,7 +2295,7 @@ msgstr "Ограничения моддинга на стороне клиент #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" -msgstr "Ограничение диапазона поиска от клиента" +msgstr "Ограничение диапазона клиентского поиска нод" #: src/settings_translation_file.cpp msgid "Climbing speed" @@ -2371,7 +2370,7 @@ msgstr "Подключение к внешнему медиасерверу" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." -msgstr "Соединяет стекло, если поддерживается блоком." +msgstr "Соединяет стекло, если поддерживается нодой." #: src/settings_translation_file.cpp msgid "Console alpha" @@ -3139,15 +3138,14 @@ msgid "" "From how far blocks are generated for clients, stated in mapblocks (16 " "nodes)." msgstr "" -"Насколько далеко фрагменты генерируются для клиентов. Указывается в " -"фрагментах (16 блоков)." +"Насколько далеко блоки генерируются для клиентов. Указывается в блоках карты " +"(16 нод)." #: src/settings_translation_file.cpp msgid "" "From how far blocks are sent to clients, stated in mapblocks (16 nodes)." msgstr "" -"С какого расстояния фрагменты отправляются клиентам, в фрагментах (16 " -"блоков)." +"С какого расстояния блоки отправляются клиентам, в блоках карты (16 нод)." #: src/settings_translation_file.cpp msgid "" @@ -3157,7 +3155,7 @@ msgid "" "to maintain active objects up to this distance in the direction the\n" "player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" -"Расстояние в блоках, на котором клиенты распознают объекты (16 узлов).\n" +"Расстояние в блоках карты, на котором клиенты распознают объекты (16 нод).\n" "\n" "Если указать значение более active_block_range, то сервер будет запоминать\n" "движущиеся объекты на этом расстоянии в направлении взгляда игрока.\n" @@ -3206,9 +3204,9 @@ msgid "" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" "Глобальные атрибуты генерации карт.\n" -"В картогенераторе v6 флаг 'decorations' не влияет на деревья и траву в " -"джунглях,\n" -"в остальных генераторах этот флаг контролирует все декорации." +"В картогенераторе v6 флаг «decorations» не влияет на деревья\n" +"и траву в джунглях, в остальных генераторах этот флаг\n" +"контролирует все декорации." #: src/settings_translation_file.cpp msgid "Gradient of light curve at maximum light level." @@ -3332,7 +3330,7 @@ msgid "" "in nodes per second per second." msgstr "" "Горизонтальное ускорение в воздухе при прыжке или падении\n" -"в узлах в секунду." +"в нодах в секунду." #: src/settings_translation_file.cpp msgid "" @@ -3340,7 +3338,7 @@ msgid "" "in nodes per second per second." msgstr "" "Горизонтальное и вертикальное ускорение в режиме \n" -"быстрого перемещения в узлах в секунду." +"быстрого перемещения в нодах в секунду." #: src/settings_translation_file.cpp msgid "" @@ -3348,7 +3346,7 @@ msgid "" "in nodes per second per second." msgstr "" "Горизонтальное и вертикальное ускорение на земле или при лазании\n" -"в узлах за секунду." +"в нодах за секунду." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3563,7 +3561,7 @@ msgid "" "This requires the \"noclip\" privilege on the server." msgstr "" "Если включено одновременно с режимом полёта, игрок может пролетать сквозь " -"твёрдые блоки.\n" +"твёрдые ноды.\n" "Требует наличие привилегии «noclip» на сервере." #: src/settings_translation_file.cpp @@ -3623,8 +3621,8 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" -"Если ограничение CSM для диапазона узлов включено, вызовы\n" -"get_node ограничиваются на это расстояние от игрока до узла." +"Если ограничение CSM для диапазона нод включено, вызовы\n" +"get_node ограничиваются на это расстояние от игрока до ноды." #: src/settings_translation_file.cpp msgid "" @@ -3668,7 +3666,7 @@ msgstr "Клавиша увеличения громкости" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "Начальная вертикальная скорость при прыжках в узлах в секунду." +msgstr "Начальная вертикальная скорость при прыжках в нодах в секунду." #: src/settings_translation_file.cpp msgid "" @@ -4605,7 +4603,7 @@ msgstr "Время между циклами выполнения модифик #: src/settings_translation_file.cpp msgid "Length of time between NodeTimer execution cycles" -msgstr "Время между циклами выполнения таймеров блоков" +msgstr "Время между циклами выполнения таймеров нод" #: src/settings_translation_file.cpp msgid "Length of time between active block management cycles" @@ -4661,7 +4659,8 @@ msgid "" "Only mapchunks completely within the mapgen limit are generated.\n" "Value is stored per-world." msgstr "" -"Предел генерации карты, в блоках, во всех шести направлениях от (0, 0, 0).\n" +"Предел генерации карты, в нодах, во всех шести направлениях, начиная от (0, " +"0, 0).\n" "Генерируются только куски карты, которые умещаются в заданном пределе " "полностью.\n" "Значение сохраняется отдельно для каждого мира." @@ -5202,7 +5201,7 @@ msgid "" "This value will be overridden when starting from the main menu." msgstr "" "Сетевой порт для прослушивания (UDP).\n" -"Этот параметр будет переопределён, если запускать сервер с главного меню." +"Этот параметр будет переопределён, если запустить сервер из главного меню." #: src/settings_translation_file.cpp msgid "New users need to input this password." @@ -5218,11 +5217,11 @@ msgstr "Клавиша прохождения сквозь стены" #: src/settings_translation_file.cpp msgid "Node highlighting" -msgstr "Подсветка блоков" +msgstr "Подсветка нод" #: src/settings_translation_file.cpp msgid "NodeTimer interval" -msgstr "Интервал обновления узлов" +msgstr "Интервал таймера нод" #: src/settings_translation_file.cpp msgid "Noises" @@ -5838,7 +5837,7 @@ msgid "" "recommended." msgstr "" "Размер кусков карты, выдаваемых картогенератором, указывается в блоках карты " -"(16 узлов).\n" +"(16 нод).\n" "ВНИМАНИЕ!: От изменения этого значения нет никакой пользы, а значение больше " "5\n" "может быть вредным.\n" @@ -5905,7 +5904,7 @@ msgstr "Скорость скрытной ходьбы" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "Скорость ходьбы украдкой в узлах в секунду." +msgstr "Скорость ходьбы украдкой в нодах в секунду." #: src/settings_translation_file.cpp msgid "Sound" @@ -6041,12 +6040,12 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" -"Текстуры блока можно выровнять либо относительно блока, либо мира.\n" +"Текстуры ноды можно выровнять либо относительно самой ноды, либо " +"относительно мира.\n" "Первый режим лучше подходит к таким вещам, как машины, мебель и т. д.,\n" "а во втором лестницы и микроблоки становятся более соответствующими среде.\n" "Однако это новая возможность, и её нельзя использовать на старых серверах,\n" -"данный параметр позволяет принудительно применять к определённым типам " -"блоков.\n" +"данный параметр позволяет принудительно применять к определённым типам нод.\n" "Замечание: этот режим ЭКСПЕРИМЕНТАЛЬНЫЙ и может работать ненадлежащим " "образом." @@ -6064,7 +6063,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "The depth of dirt or other biome filler node." -msgstr "Глубина грунта или иного узла-заполнителя." +msgstr "Глубина грунта или иной ноды-заполнителя." #: src/settings_translation_file.cpp msgid "" @@ -6107,7 +6106,7 @@ msgid "" "This should be configured together with active_object_range." msgstr "" "Радиус объёма блоков вокруг каждого игрока, в котором действуют\n" -"активные блоки, определённые в блоках карты (16 блоков).\n" +"активные блоки, определённые в блоках карты (16 нод).\n" "В активных блоках загружаются объекты и работает ABM.\n" "Также это минимальный диапазон, в котором обрабатываются активные объекты " "(мобы).\n" @@ -6143,7 +6142,7 @@ msgid "" "setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" "set to the nearest valid value." msgstr "" -"Сила глобального затенения узлов. Чем меньше, тем темнее,\n" +"Сила глобального затенения нод. Чем меньше, тем темнее,\n" "и наоборот. Возможные значения параметра - от 0.25 до 4.0\n" "включительно. Если значение находится вне этого диапазона,\n" "то оно будет округлено до ближайшего подходящего." @@ -6232,10 +6231,10 @@ msgid "" "This determines how long they are slowed down after placing or removing a " "node." msgstr "" -"Чтобы уменьшить лаг, передача фрагментов карты замедляется, когда игрок что-" -"то строит.\n" -"Этот параметр определяет, насколько она замедляется после размещения или " -"удаления блока." +"Чтобы уменьшить задержку, передача блоков карты замедляется, когда игрок что-" +"то\n" +"строит. Этот параметр определяет замедление после размещения или удаления " +"ноды." #: src/settings_translation_file.cpp msgid "Toggle camera mode key" @@ -6379,7 +6378,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Variation of maximum mountain height (in nodes)." -msgstr "Вариация максимальной высоты гор (в блоках)." +msgstr "Вариация максимальной высоты гор (в нодах)." #: src/settings_translation_file.cpp msgid "Variation of number of caves." @@ -6395,7 +6394,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Varies depth of biome surface nodes." -msgstr "Меняет глубину поверхностных блоков биома." +msgstr "Меняет глубину поверхностных нод биома." #: src/settings_translation_file.cpp msgid "" @@ -6411,7 +6410,7 @@ msgstr "Регулирует крутизну утёсов." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "Скорость вертикального лазания в узлах в секунду." +msgstr "Скорость вертикального лазания в нодах в секунду." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6427,7 +6426,7 @@ msgstr "Коэффициент покачивания" #: src/settings_translation_file.cpp msgid "View distance in nodes." -msgstr "Дальность отрисовки в блоках." +msgstr "Дальность отрисовки в нодах." #: src/settings_translation_file.cpp msgid "View range decrease key" @@ -6469,7 +6468,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "Скорость ходьбы и полёта в узлах в секунду." +msgstr "Скорость ходьбы и полёта в нодах в секунду." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6478,7 +6477,7 @@ msgstr "Скорость ходьбы" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" -"Скорость ходьбы, полёта и лазания в режиме быстрого перемещения в узлах в " +"Скорость ходьбы, полёта и лазания в режиме быстрого перемещения в нодах в " "секунду." #: src/settings_translation_file.cpp @@ -6491,7 +6490,7 @@ msgstr "Уровень поверхности воды мира." #: src/settings_translation_file.cpp msgid "Waving Nodes" -msgstr "Покачивание блоков" +msgstr "Покачивание нод" #: src/settings_translation_file.cpp msgid "Waving leaves" @@ -6526,7 +6525,7 @@ msgstr "" "Когда gui_scaling_filter установлен на true все изображения интерфейса " "должны быть\n" "отфильтрованы программно, но некоторые изображения генерируются напрямую\n" -"аппаратно (прим. render-to-texture для блоков в инвентаре)." +"аппаратно (прим. render-to-texture для нод в инвентаре)." #: src/settings_translation_file.cpp msgid "" @@ -6561,7 +6560,7 @@ msgstr "" "чёткое, но требует больше памяти. Рекомендуется значение 2. Установка этого\n" "значения выше 1 может не иметь видимого эффекта, если не включена \n" "билинейная, трилинейная или анизотропная фильтрация.\n" -"Также используется как размер текстуры базового блока для мирового\n" +"Также используется как размер базовой текстуры ноды для мирового\n" "автомасштабирования текстур." #: src/settings_translation_file.cpp @@ -6574,8 +6573,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" -"Определяет необходимость рассинхронизации анимации текстур блоков между " -"фрагментами." +"Определяет необходимость рассинхронизации анимации текстур нод между блоками " +"карты." #: src/settings_translation_file.cpp msgid "" @@ -6612,7 +6611,7 @@ msgstr "Ширина компонента начального размера о #: src/settings_translation_file.cpp msgid "Width of the selection box lines around nodes." -msgstr "Толщина обводки выделенных узлов." +msgstr "Толщина обводки выделенных нод." #: src/settings_translation_file.cpp msgid "" @@ -6646,7 +6645,7 @@ msgid "" "Warning: This option is EXPERIMENTAL!" msgstr "" "Выровненные по миру текстуры можно масштабировать так, чтобы они\n" -"охватывали несколько блоков. Но сервер может не отправить нужный\n" +"охватывали несколько нод. Но сервер может не отправить нужный\n" "масштаб, особенно если вы используете специально разработанный\n" "пакет текстур; с этим параметром клиент пытается определить масштаб\n" "автоматически на основании размера текстуры.\n" From 49dfbcfbc865bfff3dca39af62ea8a14a71e2130 Mon Sep 17 00:00:00 2001 From: Daniel Mancini Date: Fri, 6 Dec 2019 06:22:23 +0000 Subject: [PATCH 080/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.9% (1235 of 1274 strings) --- po/pt_BR/minetest.po | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index 21bec314a..e7328d3de 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2019-12-11 13:36+0000\n" +"Last-Translator: Daniel Mancini \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Você morreu" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Ocorreu um erro em um script Lua, como um mod:" +msgstr "Ocorreu um erro em um script Lua:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -121,9 +120,8 @@ msgid "Mod:" msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Dependências opcionais:" +msgstr "Nenhuma dependência (opcional)" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." From a87a86eb92aa21ba3c86c23cb0d1a3d4cc843d63 Mon Sep 17 00:00:00 2001 From: "ramon.venson" Date: Wed, 11 Dec 2019 01:02:12 +0000 Subject: [PATCH 081/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.9% (1235 of 1274 strings) --- po/pt_BR/minetest.po | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index e7328d3de..28062c769 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" "PO-Revision-Date: 2019-12-11 13:36+0000\n" -"Last-Translator: Daniel Mancini \n" +"Last-Translator: ramon.venson \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -137,9 +137,8 @@ msgid "No modpack description provided." msgstr "Nenhuma descrição de modpack disponível." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Dependências opcionais:" +msgstr "Sem dependências opcionais" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -1876,7 +1875,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "Ruído 3D que determina o número de cavernas por pedaço de mapa." #: src/settings_translation_file.cpp msgid "" @@ -1936,7 +1935,7 @@ msgstr "Aceleração no ar" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Aceleração da gravidade, em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2443,7 +2442,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Controla a velocidade de afundamento em líquidos." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2506,9 +2505,8 @@ msgid "Debug info toggle key" msgstr "Tecla para alternar modo de Depuração" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Limite do ruído de deserto" +msgstr "Limite de tamanho do arquivo de log de depuração" #: src/settings_translation_file.cpp msgid "Debug log level" From 30fdfd9dede66408d943d7a800e18d4c0c6bd5bb Mon Sep 17 00:00:00 2001 From: Tirifto Date: Sun, 8 Dec 2019 01:17:50 +0000 Subject: [PATCH 082/624] Translated using Weblate (Esperanto) Currently translated at 94.9% (1209 of 1274 strings) --- po/eo/minetest.po | 832 ++++++++++++++++++++++++++++------------------ 1 file changed, 503 insertions(+), 329 deletions(-) diff --git a/po/eo/minetest.po b/po/eo/minetest.po index c53d4181f..4084d1426 100644 --- a/po/eo/minetest.po +++ b/po/eo/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Esperanto (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2019-12-11 13:36+0000\n" +"Last-Translator: Tirifto \n" "Language-Team: Esperanto \n" "Language: eo\n" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Vi mortis" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Eraro okazis en Lua-skripto, kiel ekzemple modifaĵo:" +msgstr "Eraris Lua-skripto:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -111,35 +110,32 @@ msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"Malsukcesis ŝalti modifaĵon « $1 », ĉar ĝi enhavas malpermesatajn signojn. " -"Nur signoj a–z kaj 0–9 estas permesataj." +"Malsukcesis ŝalti modifaĵon «$1», ĉar ĝi enhavas malpermesatajn signojn. Nur " +"signoj a–z kaj 0–9 estas permesataj." #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" msgstr "Modifaĵo:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Malnepraj dependaĵoj:" +msgstr "Neniuj (malnepraj) dependaĵoj" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Neniu priskribo de ludo estas donita." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Sen dependaĵoj." +msgstr "Sen dependaĵoj" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Neniu priskrib ode modifaĵaro estas donita." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Malnepraj dependaĵoj:" +msgstr "Neniuj malnepraj dependaĵoj" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -219,7 +215,7 @@ msgstr "Ĝisdatigi" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "Mondo kun nomo « $1 » jam ekzistas" +msgstr "Mondo kun nomo «$1» jam ekzistas" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -239,7 +235,7 @@ msgstr "Ludo" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" -msgstr "Mondogenerilo" +msgstr "Mondestigilo" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -252,8 +248,7 @@ msgstr "Fontnombro" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The minimal development test is meant for developers." -msgstr "" -"Averto: La minimuma programista testo estas intencita por programistoj." +msgstr "Averto: La plejeta programista testo estas intencita por programistoj." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -265,7 +260,7 @@ msgstr "Vi havas neniujn instalitajn ludojn." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "Ĉu vi certe volas forigi « $1 »?" +msgstr "Ĉu vi certe volas forigi «$1»?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua @@ -275,15 +270,15 @@ msgstr "Forigi" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "pkgmgr: malskucesis forigi « $1 »" +msgstr "pkgmgr: malskucesis forigi «$1»" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "pkgmgr: malvalida dosiervojo « $1 »" +msgstr "pkgmgr: malvalida dosiervojo «$1»" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "Ĉu forigi mondon « $1 »?" +msgstr "Ĉu forigi mondon «$1»?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" @@ -355,7 +350,7 @@ msgstr "Bonvolu enigi validan nombron." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Restarigi normon" +msgstr "Restarigi pravaloron" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" @@ -436,15 +431,15 @@ msgstr "Instali modifaĵon: Ne povas trovi veran nomon de modifaĵo por: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Instali modifaĵon: Ne povas trovi ĝustan dosierujan nomon por modifaro $1" +"Instali modifaĵon: Ne povas trovi ĝustan dosierujan nomon por modifaĵaro $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "Instalo: Nesubtenata dosierspeco « $1 » aŭ rompita arĥivo" +msgstr "Instalo: Nesubtenata dosierspeco «$1» aŭ rompita arĥivo" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "Instali: dosiero: « $1 »" +msgstr "Instali: dosiero: «$1»" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" @@ -540,7 +535,7 @@ msgstr "Agordi" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" -msgstr "Kreiva reĝimo" +msgstr "Krea reĝimo" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Enable Damage" @@ -596,7 +591,7 @@ msgstr "Konekti" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative mode" -msgstr "Kreiva reĝimo" +msgstr "Krea reĝimo" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Damage enabled" @@ -616,7 +611,7 @@ msgstr "Aliĝi al ludo" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" -msgstr "Nomo / Pasvorto" +msgstr "Nomo / Pasvorto" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Ping" @@ -652,7 +647,7 @@ msgstr "Glatigo:" #: builtin/mainmenu/tab_settings.lua msgid "Are you sure to reset your singleplayer world?" -msgstr "Ĉu vi certas, ke vi volas rekomenci vian unuopan mondon?" +msgstr "Ĉu vi certas, ke vi volas rekomenci vian mondon por unu ludanto?" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" @@ -680,15 +675,15 @@ msgstr "Ŝikaj folioj" #: builtin/mainmenu/tab_settings.lua msgid "Generate Normal Maps" -msgstr "Generi Normalmapojn" +msgstr "Estigi Normalmapojn" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" -msgstr "Mipmapo" +msgstr "Etmapo" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" -msgstr "Mipmapo + Malizotropa filtrilo" +msgstr "Etmapo + Neizotropa filtrilo" #: builtin/mainmenu/tab_settings.lua msgid "No" @@ -700,11 +695,11 @@ msgstr "Neniu filtrilo" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" -msgstr "Neniu Mipmapo" +msgstr "Neniu Etmapo" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "Nodaĵa emfazado" +msgstr "Emfazado de monderoj" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" @@ -732,7 +727,7 @@ msgstr "Partikloj" #: builtin/mainmenu/tab_settings.lua msgid "Reset singleplayer world" -msgstr "Rekomenci unuopan mondon" +msgstr "Rekomenci mondon por unu ludanto" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" @@ -783,9 +778,8 @@ msgid "Waving Leaves" msgstr "Ondantaj foliaĵoj" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Ondantaj monderoj" +msgstr "Ondantaj fluaĵoj" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -805,7 +799,7 @@ msgstr "Ĉefmenuo" #: builtin/mainmenu/tab_simple_main.lua msgid "Start Singleplayer" -msgstr "Komenci unuopan ludon" +msgstr "Komenci ludon por unu" #: src/client/client.cpp msgid "Connection timed out." @@ -853,7 +847,7 @@ msgstr "Neniu mondo estas elektita kaj neniu adreso donita. Nenio fareblas." #: src/client/clientlauncher.cpp msgid "Player name too long." -msgstr "Ludula nomo estas tro longa." +msgstr "Nomo de ludanto estas tro longa." #: src/client/clientlauncher.cpp msgid "Please choose a name!" @@ -913,11 +907,11 @@ msgstr "– Nomo de servilo: " #: src/client/game.cpp msgid "Automatic forward disabled" -msgstr "Memfara pluigo malŝaltita" +msgstr "Memaga pluigo malŝaltita" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "Memfara pluigo ŝaltita" +msgstr "Memaga pluigo ŝaltita" #: src/client/game.cpp msgid "Camera update disabled" @@ -976,12 +970,12 @@ msgstr "" "– %s: moviĝi dekstren\n" "– %s: salti/supreniri\n" "– %s: kaŝiri/malsupreniri\n" -"– %s: demeti objekton\n" -"– %s: objektujo\n" +"– %s: demeti portaĵojn\n" +"– %s: portaĵujo\n" "– Muso: turniĝi/rigardi\n" "– Musklavo maldekstra: fosi/bati\n" "– Musklavo dekstra: meti/uzi\n" -"– Musrado: elekti objekton\n" +"– Musrado: elekti portaĵon\n" "– %s: babili\n" #: src/client/game.cpp @@ -994,15 +988,15 @@ msgstr "Kreante servilon…" #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "Sencimigaj informoj kaj profilila grafikaĵo kaŝitaj" +msgstr "Erarserĉaj informoj kaj profilila grafikaĵo kaŝitaj" #: src/client/game.cpp msgid "Debug info shown" -msgstr "Sencimigaj informoj montritaj" +msgstr "Erarserĉaj informoj montritaj" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "Sencimigaj informoj, profilila grafikaĵo, kaj dratostaro kaŝitaj" +msgstr "Erarserĉaj informoj, profilila grafikaĵo, kaj dratostaro kaŝitaj" #: src/client/game.cpp msgid "" @@ -1024,13 +1018,13 @@ msgstr "" "- unuobla tuŝeto: aktivigi butonon\n" "- duobla tuŝeto: meti/uzi\n" "- ŝova fingro: rigardi\n" -"Videbla menuo/objektujo:\n" +"Videbla menuo/portaĵujo:\n" "- duobla tuŝeto (ekstere):\n" " -->fermi\n" -"- tuŝi objektaron, tuŝi objektingon:\n" -" --> movi objektaron\n" +"- tuŝi portaĵaron, tuŝi portaĵingon:\n" +" --> movi portaĵaron\n" "- tuŝi kaj tiri, tuŝeti per dua fingro\n" -" --> meti unu objekton en objektingon\n" +" --> meti unu portaĵon en portaĵingon\n" #: src/client/game.cpp msgid "Disabled unlimited viewing range" @@ -1058,7 +1052,7 @@ msgstr "Rapidega reĝimo ŝaltita" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Rapidega reĝimo ŝaltita (mankas rajto « rapidegi »)" +msgstr "Rapidega reĝimo ŝaltita (mankas rajto «rapidegi»)" #: src/client/game.cpp msgid "Fly mode disabled" @@ -1070,7 +1064,7 @@ msgstr "Fluga reĝimo ŝaltita" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Fluga reĝimo ŝaltita (mankas rajto « flugi »)" +msgstr "Fluga reĝimo ŝaltita (mankas rajto «flugi»)" #: src/client/game.cpp msgid "Fog disabled" @@ -1150,7 +1144,7 @@ msgstr "Trapasa reĝimo ŝaltita" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Trapasa reĝimo ŝaltita (mankas rajto « trapasi »)" +msgstr "Trapasa reĝimo ŝaltita (mankas rajto «trapasi»)" #: src/client/game.cpp msgid "Node definitions..." @@ -1190,7 +1184,7 @@ msgstr "Malŝaltiĝante…" #: src/client/game.cpp msgid "Singleplayer" -msgstr "Unuopa ludo" +msgstr "Ludo por unu" #: src/client/game.cpp msgid "Sound Volume" @@ -1212,7 +1206,7 @@ msgstr "Vidodistanco agordita al %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "Vidodistanco je la plejgrando: %d" +msgstr "Vidodistanco plejgrandas: %d" #: src/client/game.cpp #, c-format @@ -1530,7 +1524,7 @@ msgid "Register and Join" msgstr "Registriĝi kaj aliĝi" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1538,10 +1532,10 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Ni estas aliĝonta al la servilo je %1$s kun la nomo « %2$s » unuafoje. Se vi " -"daŭrigos, nova konto kreiĝos en la servilo per viaj salutiloj.\n" -"Bonvolu retajpi vian pasvorton kaj klaki al « Registriĝi kaj aliĝi » por " -"konfirmi la kreon de konto, aŭ klaku al « Nuligi » por ĉesigi." +"Vi estas aliĝonta al ĉi tiu servilo kun la nomo «%s» unuafoje.\n" +"Se vi pluigos, nova konto kun viaj salutiloj registriĝos ĉe la servilo.\n" +"Bonvolu retajpi vian pasvorton kaj klaki al «Registriĝi kaj aliĝi» por " +"konfirmi kreon de konto, aŭ al «Nuligi» por ĉesigi." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1549,7 +1543,7 @@ msgstr "Daŭrigi" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "« Speciala » = malsupreniri" +msgstr "«Speciala» = malsupreniri" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" @@ -1557,7 +1551,7 @@ msgstr "Memirado" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "Memfara saltado" +msgstr "Memaga saltado" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" @@ -1634,11 +1628,11 @@ msgstr "Silentigi" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" -msgstr "Sekva objekto" +msgstr "Sekva portaĵo" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" -msgstr "Antaŭa objekto" +msgstr "Antaŭa portaĵo" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" @@ -1685,9 +1679,8 @@ msgid "Toggle noclip" msgstr "Baskuligi trapasan reĝimon" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Baskuligi babilan protokolon" +msgstr "Baskuligi celilsekvadon" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1743,8 +1736,8 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" -"(Android) Uzi virtualan stirstangon por agigi la butonon « aux ».\n" -"Se ŝaltita, virtuala stirstango tuŝetos la butonon « aux » ankaŭ ekster la " +"(Android) Uzi virtualan stirstangon por agigi la butonon «aux».\n" +"Se ŝaltita, virtuala stirstango tuŝetos la butonon «aux» ankaŭ ekster la " "ĉefa ringo." #: src/settings_translation_file.cpp @@ -1759,7 +1752,7 @@ msgid "" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" "(X,Y,Z) deŝovo de fraktalo for de la centro de la mondo en unuoj\n" -"de « scale ».\n" +"de «scale».\n" "Utilas por movo de volata punkto proksimen al (0, 0) por krei taŭgan\n" "naskiĝejon, aŭ por permeso « zomi » al volata punkto per pligrandigo\n" "de la skalo.\n" @@ -1782,7 +1775,7 @@ msgstr "" "La vera grando de la fraktalo estos du aŭ trioble pli granda.\n" "Ĉi tiuj nombroj povas esti tre grandaj; la fraktalo ne devas\n" "nepre engrandi la mondon.\n" -"Pligrandigu ĉi tiujn por « zomi » al la detaloj de la fraktalo.\n" +"Pligrandigu ĉi tiujn por «zomi» al la detaloj de la fraktalo.\n" "La normo estas vertikale ŝrumpita formo taŭga por insulo;\n" "egaligu ĉiujn tri nombrojn por akiri la krudan formon." @@ -1859,7 +1852,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D-bruo, kiu determinas la nombron de forgeskeloj en mondoparto." #: src/settings_translation_file.cpp msgid "" @@ -1883,7 +1876,7 @@ msgstr "" "– sidebyside: dividi ekranon vertikale.\n" "– crossview: krucokula 3d-o.\n" "– pageflip: kvarbufra 3d-o.\n" -"Rimarku, ke la reĝimo « interlaced » postulas ŝaltitajn ombrigilojn." +"Rimarku, ke la reĝimo «interlaced» postulas ŝaltitajn ombrigilojn." #: src/settings_translation_file.cpp msgid "" @@ -1915,7 +1908,7 @@ msgstr "Akcelo en aero" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Akcelo de pezforto, en monderoj sekunde sekunde." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2053,21 +2046,21 @@ msgstr "" "Malgrandaj valoroj povas multe plibonigi efikecon, je la kosto de videblaj\n" "bildigaj eraroj (iuj monderoj ne bildiĝos sub akvo kaj en kavernoj, kaj iam\n" "eĉ ne surtere).\n" -"Valoro pli granda ol tiu de « max_block_send_distance » malŝaltas ĉi tiun\n" +"Valoro pli granda ol tiu de «max_block_send_distance» malŝaltas ĉi tiun\n" "plibonigon.\n" -"Donita en mapblokoj (16 monderoj)." +"Donita en mondopecoj (16 monderoj)." #: src/settings_translation_file.cpp msgid "Automatic forward key" -msgstr "Memfare antaŭen" +msgstr "Memage antaŭen" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "Memfare salti unumonderajn barojn." +msgstr "Memage salti unumonderajn barojn." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "Memfare raporti al la listo de serviloj." +msgstr "Memage raporti al la listo de serviloj." #: src/settings_translation_file.cpp msgid "Autosave screen size" @@ -2075,7 +2068,7 @@ msgstr "Memori grandecon de ekrano" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "Reĝimo de memfara skalado" +msgstr "Reĝimo de memaga skalado" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2148,6 +2141,10 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"Distanco de vidpunkto «proksime tonda ebeno» en monderoj, inter 0 kaj 0.5.\n" +"Plejparto de uzantoj ne bezonos ĉi tion ŝanĝi.\n" +"Plialtigo povas malpliigi misbildojn por malfortaj grafiktraktiloj.\n" +"0.1 = Norma, 0.25 = Bona valoro por malfortaj tabulkomputiloj." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2218,6 +2215,12 @@ msgid "" "be\n" "necessary for smaller screens." msgstr "" +"Ŝanĝoj al fasado de la ĉefmenuo:\n" +"- full (plena): Pluraj mondoj por unu ludanto, elektilo de ludo, " +"teksturaro, ktp.\n" +"- simple (simpla): Unu mondo por unu ludanto, neniuj elektiloj de ludo aŭ " +"teksturaro.\n" +"Povus esti bezona por malgrandaj ekranoj." #: src/settings_translation_file.cpp msgid "Chat key" @@ -2228,9 +2231,8 @@ msgid "Chat message count limit" msgstr "Supra limo de babilaj mesaĝoj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Plejlongo de babilaj mesaĝoj" +msgstr "Formato de babilaj mesaĝoj" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2319,9 +2321,9 @@ msgid "" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" "Diskomita listo de etikedoj, kies havantojn kaŝi en la datena deponejo.\n" -"« nonfree » povas identigi kaj kaŝi pakaĵojn, kiuj ne estas liberaj laŭ la " +"«nonfree» povas identigi kaj kaŝi pakaĵojn, kiuj ne estas liberaj laŭ la " "difino\n" -"de « Free Software Foundation » (Fondaĵo por libera programaro).\n" +"de «Free Software Foundation» (Fondaĵo por libera programaro).\n" "Vi ankaŭ povas specifi aĝtaksojn de l’ enhavo.\n" "Ĉi tiuj etikedoj ne dependas de versioj de Minetest, do vi ĉiam povas " "rigardi\n" @@ -2343,7 +2345,7 @@ msgstr "" "Diskomita listo de fidataj modifaĵoj, kiuj rajtas aliri nesekurajn " "funkciojn\n" "eĉ kiam modifaĵa sekureco estas ŝaltita (per " -"« request_insecure_environment() »)." +"«request_insecure_environment()»)." #: src/settings_translation_file.cpp msgid "Command key" @@ -2375,7 +2377,7 @@ msgstr "Alteco de konzolo" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" -msgstr "" +msgstr "Malpermesitaj flagoj de ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2409,7 +2411,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Regas rapidon de profundiĝo en fluaĵoj." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2425,7 +2427,7 @@ msgid "" "Is a noise offset added to the 'mgv7_np_mountain' noise value." msgstr "" "Regas densecon de montecaj fluginsuloj.\n" -"Temas pri deŝovo de la brua valoro « np_mountain »." +"Temas pri deŝovo de la brua valoro «np_mountain»." #: src/settings_translation_file.cpp msgid "Controls width of tunnels, a smaller value creates wider tunnels." @@ -2470,16 +2472,15 @@ msgstr "Akreco de mallumo" #: src/settings_translation_file.cpp msgid "Debug info toggle key" -msgstr "Sencimiga baskula klavo" +msgstr "Baskula klavo de erarserĉaj informoj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "Sojlo de dezerta bruo" +msgstr "Sojlo de grandeco de protokola dosiero" #: src/settings_translation_file.cpp msgid "Debug log level" -msgstr "Sencimiga protokola nivelo" +msgstr "Erarserĉa protokola nivelo" #: src/settings_translation_file.cpp msgid "Dec. volume key" @@ -2487,7 +2488,7 @@ msgstr "Mallaŭtiga klavo" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistence to movement." -msgstr "" +msgstr "Malpliigu ĉi tion por pliigi reziston de fluaĵoj al movo." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2499,7 +2500,7 @@ msgstr "Implicita akcelo" #: src/settings_translation_file.cpp msgid "Default game" -msgstr "Implicita ludo" +msgstr "Norma ludo" #: src/settings_translation_file.cpp msgid "" @@ -2580,9 +2581,8 @@ msgid "Defines the base ground level." msgstr "Difinas la bazan ternivelon." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Difinas la bazan ternivelon." +msgstr "Difinas la profundecon de la rivera akvovojo." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2590,14 +2590,12 @@ msgstr "" "Difinas maksimuman distancon de ludanta moviĝo en monderoj (0 = senlima)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Difinas vastan sturkturon de akvovojo." +msgstr "Difinas larĝecon de la rivera akvovojo." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Difinas zonojn kie arboj donas pomojn." +msgstr "Difinas larĝecon de la rivera valo." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2629,6 +2627,9 @@ msgid "" "Deprecated, define and locate cave liquids using biome definitions instead.\n" "Y of upper limit of lava in large caves." msgstr "" +"Evitinda, difini kaj trovi kavernajn fluaĵojn anstataŭe per klimataj " +"difinoj\n" +"Y de supra limo de lafo en grandaj kavernoj." #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2651,12 +2652,11 @@ msgid "Desert noise threshold" msgstr "Sojlo de dezerta bruo" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" -"Dezertoj estiĝas kiam ‹np_biome› superas ĉi tiun valoron.\n" +"Dezertoj estiĝas kiam «np_biome» superas ĉi tiun valoron.\n" "Kiam la nova klimata sistemo aktivas, ĉi tio estas malatentata." #: src/settings_translation_file.cpp @@ -2693,7 +2693,7 @@ msgstr "Demeta klavo" #: src/settings_translation_file.cpp msgid "Dump the mapgen debug information." -msgstr "Ŝuti la sencimigajn informojn de « mapgen »." +msgstr "Ŝuti la erarserĉajn informojn de «mapgen»." #: src/settings_translation_file.cpp msgid "Dungeon maximum Y" @@ -2701,12 +2701,11 @@ msgstr "Maksimuma Y de forgeskelo" #: src/settings_translation_file.cpp msgid "Dungeon minimum Y" -msgstr "Minimuma Y de forgeskeloj" +msgstr "Plejeta Y de forgeskeloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Minimuma Y de forgeskeloj" +msgstr "Bruo de forgeskeloj" #: src/settings_translation_file.cpp msgid "" @@ -2726,7 +2725,7 @@ msgstr "Ŝalti konzolan fenestron" #: src/settings_translation_file.cpp msgid "Enable creative mode for new created maps." -msgstr "Ŝalti krea reĝimon por novaj mapoj." +msgstr "Ŝalti krean reĝimon por novaj mapoj." #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -2758,7 +2757,7 @@ msgid "" "If disabled, new account will be registered automatically." msgstr "" "Ŝalti konfirmon de registriĝo dum konekto al servilo.\n" -"Se ĝi estas malŝaltita, nova konto registriĝos memfare." +"Se ĝi estas malŝaltita, nova konto registriĝos memage." #: src/settings_translation_file.cpp msgid "" @@ -2806,11 +2805,11 @@ msgid "" "Ignored if bind_address is set." msgstr "" "Ŝalti/malŝalti ruladon de IPv6-a servilo.\n" -"Ignorita, se « bindi_adreson » estas agordita." +"Ignorita, se «bindi_adreson» estas agordita." #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." -msgstr "Ŝaltas movbildojn en objektujo." +msgstr "Ŝaltas movbildojn en portaĵujo." #: src/settings_translation_file.cpp msgid "" @@ -2821,12 +2820,12 @@ msgid "" msgstr "" "Ŝaltas mapadon de elstaraĵoj por teksturoj. Normalmapoj devas veni kun la " "teksturaro,\n" -"aŭ estiĝi memfare.\n" +"aŭ estiĝi memage.\n" "Bezonas ŝaltitajn ombrigilojn." #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." -msgstr "Ŝaltas kaŝmemoradon de maŝoj turnitaj per « facedir »." +msgstr "Ŝaltas kaŝmemoradon de maŝoj turnitaj per «facedir»." #: src/settings_translation_file.cpp msgid "Enables filmic tone mapping" @@ -2854,11 +2853,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Engine profiling data print interval" -msgstr "" +msgstr "Intervalo inter presoj de profilaj datenoj de la motoro" #: src/settings_translation_file.cpp msgid "Entity methods" -msgstr "" +msgstr "Metodoj de estoj" #: src/settings_translation_file.cpp msgid "" @@ -2921,12 +2920,12 @@ msgid "" "Fast movement (via the \"special\" key).\n" "This requires the \"fast\" privilege on the server." msgstr "" -"Rapida moviĝo (per la klavo « speciala »).\n" -"Ĉi tio postulas la rajton « rapidi » en la servilo." +"Rapida moviĝo (per la klavo «speciala»).\n" +"Ĉi tio postulas la rajton «rapidegi» en la servilo." #: src/settings_translation_file.cpp msgid "Field of view" -msgstr "Vidokampo" +msgstr "Vidamplekso" #: src/settings_translation_file.cpp msgid "Field of view in degrees." @@ -2940,7 +2939,7 @@ msgid "" msgstr "" "Dosiero en client/serverlist/ kiu enhavas viajn ŝatatajn servilojn " "montritajn en la\n" -"langeto «Plurludanta»." +"langeto «Ludo por pluraj»." #: src/settings_translation_file.cpp msgid "Filler depth" @@ -2955,7 +2954,6 @@ msgid "Filmic tone mapping" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Filtered textures can blend RGB values with fully-transparent neighbors,\n" "which PNG optimizers usually discard, sometimes resulting in a dark or\n" @@ -2964,9 +2962,9 @@ msgid "" msgstr "" "Filtritaj teksturoj povas intermiksi RVB valorojn kun plene travideblaj\n" "apud-bilderoj, kiujn PNG bonigiloj kutime forigas, farante helan aŭ\n" -"malhelan limon al la travideblaj teksturoj. Ŝalti ĉi tiun filtrilon por " +"malhelan limon al la travideblaj teksturoj. Ŝaltu ĉi tiun filtrilon por " "ĝustigi\n" -"tion legante teksturojn." +"tion dum legado de teksturoj." #: src/settings_translation_file.cpp msgid "Filtering" @@ -3063,6 +3061,8 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Formato de babilaj mesaĝoj de ludantoj. La jenaj tekstĉenoj estas validaj\n" +"lokokupiloj: @name, @message, @timestamp (malnepra)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3070,35 +3070,35 @@ msgstr "Dosierformo de ekrankopioj." #: src/settings_translation_file.cpp msgid "Formspec Default Background Color" -msgstr "" +msgstr "Implicata fonkoloro de fenestroj" #: src/settings_translation_file.cpp msgid "Formspec Default Background Opacity" -msgstr "" +msgstr "Implicata fona netravidebleco de fenestroj" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" -msgstr "" +msgstr "Fonkoloro de tutekranaj fenestroj" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" -msgstr "" +msgstr "Fona netravidebleco de tutekrana fenestro" #: src/settings_translation_file.cpp msgid "Formspec default background color (R,G,B)." -msgstr "" +msgstr "Implicata fonkoloro de fenestroj (R,V,B)." #: src/settings_translation_file.cpp msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" +msgstr "Implicata netravidebleco de fenestroj (inter 0 kaj 255)." #: src/settings_translation_file.cpp msgid "Formspec full-screen background color (R,G,B)." -msgstr "" +msgstr "Fonkoloro de tutekranaj fenestroj (R,V,B)." #: src/settings_translation_file.cpp msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" +msgstr "Fona netravidebleco de tutekranaj fenestroj (inter 0 kaj 255)." #: src/settings_translation_file.cpp msgid "Forward key" @@ -3119,21 +3119,20 @@ msgstr "Ono de la videbla distanco, ekde kiu nebulo bildiĝas" #: src/settings_translation_file.cpp msgid "FreeType fonts" -msgstr "Tiparoj « FreeType »" +msgstr "Tiparoj «FreeType»" #: src/settings_translation_file.cpp msgid "" "From how far blocks are generated for clients, stated in mapblocks (16 " "nodes)." msgstr "" -"Maksimuma distanco, kie monderoj aperas por klientoj, mapbloke (po 16 " -"monderoj)." +"De kia distanco monderoj aperas por klientoj, mondopece (po 16 monderoj)." #: src/settings_translation_file.cpp msgid "" "From how far blocks are sent to clients, stated in mapblocks (16 nodes)." msgstr "" -"De kiu distanco monderoj sendiĝas al klinentoj, mapbloke (po 16 monderoj)." +"De kia distanco monderoj sendiĝas al klinentoj, mondopece (po 16 monderoj)." #: src/settings_translation_file.cpp msgid "" @@ -3143,8 +3142,7 @@ msgid "" "to maintain active objects up to this distance in the direction the\n" "player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" -"Ekde kia malproksimo klientoj ekkonas objektojn, en mapblokoj (16 " -"monderoj).\n" +"De kia distanco klientoj ekkonas objektojn, en mondopecoj (16 monderoj).\n" "\n" "Agordo pli alta ol « active_block_range » ankaŭ kaŭzos, ke la servilo tenos\n" "aktivajn objektojn ĝis ĉi tiu distanco, en la direkto, kien la ludulo " @@ -3181,11 +3179,11 @@ msgstr "Helĝustigo" #: src/settings_translation_file.cpp msgid "Generate normalmaps" -msgstr "Generi normalmapojn" +msgstr "Estigi normalmapojn" #: src/settings_translation_file.cpp msgid "Global callbacks" -msgstr "" +msgstr "Mallokaj revokoj" #: src/settings_translation_file.cpp msgid "" @@ -3200,7 +3198,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Gradient of light curve at minimum light level." -msgstr "" +msgstr "Transiro de luma kurbo je plejeta lumnivelo." #: src/settings_translation_file.cpp msgid "Graphics" @@ -3224,11 +3222,11 @@ msgstr "HTTP-modifaĵoj" #: src/settings_translation_file.cpp msgid "HUD scale factor" -msgstr "Skala koeficiento por travida interfaco" +msgstr "Skala koeficiento por travida fasado" #: src/settings_translation_file.cpp msgid "HUD toggle key" -msgstr "Baskula klavo por travida interfaco" +msgstr "Baskula klavo por travida fasado" #: src/settings_translation_file.cpp msgid "" @@ -3237,6 +3235,11 @@ msgid "" "- log: mimic and log backtrace of deprecated call (default for debug).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" +"Traktado de evitindaj Lua-API-vokoj:\n" +"- hereda: (provi) imiti la malnovan konduton (norma por eldono).\n" +"- protokola: imiti kaj protokoli respuron de evitindaj vokoj (norma por " +"erarserĉado).\n" +"- erara: ĉesigi je evitinda voko (proponata al evoluigistoj de modifaĵoj)." #: src/settings_translation_file.cpp msgid "" @@ -3246,6 +3249,10 @@ msgid "" "call).\n" "* Instrument the sampler being used to update the statistics." msgstr "" +"Ekzamenigi la profililon per ĝi mem:\n" +"* Ekzameni malplenan funkcion.\n" +"Tio prikalkulos la ekstron aldonatan de ekzamenado (+1 voko de funkcio).\n" +"* Ekzameni la specimenilon uzatan por ĝisdatigo de la statistiko." #: src/settings_translation_file.cpp msgid "Heat blend noise" @@ -3269,7 +3276,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "High-precision FPU" -msgstr "" +msgstr "Preciza glitkoma datentraktilo (FPU)" #: src/settings_translation_file.cpp msgid "Hill steepness" @@ -3297,33 +3304,39 @@ msgstr "Bruo de monteteco 4" #: src/settings_translation_file.cpp msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" +msgstr "Hejmpaĝo de la servilo, montrota en la listo de serviloj." #: src/settings_translation_file.cpp msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Horizontala akcelo en aero dum saltado aŭ falado,\n" +"en monderoj sekunde sekunde." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Horizontala kaj vertikala akcelo en rapida reĝimo,\n" +"en monderoj sekunde sekunde." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Horizontala kaj vertikala akcelo sur tero aŭ dum grimpado,\n" +"en monderoj sekunde sekunde." #: src/settings_translation_file.cpp msgid "Hotbar next key" -msgstr "Sekva objekto en fulmobreto" +msgstr "Sekva portaĵo en fulmobreto" #: src/settings_translation_file.cpp msgid "Hotbar previous key" -msgstr "Antaŭa objekto en fulmobreto" +msgstr "Antaŭa portaĵo en fulmobreto" #: src/settings_translation_file.cpp msgid "Hotbar slot 1 key" @@ -3462,7 +3475,7 @@ msgid "" "How much the server will wait before unloading unused mapblocks.\n" "Higher value is smoother, but will use more RAM." msgstr "" -"Kioman tempon la servilo atendos antaŭ delasi neuzatajn mapblokojn.\n" +"Kioman tempon la servilo atendos antaŭ delasi neuzatajn mondopecojn.\n" "Pli alta valoro estas pli glata, sed uzos pli da tujmemoro." #: src/settings_translation_file.cpp @@ -3471,7 +3484,7 @@ msgstr "Kiel larĝajn fari riverojn." #: src/settings_translation_file.cpp msgid "Humidity blend noise" -msgstr "" +msgstr "Bruo de intermiksado de malsekeco" #: src/settings_translation_file.cpp msgid "Humidity noise" @@ -3479,7 +3492,7 @@ msgstr "Bruo de malsekeco" #: src/settings_translation_file.cpp msgid "Humidity variation for biomes." -msgstr "" +msgstr "Variado de malsekeco por klimatoj." #: src/settings_translation_file.cpp msgid "IPv6" @@ -3498,6 +3511,8 @@ msgid "" "If FPS would go higher than this, limit it by sleeping\n" "to not waste CPU power for no benefit." msgstr "" +"Se filmeroj sekunde superas ĉi tion, limigu ilin per dormo,\n" +"por ne malŝpari vane potencon de datentraktilo." #: src/settings_translation_file.cpp msgid "" @@ -3505,6 +3520,8 @@ msgid "" "are\n" "enabled." msgstr "" +"Malŝaltite, postulas uzon de la «speciala» klavo se ambaŭ la fluga kaj\n" +"la rapida reĝimoj estas ŝaltitaj." #: src/settings_translation_file.cpp msgid "" @@ -3514,6 +3531,10 @@ msgid "" "invisible\n" "so that the utility of noclip mode is reduced." msgstr "" +"Je ŝalto, servilo elektos postkaŝitajn mondopecojn laŭ loko de okuloj\n" +"de la ludanto. Tio povas malpliigi la nombron de mondopecoj sendotaj\n" +"al la kliento je 50–80%. La kliento ne plu ricevos nevideblajn, tiel ke la\n" +"utileco de trapasa reĝimo malpliiĝos." #: src/settings_translation_file.cpp msgid "" @@ -3529,8 +3550,7 @@ msgid "" "If enabled, \"special\" key instead of \"sneak\" key is used for climbing " "down and\n" "descending." -msgstr "" -"Ŝaltite, klavo « uzi » uzatas anstataŭ klavo « kaŝiri » por malsupreniro." +msgstr "Ŝaltite, klavo «uzi» uzatas anstataŭ klavo «kaŝiri» por malsupreniro." #: src/settings_translation_file.cpp msgid "" @@ -3542,7 +3562,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" +msgstr "Ŝaltite malŝaltas sentrompigon en ludo por pluraj." #: src/settings_translation_file.cpp msgid "" @@ -3557,6 +3577,8 @@ msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." msgstr "" +"Ŝaltite akordigas direkton de movoj de la ludanto al la direkto de ĝia " +"rigardo dum flugado aŭ naĝado." #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." @@ -3585,6 +3607,10 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Se la dosiergrando de «debug.txt» superas la nombron de milionbitokoj\n" +"agorditan ĉi tie, kiam ĝi malfermiĝas, la dosiero moviĝas al «debug.txt.1»,\n" +"kaj pli malnova «debug.txt.1» foriĝas, se ĝi ekzistas.\n" +"«debug.txt» moviĝas nur se ĉi tiu agordo estas ŝaltita." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3617,28 +3643,33 @@ msgstr "Plilaŭtiga klavo" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Unuaeca vertikala rapido dum salto, en monderoj sekunde." #: src/settings_translation_file.cpp msgid "" "Instrument builtin.\n" "This is usually only needed by core/builtin contributors" msgstr "" +"Ekzameni primitivojn.\n" +"Ĉi tion normale bezonas nur evoluigistoj de kerno/primitivoj" #: src/settings_translation_file.cpp msgid "Instrument chatcommands on registration." -msgstr "" +msgstr "Ekzameni babilajn komandojn je registriĝo." #: src/settings_translation_file.cpp msgid "" "Instrument global callback functions on registration.\n" "(anything you pass to a minetest.register_*() function)" msgstr "" +"Ekzameni mallokajn revokajn funkciojn je registriĝo.\n" +"(ĉio, kion vi donas al la funkcio minetest.register_*())" #: src/settings_translation_file.cpp msgid "" "Instrument the action function of Active Block Modifiers on registration." msgstr "" +"Ekzameni la agan funkcion de Aktivaj Modifiloj de Monderoj je registriĝo." #: src/settings_translation_file.cpp msgid "" @@ -3647,11 +3678,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Instrument the methods of entities on registration." -msgstr "" +msgstr "Ekzameni la metodojn de estoj je registriĝo." #: src/settings_translation_file.cpp msgid "Instrumentation" -msgstr "" +msgstr "Ekzamenado" #: src/settings_translation_file.cpp msgid "Interval of saving important changes in the world, stated in seconds." @@ -3663,7 +3694,7 @@ msgstr "Periodo inter sendoj de tagtempo al klientoj." #: src/settings_translation_file.cpp msgid "Inventory items animations" -msgstr "Bildmovo de objektoj en objektujo" +msgstr "Bildmovado de portaĵoj en portaĵujo" #: src/settings_translation_file.cpp msgid "Inventory key" @@ -3692,6 +3723,11 @@ msgid "" "increases processing load.\n" "At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" +"Ripetoj de la sinvoka funkcio.\n" +"Ĉi tio pliiĝinte pliigas etajn detalojn, sed ankaŭ pliigas\n" +"la ŝarĝon al la datentraktilo.\n" +"Je 20 ripetoj, ĉi tiu mondestigilo havas ŝarĝon similan al\n" +"la mondestigilo V7." #: src/settings_translation_file.cpp msgid "Joystick ID" @@ -3703,7 +3739,7 @@ msgstr "Ripeta periodo de stirstangaj klavoj" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" -msgstr "" +msgstr "Sentemo de stirstanga vidamplekso" #: src/settings_translation_file.cpp msgid "Joystick type" @@ -3717,6 +3753,11 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" +"Nur por aro de Julia.\n" +"W-ero de supermalsimpla konstanto.\n" +"Ŝanĝas la formon de la fraktalo.\n" +"Neniel efikas sur 3D-fraktaloj.\n" +"Amplekso proksimume de -2 ĝis 2." #: src/settings_translation_file.cpp msgid "" @@ -3725,6 +3766,10 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Nur por aro de Julia.\n" +"X-ero de supermalsimpla konstanto.\n" +"Ŝanĝas la formon de la fraktalo.\n" +"Amplekso proksimume de -2 ĝis 2." #: src/settings_translation_file.cpp msgid "" @@ -3733,6 +3778,10 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Nur por aro de Julia.\n" +"Y-ero de supermalsimpla konstanto.\n" +"Ŝanĝas la formon de la fraktalo.\n" +"Amplekso proksimume de -2 ĝis 2." #: src/settings_translation_file.cpp msgid "" @@ -3741,6 +3790,10 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Nur aro de Julia.\n" +"Z-a ero de supermalsimpla konstanto.\n" +"Ŝanĝas la formon de la fraktalo.\n" +"Amplekso proksimume de -2 ĝis 2." #: src/settings_translation_file.cpp msgid "Julia w" @@ -3792,9 +3845,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Klavo por demeti la elektitan objekton.\n" -"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Klavo por demeti la elektitan portaĵon.\n" +"Vidu http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3924,9 +3977,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Klavo por malfermi la objektujon.\n" -"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Klavo por malfermi la portaĵujon.\n" +"Vidu http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4194,9 +4247,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Klavo por elekti sekvan objekton en la fulmobreto.\n" -"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Klavo por elekti sekvan portaĵon en la fulmobreto.\n" +"Vidu http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4214,9 +4267,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Klavo por elekti antaŭan objekton en la fulmobreto.\n" -"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Klavo por elekti antaŭan portaĵon en la fulmobreto.\n" +"Vidu http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4298,9 +4351,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Klavo por ekrankopii.\n" -"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Klavo por ekrankopiado.\n" +"Vidu http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4398,9 +4451,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Baskula klavo por montri sencimigajn informojn.\n" -"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Baskula klavo por montri erarserĉajn informojn.\n" +"Vidu http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4519,11 +4572,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" +msgstr "Tempodaŭro inter rulaj cikloj de Aktiva Modifilo de Monderoj (AMM)" #: src/settings_translation_file.cpp msgid "Length of time between NodeTimer execution cycles" -msgstr "" +msgstr "Tempodaŭro inter rulaj cikloj de NodeTimer" #: src/settings_translation_file.cpp msgid "Length of time between active block management cycles" @@ -4540,6 +4593,14 @@ msgid "" "- info\n" "- verbose" msgstr "" +"Nivelo de protokolado skribota al debug.txt:\n" +"- (nenio protokoliĝas)\n" +"- none (neniu – mesaĝoj sen nivelo)\n" +"- error (eraro)\n" +"- warning (averto)\n" +"- action (ago)\n" +"- info (informo)\n" +"- verbose (babilema)" #: src/settings_translation_file.cpp msgid "Light curve mid boost" @@ -4555,7 +4616,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Lightness sharpness" -msgstr "" +msgstr "Akreco de heleco" #: src/settings_translation_file.cpp msgid "Limit of emerge queues on disk" @@ -4572,7 +4633,7 @@ msgid "" "Value is stored per-world." msgstr "" "Limo de mapa estigo, mondere, en ĉiuj ses direktoj de (0, 0, 0).\n" -"Nur partoj de mapo plene en la map-estigila limo estiĝos.\n" +"Nur mondopartoj plene en la mondestigila limo estiĝos.\n" "Valoro konserviĝas aparte por ĉiu mondo." #: src/settings_translation_file.cpp @@ -4591,7 +4652,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Liquid fluidity" -msgstr "Flueco de fluidoj" +msgstr "Flueco de fluaĵoj" #: src/settings_translation_file.cpp msgid "Liquid fluidity smoothing" @@ -4606,13 +4667,12 @@ msgid "Liquid queue purge time" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Rapideco de malsupreniro de likvo" +msgstr "Profundiĝo en fluaĵoj" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." -msgstr "" +msgstr "Intervalo inter ĝisdatigoj de fluaĵoj (en sekundoj)." #: src/settings_translation_file.cpp msgid "Liquid update tick" @@ -4620,7 +4680,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Load the game profiler" -msgstr "" +msgstr "Enlegi la ludan profililon" #: src/settings_translation_file.cpp msgid "" @@ -4628,6 +4688,9 @@ msgid "" "Provides a /profiler command to access the compiled profile.\n" "Useful for mod developers and server operators." msgstr "" +"Enlegas la ludan profililon por kolekti datenojn de luda profilado.\n" +"Disponigas la komandon «/profiler» por atingi la kodotradukitan profilon.\n" +"Utila por evoluigistoj de modifaĵoj kaj administrantoj de serviloj." #: src/settings_translation_file.cpp msgid "Loading Block Modifiers" @@ -4638,9 +4701,8 @@ msgid "Lower Y limit of dungeons." msgstr "Suba Y-limo de forgeskeloj." #: src/settings_translation_file.cpp -#, fuzzy msgid "Main menu script" -msgstr "Ĉefmenuo" +msgstr "Ĉefmenua skripto" #: src/settings_translation_file.cpp msgid "Main menu style" @@ -4650,16 +4712,17 @@ msgstr "Stilo de ĉefmenuo" msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" +"Dependigi kolorojn de nebulo kaj ĉielo de tagtempo (sunleviĝo/sunsubiro)\n" +"kaj direkto de rigardo." #: src/settings_translation_file.cpp msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." msgstr "" -"Funkciigas programaron « DirectX » kun « LuaJIT ». Malŝaltu okaze de " -"problemoj." +"Funkciigas programaron «DirectX» kun «LuaJIT». Malŝaltu okaze de problemoj." #: src/settings_translation_file.cpp msgid "Makes all liquids opaque" -msgstr "Igas fluidojn netravideblaj" +msgstr "Igas fluaĵojn netravideblaj" #: src/settings_translation_file.cpp msgid "Map directory" @@ -4667,7 +4730,7 @@ msgstr "Dosierujo kun mapoj" #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" +msgstr "Mondestigaj ecoj speciale por la Karpata Mondestigilo." #: src/settings_translation_file.cpp msgid "" @@ -4678,12 +4741,12 @@ msgid "" "to become shallower and occasionally dry.\n" "'altitude_dry': Reduces humidity with altitude." msgstr "" -"Apartaj mapestigaj ecoj de la mapestigilo « Valleys ».\n" -"« altitude_chill »: Malpliigas varmon laŭ alto.\n" -"« humid_rivers »: Pliigas malsekecon ĉirkaŭ riveroj.\n" -"« vary_river_depth »: Ŝaltite foje sekigas riverojn pro malalta malsekeco\n" +"Apartaj mapestigaj ecoj de la mapestigilo «Valleys».\n" +"«altitude_chill»: Malpliigas varmon laŭ alto.\n" +"«humid_rivers»: Pliigas malsekecon ĉirkaŭ riveroj.\n" +"«vary_river_depth»: Ŝaltite foje sekigas riverojn pro malalta malsekeco\n" "kaj alta varmo.\n" -"« altitude_dry »: Malpliigas malsekecon laŭ alto." +"«altitude_dry»: Malpliigas malsekecon laŭ alto." #: src/settings_translation_file.cpp msgid "" @@ -4691,16 +4754,21 @@ msgid "" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" +"Mapestigaj ecoj speciale por la Plata Mapestigilo.\n" +"«terrain» ŝaltas estigon de nefraktala tereno:\n" +"oceano, insuloj, kaj subtero." #: src/settings_translation_file.cpp msgid "" "Map generation attributes specific to Mapgen flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" +"Mapestigaj ecoj speciale por la Plata Mapestigilo.\n" +"Kelklokaj lagoj kaj montetoj povas aldoniĝi al la plata mondo." #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen v5." -msgstr "" +msgstr "Mapestigaj ecoj speciale por Mapestigilo v5." #: src/settings_translation_file.cpp msgid "" @@ -4709,24 +4777,30 @@ msgid "" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" +"Mondestigaj ecoj apartaj al Mondestigilo v6.\n" +"La flago «snowbiomes» ŝaltas la novan 5-klimatan sistemon.\n" +"Kiam la flago «snowbiomes» estas ŝaltita, ĝangaloj estas memage ŝaltitaj\n" +"kaj la flago «jungles» estas malatentata." #: src/settings_translation_file.cpp msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges' enables the rivers." msgstr "" +"Mapestigilaj ecoj speciale por Mapestigilo v7.\n" +"«ridges» ŝaltas la riverojn." #: src/settings_translation_file.cpp msgid "Map generation limit" -msgstr "" +msgstr "Limo de mondestigo" #: src/settings_translation_file.cpp msgid "Map save interval" -msgstr "" +msgstr "Intervaloj inter konservoj de mondo" #: src/settings_translation_file.cpp msgid "Mapblock limit" -msgstr "" +msgstr "Mondopeca limo" #: src/settings_translation_file.cpp msgid "Mapblock mesh generation delay" @@ -4738,7 +4812,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Mapblock unload timeout" -msgstr "" +msgstr "Tempolimo de mallego de mondopecoj" #: src/settings_translation_file.cpp msgid "Mapgen Carpathian" @@ -4746,7 +4820,7 @@ msgstr "Mondestigilo karpata" #: src/settings_translation_file.cpp msgid "Mapgen Carpathian specific flags" -msgstr "Parametroj specialaj por mondestigilo karpata" +msgstr "Parametroj specialaj por Karpata Mondestigilo" #: src/settings_translation_file.cpp msgid "Mapgen Flat" @@ -4754,16 +4828,15 @@ msgstr "Mondestigilo plata" #: src/settings_translation_file.cpp msgid "Mapgen Flat specific flags" -msgstr "Parametroj specialaj por mondestigilo plata" +msgstr "Parametroj specialaj por Plata Mondestigilo" #: src/settings_translation_file.cpp msgid "Mapgen Fractal" msgstr "Mondestigilo fraktala" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Parametroj specialaj por mondestigilo plata" +msgstr "Parametroj speciale por Fraktala Mondestigilo" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -4771,7 +4844,7 @@ msgstr "Mondestigilo v5" #: src/settings_translation_file.cpp msgid "Mapgen V5 specific flags" -msgstr "Parametroj specialaj por mondestigilo v5" +msgstr "Parametroj specialaj por Mondestigilo v5" #: src/settings_translation_file.cpp msgid "Mapgen V6" @@ -4779,7 +4852,7 @@ msgstr "Mondestigilo v6" #: src/settings_translation_file.cpp msgid "Mapgen V6 specific flags" -msgstr "Parametroj specialaj por mondestigilo v6" +msgstr "Parametroj specialaj por Mondestigilo v6" #: src/settings_translation_file.cpp msgid "Mapgen V7" @@ -4787,7 +4860,7 @@ msgstr "Mondestigilo v7" #: src/settings_translation_file.cpp msgid "Mapgen V7 specific flags" -msgstr "Parametroj specialaj por mondestigilo v7" +msgstr "Parametroj specialaj por Mondestigilo v7" #: src/settings_translation_file.cpp msgid "Mapgen Valleys" @@ -4795,7 +4868,7 @@ msgstr "Mondestigilo vala" #: src/settings_translation_file.cpp msgid "Mapgen Valleys specific flags" -msgstr "Parametroj specialaj por mondestigilo vala" +msgstr "Parametroj specialaj por Vala Mondestigilo" #: src/settings_translation_file.cpp msgid "Mapgen debug" @@ -4811,11 +4884,11 @@ msgstr "Nomo de mondestigilo" #: src/settings_translation_file.cpp msgid "Max block generate distance" -msgstr "" +msgstr "Estiga distanco de mondopecoj" #: src/settings_translation_file.cpp msgid "Max block send distance" -msgstr "" +msgstr "Senda distanco de mondopecoj" #: src/settings_translation_file.cpp msgid "Max liquids processed per step." @@ -4839,7 +4912,7 @@ msgstr "Maksimumaj KS paŭze." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" -msgstr "" +msgstr "Plejgrando de perforte enlegitaj mondopecoj" #: src/settings_translation_file.cpp msgid "Maximum hotbar width" @@ -4850,6 +4923,8 @@ msgid "" "Maximum liquid resistence. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Plejgranda rezisto de fluaĵoj. Regas malakcelon dum eniĝo en fluaĵon\n" +"je granda rapido." #: src/settings_translation_file.cpp msgid "" @@ -4857,6 +4932,9 @@ msgid "" "The maximum total count is calculated dynamically:\n" "max_total = ceil((#clients + max_users) * per_client / 4)" msgstr "" +"Plejgranda nombro de mondopecoj samtempe sendataj al unu kliento.\n" +"La plejgranda sumo estas kalkulata flue:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" #: src/settings_translation_file.cpp msgid "Maximum number of blocks that can be queued for loading." @@ -4868,15 +4946,15 @@ msgid "" "Set to blank for an appropriate amount to be chosen automatically." msgstr "" "Maksimumo nombro de mondopecoj atendantaj estigon.\n" -"Vakigu por aŭtomata elekto de ĝusta kvanto." +"Vakigu por memaga elekto de ĝusta kvanto." #: src/settings_translation_file.cpp msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "Set to blank for an appropriate amount to be chosen automatically." msgstr "" -"Maksimuma nombra da atendantaj mondopecoj legotaj de loka dosiero.\n" -"Agordi vake por aŭtomatan elekton de ĝusta nombro." +"Maksimuma nombro de atendantaj mondopecoj legotaj de loka dosiero.\n" +"Agordi vake por memaga elekto de ĝusta nombro." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -4902,9 +4980,8 @@ msgstr "" "kiun havas la celata kliento." #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum number of players that can be connected simultaneously." -msgstr "Maksimuma nombro da ludantoj, kiuj povas konektiĝi samtempe." +msgstr "Plejgranda nombro de ludantoj, kiuj povas konektiĝi samtempe." #: src/settings_translation_file.cpp msgid "Maximum number of recent chat messages to show" @@ -4912,11 +4989,11 @@ msgstr "Plejgranda nombro da freŝaj babilaj mesaĝoj montrotaj" #: src/settings_translation_file.cpp msgid "Maximum number of statically stored objects in a block." -msgstr "" +msgstr "Plejgranda nombro de statike memorataj objektoj en mondopeco." #: src/settings_translation_file.cpp msgid "Maximum objects per block" -msgstr "Maksimuma nombro da objektoj en mondopeco" +msgstr "Maksimuma nombro de objektoj en mondopeco" #: src/settings_translation_file.cpp msgid "" @@ -4939,6 +5016,8 @@ msgid "" "Maximum size of the out chat queue.\n" "0 to disable queueing and -1 to make the queue size unlimited." msgstr "" +"Maksimuma grando de la elira babila atendovico.\n" +"0 malŝaltas envicigon, kaj -1 senlimigas ĝin." #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." @@ -4978,17 +5057,15 @@ msgstr "Mapeta klavo" #: src/settings_translation_file.cpp msgid "Minimap scan height" -msgstr "" +msgstr "Alteco de mapeta skanado" #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum texture size" -msgstr "Minimuma grandeco de teksturoj por filtrado" +msgstr "Plejeta grandeco de teksturoj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mipmapping" -msgstr "Protuberancmapado" +msgstr "Etmapigo" #: src/settings_translation_file.cpp msgid "Mod channels" @@ -4996,7 +5073,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Modifies the size of the hudbar elements." -msgstr "" +msgstr "Ŝanĝas la grandecon de eroj de la travida fasado." #: src/settings_translation_file.cpp msgid "Monospace font path" @@ -5015,9 +5092,8 @@ msgid "Mountain noise" msgstr "Bruo de montoj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mountain variation noise" -msgstr "Bruo de monta alteco" +msgstr "Bruo de monta variigo" #: src/settings_translation_file.cpp #, fuzzy @@ -5050,10 +5126,9 @@ msgstr "Silentiga klavo" #: src/settings_translation_file.cpp msgid "Mute sound" -msgstr "" +msgstr "Silentigi sonon" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" @@ -5062,10 +5137,8 @@ msgid "" msgstr "" "Nomo de mapestigilo uzota por krei novan mondon.\n" "Kreo de nova mondo en la ĉefmenuo transpasos ĉi tiun agordon.\n" -"Nunaj stabilaj mapestigiloj estas:\n" -"v5, v6, v7 (krom « floatlands »), singlenode.\n" -"« Stabilaj » signifas, ke formo de tereno en jamaj mondoj ne ŝanĝiĝos\n" -"ose. Klimatoj tamen povus ŝanĝiĝi, ĉar ilin difinas ludoj." +"Nunaj tre malstabilaj mapestigiloj estas:\n" +"- La malnepraj fluginsuloj de v7 (implicite malŝaltitaj)." #: src/settings_translation_file.cpp msgid "" @@ -5112,9 +5185,8 @@ msgid "Noclip key" msgstr "Trapasa klavo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Node highlighting" -msgstr "Marki nodaĵojn" +msgstr "Emfazado de monderoj" #: src/settings_translation_file.cpp msgid "NodeTimer interval" @@ -5134,7 +5206,7 @@ msgstr "Normalmapa potenco" #: src/settings_translation_file.cpp msgid "Number of emerge threads" -msgstr "Nombro da mondo-estigaj fadenoj" +msgstr "Nombro da mondestigaj fadenoj" #: src/settings_translation_file.cpp msgid "" @@ -5169,7 +5241,7 @@ msgstr "Nombro da iteracioj de paralaksa ombrigo." #: src/settings_translation_file.cpp msgid "Online Content Repository" -msgstr "" +msgstr "Enreta deponejo de enhavo" #: src/settings_translation_file.cpp msgid "Opaque liquids" @@ -5181,6 +5253,9 @@ msgid "" "formspec is\n" "open." msgstr "" +"Malfermas haltan menuon kiam fokuso je la fenestro perdiĝas. Ne haltigas se " +"enluda\n" +"fenestro estas malfermita." #: src/settings_translation_file.cpp msgid "Overall bias of parallax occlusion effect, usually scale/2." @@ -5208,9 +5283,8 @@ msgid "Parallax occlusion mode" msgstr "Reĝimo de paralaksa ombrigo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Parallax occlusion scale" -msgstr "Vasteco de paralaksa ombrigo" +msgstr "Skalo de paralaksa ombrigo" #: src/settings_translation_file.cpp msgid "Parallax occlusion strength" @@ -5218,7 +5292,7 @@ msgstr "Potenco de paralaksa ombrigo" #: src/settings_translation_file.cpp msgid "Path to TrueTypeFont or bitmap." -msgstr "Dosierindiko al tiparo »TrueType« aŭ rastrumo." +msgstr "Dosierindiko al tiparo «TrueType» aŭ bitbildo." #: src/settings_translation_file.cpp msgid "Path to save screenshots at." @@ -5236,20 +5310,19 @@ msgstr "Dosierindiko al teksturoj. Ĉiuj teksturoj estas unue serĉataj tie." #: src/settings_translation_file.cpp msgid "Pause on lost window focus" -msgstr "" +msgstr "Paŭzigi je perdita fokuso de la fenestro" #: src/settings_translation_file.cpp msgid "Physics" msgstr "Fiziko" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "Fluga klavo" +msgstr "Celilsekva klavo" #: src/settings_translation_file.cpp msgid "Pitch move mode" -msgstr "" +msgstr "Celilsekva reĝimo" #: src/settings_translation_file.cpp msgid "" @@ -5276,26 +5349,32 @@ msgid "" "Port to connect to (UDP).\n" "Note that the port field in the main menu overrides this setting." msgstr "" +"Konektota pordo (UDP).\n" +"Rimarku, ke la porda kampo en la ĉefmenuo transpasas ĉi tiun agordon." #: src/settings_translation_file.cpp msgid "" "Prevent digging and placing from repeating when holding the mouse buttons.\n" "Enable this when you dig or place too often by accident." msgstr "" +"Malhelpu ripetadon de fosado kaj metado dum premo de la musklavoj.\n" +"Ŝaltu ĉi tion, se vi tro ofte nevole fosas aŭ metas monderojn." #: src/settings_translation_file.cpp msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" +msgstr "Malhelpi al reguligistoj agi nesekure (ekzemple ruli ŝelajn komandojn)." #: src/settings_translation_file.cpp msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." msgstr "" +"Presi la profilajn datenojn de la motoro laŭ regulaj intervaloj (sekunde).\n" +"0 = malŝalti. Utila por evoluigistoj." #: src/settings_translation_file.cpp msgid "Privileges that players with basic_privs can grant" -msgstr "" +msgstr "Rajtoj, kiujn ludantoj kun «basic_privs» povas doni" #: src/settings_translation_file.cpp msgid "Profiler" @@ -5315,10 +5394,12 @@ msgid "" "Values larger than 26 will start to produce sharp cutoffs at cloud area " "corners." msgstr "" +"Duondiametro de nuba areo donita en nombro da 64-monderaj nubaj ortanguloj.\n" +"Valoroj super 26 estigos akrajn randojn je anguloj de la areo." #: src/settings_translation_file.cpp msgid "Raises terrain to make valleys around the rivers." -msgstr "" +msgstr "Levas terenon por krei valojn ĉirkaŭ la riveroj." #: src/settings_translation_file.cpp msgid "Random input" @@ -5369,6 +5450,16 @@ msgid "" "csm_restriction_noderange)\n" "READ_PLAYERINFO: 32 (disable get_player_names call client-side)" msgstr "" +"Limigas atingon de kelkaj klient-flankaj funkcioj sur serviloj.\n" +"Kombinu la ĉi-subajn bitindikilojn por limigi klient-flakajn funkciojn,\n" +"aŭ agordu al 0 por nenion limigi:\n" +"LOAD_CLIENT_MODS: 1 (malŝaltas enlegadon de klient-flankaj modifaĵoj)\n" +"CHAT_MESSAGES: 2 (malŝaltas klient-flankan vokadon de «send_chat_message»)\n" +"READ_ITEMDEFS: 4 (malŝaltas klient-flankan vokadon de «get_item_def»)\n" +"READ_NODEDEFS: 8 (malŝaltas klient-flankan vokadon de «get_node_def»)\n" +"LOOKUP_NODES_LIMIT: 16 (limigas klient-flankan vokadon de «get_node_call»\n" +"al «csm_restriction_noderange»)\n" +"READ_PLAYERINFO: 32 (malŝaltas klient-flankan vokadon de «get_player_names»)" #: src/settings_translation_file.cpp #, fuzzy @@ -5397,14 +5488,12 @@ msgid "Rightclick repetition interval" msgstr "Periodo inter ripetoj de dekstra klako" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Rivera profundo" +msgstr "Profundeco de rivera akvovojo" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Rivera profundo" +msgstr "Larĝeco de riveraj akvovojoj" #: src/settings_translation_file.cpp msgid "River depth" @@ -5415,26 +5504,24 @@ msgid "River noise" msgstr "Rivera bruo" #: src/settings_translation_file.cpp -#, fuzzy msgid "River size" -msgstr "Rivera grandeco" +msgstr "Grandeco de riveroj" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Rivera profundo" +msgstr "Profundeco de riveraj valoj" #: src/settings_translation_file.cpp msgid "Rollback recording" -msgstr "" +msgstr "Malfarebligo" #: src/settings_translation_file.cpp msgid "Rolling hill size noise" -msgstr "" +msgstr "Bruo de grandeco de mildaj montetoj" #: src/settings_translation_file.cpp msgid "Rolling hills spread noise" -msgstr "" +msgstr "Bruo de disvastiĝo de mildaj montetoj" #: src/settings_translation_file.cpp msgid "Round minimap" @@ -5442,11 +5529,11 @@ msgstr "Ronda mapeto" #: src/settings_translation_file.cpp msgid "Safe digging and placing" -msgstr "" +msgstr "Sekuraj fosado kaj metado" #: src/settings_translation_file.cpp msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "Sablaj bordoj okazas kiam « np_beach » superas ĉi tiun valoron." +msgstr "Sablaj bordoj okazas kiam «np_beach» superas ĉi tiun valoron." #: src/settings_translation_file.cpp msgid "Save the map received by the client on disk." @@ -5461,7 +5548,6 @@ msgid "Saving map received from server" msgstr "Konservanta mapon ricevitan de la servilo" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Scale GUI by a user specified value.\n" "Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" @@ -5472,8 +5558,8 @@ msgstr "" "Skali la fasadon per valoro difinita de la uzanto.\n" "Uzi glatigan filtrilon per la plej proksimaj bilderoj por skali la fasadon.\n" "Ĉi tio glatigos iom da malglataj limoj, kaj miksos bilderojn\n" -"malskalante, kontraŭ perdo de kelkaj limaj bilderoj, malskalante per\n" -"netutciferoj." +"malskalante, kontraŭ malklarigo de kelkaj limaj bilderoj, malskalante\n" +"per neentejraj kvantoj." #: src/settings_translation_file.cpp msgid "Screen height" @@ -5507,7 +5593,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Seabed noise" -msgstr "Bruo de marplanko" +msgstr "Bruo de marfundo" #: src/settings_translation_file.cpp msgid "Second of 4 2D noises that together define hill/mountain range height." @@ -5524,11 +5610,11 @@ msgstr "Sekureco" #: src/settings_translation_file.cpp msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" +msgstr "Vidu https://www.sqlite.org/pragma.html#pragma_synchronous" #: src/settings_translation_file.cpp msgid "Selection box border color (R,G,B)." -msgstr "Limkoloro de elektujo" +msgstr "Limkoloro de elektujo (R,V,B)." #: src/settings_translation_file.cpp msgid "Selection box color" @@ -5560,10 +5646,29 @@ msgid "" "17 = 4D \"Mandelbulb\" mandelbrot set.\n" "18 = 4D \"Mandelbulb\" julia set." msgstr "" +"Elektas unu de 18 tipoj de fraktaloj.\n" +"1 = 4D «Rondeca» aro de Mandelbrot.\n" +"2 = 4D «Rondeca» aro de Julia.\n" +"3 = 4D «Ortanguleca» aro de Mandelbrot.\n" +"4 = 4D «Ortanguleca» aro de Julia.\n" +"5 = 4D «Mandy Cousin» aro de Mandelbrot.\n" +"6 = 4D «Mandy Cousin» aro de Julia.\n" +"7 = 4D «Variaĵa» aro de Mandelbrot.\n" +"8 = 4D «Variaĵa» aro de Julia.\n" +"9 = 3D «Mandelbrot/Mandelbar» aro de Mandelbrot.\n" +"10 = 3D «Mandelbrot/Mandelbar» aro de Julia.\n" +"11 = 3D «Kristnaskarba» aro de Mandelbrot.\n" +"12 = 3D «Kristnaskarba» aro de Julia.\n" +"13 = 3D «Mandelbulb» aro de Mandelbrot.\n" +"14 = 3D «Mandelbulb» aro de Julia.\n" +"15 = 3D «Sinuse Mandelbulb» aro de Mandelbrot.\n" +"16 = 3D «Sinuse Mandelbulb» aro de Julia.\n" +"17 = 4D «Mandelbulb» aro de Mandelbrot.\n" +"18 = 4D «Mandelbulb» aro de Julia." #: src/settings_translation_file.cpp msgid "Server / Singleplayer" -msgstr "Servilo / Unuopa" +msgstr "Servilo / Ludo por unu" #: src/settings_translation_file.cpp msgid "Server URL" @@ -5587,7 +5692,7 @@ msgstr "Pordo de servilo" #: src/settings_translation_file.cpp msgid "Server side occlusion culling" -msgstr "" +msgstr "Servilflanka elektado de postkaŝitoj" #: src/settings_translation_file.cpp msgid "Serverlist URL" @@ -5615,14 +5720,16 @@ msgid "" "Set to true enables waving leaves.\n" "Requires shaders to be enabled." msgstr "" -"Verigo ŝaltas ondantajn foliojn.\n" -"Bezonas ŝaltitajn ombrigilojn." +"Ebligas ondojn je kreskaĵoj.\n" +"Bezonas ombrigilojn." #: src/settings_translation_file.cpp msgid "" "Set to true enables waving plants.\n" "Requires shaders to be enabled." msgstr "" +"Verigo ŝaltas ondantajn kreskaĵojn.\n" +"Bezonas ŝalton de ombriloj." #: src/settings_translation_file.cpp msgid "" @@ -5637,16 +5744,15 @@ msgid "Shader path" msgstr "Indiko al ombrigiloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shaders allow advanced visual effects and may increase performance on some " "video\n" "cards.\n" "This only works with the OpenGL video backend." msgstr "" -"Ombrigiloj ebligas specialaj vidajn efektojn kaj povas plibonigi rendimenton " -"je kelkaj vidkartoj.\n" -"Ĉi tio only funkcias kun la videa internaĵo de «OpenGL»." +"Ombrigiloj ebligas specialaj vidajn efektojn kaj povas plibonigi efikecon je " +"kelkaj vidkartoj.\n" +"Ĉi tio funkcias nur kun la bildiga internaĵo de «OpenGL»." #: src/settings_translation_file.cpp msgid "Shadow limit" @@ -5658,11 +5764,11 @@ msgstr "Formo de la mapeto. Ŝaltita = ronda, malŝaltita = orta." #: src/settings_translation_file.cpp msgid "Show debug info" -msgstr "Montri sencimigajn informojn" +msgstr "Montri erarserĉajn informojn" #: src/settings_translation_file.cpp msgid "Show entity selection boxes" -msgstr "" +msgstr "Montri elektujojn de estoj" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -5677,6 +5783,12 @@ msgid "" "Altering this value is for special usage, leaving it unchanged is\n" "recommended." msgstr "" +"Grandeco de mondopartoj estigitaj de mondestigilo, esprimita en mondopecoj\n" +"(16 monderoj).\n" +"AVERTO: Estas neniu avantaĝo, nur kelkaj danĝeroj, en pliigo de la valoro " +"super 5.\n" +"Malpliigo de la valoro plialtigas densecon de kavernoj kaj forgeskeloj.\n" +"Ŝanĝeblo de la valoro celas specialajn uzojn; senŝanĝo estas rekomendata." #: src/settings_translation_file.cpp msgid "" @@ -5684,14 +5796,17 @@ msgid "" "increase the cache hit %, reducing the data being copied from the main\n" "thread, thus reducing jitter." msgstr "" +"Grandeco de la mondopeca kaŝmemoro de la meŝestigilo. Plialtigo ankaŭ\n" +"plialtigos la elcenton de kaŝmemoraj trafoj, kaj malpliigos la datenojn\n" +"kopiatajn de la ĉefa fadeno, malhelpante skuadon." #: src/settings_translation_file.cpp msgid "Slice w" -msgstr "" +msgstr "Tranĉo w" #: src/settings_translation_file.cpp msgid "Slope and fill work together to modify the heights." -msgstr "" +msgstr "Deklivo kaj plenigo kunlaboras por ŝanĝi la altecojn." #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." @@ -5699,7 +5814,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" +msgstr "Etarea variigo de varmeco por intermiksado de klimatoj je limoj." #: src/settings_translation_file.cpp msgid "Smooth lighting" @@ -5731,16 +5846,15 @@ msgstr "Rapido de kaŝiro" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Rapido de kaŝirado, en monderoj sekunde." #: src/settings_translation_file.cpp msgid "Sound" msgstr "Sono" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key" -msgstr "Singardira klavo" +msgstr "Speciala klavo" #: src/settings_translation_file.cpp msgid "Special key for climbing/descending" @@ -5755,8 +5869,8 @@ msgid "" msgstr "" "Specifas URL de kiu la kliento elŝutos aŭdvidaĵojn, anstataŭ uzi UDP.\n" "$filename atingeblu de $remote_media$filename per cURL\n" -"(kompreneble, »remote_media« finiĝu per dekliva streko).\n" -"Dosieroj mankantaj elŝutitos per la kutima maniero." +"(kompreneble, «remote_media» finiĝu per dekliva streko).\n" +"Dosieroj mankantaj elŝutiĝos per la kutima maniero." #: src/settings_translation_file.cpp msgid "" @@ -5773,14 +5887,12 @@ msgid "Steepness noise" msgstr "Bruo de kruteco" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain size noise" -msgstr "Bruo de montoj" +msgstr "Bruo de grandeco de terasaj montoj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain spread noise" -msgstr "Bruo de montoj" +msgstr "Bruo de disvastiĝo de terasaj montoj" #: src/settings_translation_file.cpp msgid "Strength of generated normalmaps." @@ -5812,7 +5924,7 @@ msgstr "Varmeca diverseco por klimatoj." #: src/settings_translation_file.cpp msgid "Terrain alternative noise" -msgstr "" +msgstr "Alternativo bruo de tereno" #: src/settings_translation_file.cpp msgid "Terrain base noise" @@ -5828,7 +5940,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Terrain noise" -msgstr "" +msgstr "Bruo de tereno" #: src/settings_translation_file.cpp msgid "" @@ -5836,6 +5948,9 @@ msgid "" "Controls proportion of world area covered by hills.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"Sojlo de terena bruo por montetoj.\n" +"Regas parton de la mondon kovratan per montetoj.\n" +"Proksimigu al 0.0 por pligrandigi la parton." #: src/settings_translation_file.cpp msgid "" @@ -5843,6 +5958,9 @@ msgid "" "Controls proportion of world area covered by lakes.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"Sojlo de terena bruo por lagoj.\n" +"Regas la parton de mondo kovritan per lagoj.\n" +"Proksimigu al 0.0 por pli granda parto." #: src/settings_translation_file.cpp msgid "Terrain persistence noise" @@ -5870,17 +5988,19 @@ msgstr "" #: src/settings_translation_file.cpp msgid "The URL for the content repository" -msgstr "" +msgstr "URL al la deponejo de enhavo" #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" "when calling `/profiler save [format]` without format." msgstr "" +"La norma formo, en kiu konserviĝas profiloj, kiam\n" +"vokiĝas «/profiler save [formo]» sen formo." #: src/settings_translation_file.cpp msgid "The depth of dirt or other biome filler node." -msgstr "" +msgstr "La profundeco de tero aŭ alia surfaca klimata plenigilo." #: src/settings_translation_file.cpp msgid "" @@ -5889,11 +6009,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "The identifier of the joystick to use" -msgstr "" +msgstr "Identigilo de la uzota stirstango" #: src/settings_translation_file.cpp msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" +msgstr "Longeco (en bilderoj) necesa por komenco de interago kun tuŝekrano." #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." @@ -5904,6 +6024,9 @@ msgid "" "The privileges that new users automatically get.\n" "See /privs in game for a full list on your server and mod configuration." msgstr "" +"La rajtoj, kiuj novaj uzantoj memage akiras.\n" +"Vidu «/privs» en la ludo por plena listo de via servilo kaj modifaĵa " +"agordaro." #: src/settings_translation_file.cpp msgid "" @@ -5925,12 +6048,21 @@ msgid "" "On other platforms, OpenGL is recommended, and it’s the only driver with\n" "shader support currently." msgstr "" +"La bildiga internaĵo por Irrlicht.\n" +"Rerulo necesas post ĉi tiu ŝanĝo.\n" +"Rimarko: Sur Androido, restu ĉe OGLES1, se vi ne certas! Aplikaĵo alie " +"povus\n" +"malsukcesi ruliĝon. Sur aliaj sistemoj, OpenGL estas rekomendata, kaj " +"nuntempe\n" +"estas la sola pelilo subtenanta ombrigilojn." #: src/settings_translation_file.cpp msgid "" "The sensitivity of the joystick axes for moving the\n" "ingame view frustum around." msgstr "" +"Sentemo de la stirstangaj aksoj por movadi la\n" +"enludan vidamplekson." #: src/settings_translation_file.cpp msgid "" @@ -5939,6 +6071,10 @@ msgid "" "setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" "set to the nearest valid value." msgstr "" +"La potenco (mallumeco) de ĉirkaŭaĵa ombrigo de monderoj.\n" +"Malpli estas mallume, pli estas lume. La valida amplekso de valoroj\n" +"estas inter 0.25 kaj 4.0, inkluzive. Se la valoro estas ekster la amplekso,\n" +"ĝi prezentos la plej proksiman valoron validan." #: src/settings_translation_file.cpp msgid "" @@ -5952,6 +6088,8 @@ msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" +"Tempo (en sekundoj) inter ripetataj okazoj dum premo\n" +"de stirstangaj klavoj." #: src/settings_translation_file.cpp msgid "" @@ -5963,7 +6101,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "The type of joystick" -msgstr "" +msgstr "La speco de stirstango" #: src/settings_translation_file.cpp msgid "" @@ -5971,6 +6109,9 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" +"Vertikala distanco post kiu varmeco malpliiĝas je 20, se «altitude_chill»\n" +"estas ŝaltita. Ankaŭ la vertikala distanco post kiu malsekeco malpliiĝas\n" +"je 10 se «altitude_dry» estas ŝaltita." #: src/settings_translation_file.cpp #, fuzzy @@ -5986,6 +6127,8 @@ msgid "" "Time in seconds for item entity (dropped items) to live.\n" "Setting it to -1 disables the feature." msgstr "" +"Vivodaŭro de metitaj portaĵoj en sekundoj.\n" +"Agordo al -1 malŝaltas la funkcion." #: src/settings_translation_file.cpp msgid "Time of day when a new world is started, in millihours (0-23999)." @@ -5997,7 +6140,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Time speed" -msgstr "" +msgstr "Rapido de tempo" #: src/settings_translation_file.cpp msgid "Timeout for client to remove unused map data from memory." @@ -6043,7 +6186,7 @@ msgid "" msgstr "" "Vera = 256\n" "Falsa = 128\n" -"Povas glatigi minimapon por malrapidaj komputiloj." +"Povas faciligi mapeton por malrapidaj komputiloj." #: src/settings_translation_file.cpp msgid "Trusted mods" @@ -6052,18 +6195,17 @@ msgstr "Fidataj modifaĵoj" #: src/settings_translation_file.cpp msgid "" "Typical maximum height, above and below midpoint, of floatland mountains." -msgstr "" +msgstr "Ordinara plejalto, super kaj sub la mezpunkto, de fluginsulaj montoj." #: src/settings_translation_file.cpp msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "URL al la listo de serviloj, montrota en la plurludanta langeto." +msgstr "URL al la listo de serviloj, montrota en la langeto «Ludo por pluraj»." #: src/settings_translation_file.cpp msgid "Undersampling" msgstr "Subspecimenado" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6071,9 +6213,9 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"Subspecimenado similas uzon de malgranda ekrandistingivo, sed ĝi nur\n" +"Subspecimenado similas uzon de malgranda ekrandistingumo, sed ĝi nur\n" "efektivas en la ludo, lasante la fasadon senŝanĝa.\n" -"Ĝi grave helpu la rendimenton kontraŭ malpli detala video." +"Ĝi grave helpu la efikecon kontraŭ malpli detala filmo." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6081,7 +6223,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Unload unused server data" -msgstr "" +msgstr "Mallegi neuzatajn servilajn datenojn" #: src/settings_translation_file.cpp msgid "Upper Y limit of dungeons." @@ -6109,6 +6251,9 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" +"Uzi etmapigon por skali teksturojn. Povas iomete plibonigi efikecon,\n" +"precipe dum uzo de teksturaro je alta distingumo.\n" +"Gamae ĝusta malgrandigado ne estas subtenata." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -6116,7 +6261,7 @@ msgstr "Uzi trilinearan filtradon skalante teksturojn." #: src/settings_translation_file.cpp msgid "VBO" -msgstr "" +msgstr "Vertica bufrobjekto" #: src/settings_translation_file.cpp msgid "VSync" @@ -6127,19 +6272,16 @@ msgid "Valley depth" msgstr "Profundeco de valoj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley fill" -msgstr "Profundeco de valoj" +msgstr "Plenigo de valoj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley profile" -msgstr "Profundeco de valoj" +msgstr "Profilo de valoj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley slope" -msgstr "Profundeco de valoj" +msgstr "Deklivo de valoj" #: src/settings_translation_file.cpp msgid "Variation of biome filler depth." @@ -6148,14 +6290,16 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Variation of hill height and lake depth on floatland smooth terrain." msgstr "" +"Variaĵo de alteco de montetoj kaj profundeco de lagoj sur glata tereno de " +"fluginsuloj." #: src/settings_translation_file.cpp msgid "Variation of maximum mountain height (in nodes)." -msgstr "" +msgstr "Variaĵo de plejgranda alteco de montoj (en monderoj)." #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "" +msgstr "Variado de nombro de kavernoj." #: src/settings_translation_file.cpp msgid "" @@ -6172,18 +6316,21 @@ msgid "" "Varies roughness of terrain.\n" "Defines the 'persistence' value for terrain_base and terrain_alt noises." msgstr "" +"Variigas krudecon de tereno.\n" +"Difinas la valoron de «persistence» (persisto) por la bruoj «terrain_base»\n" +"kaj «terrain_alt»." #: src/settings_translation_file.cpp msgid "Varies steepness of cliffs." -msgstr "" +msgstr "Variigas la krutecon de krutaĵoj." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Vertikala rapido de grimpado, en monderoj sekunde." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." -msgstr "" +msgstr "Vertikala samtempigo de ekrano." #: src/settings_translation_file.cpp msgid "Video driver" @@ -6232,7 +6379,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Rapido de irado kaj flugado, en monderoj sekunde." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6241,6 +6388,7 @@ msgstr "Rapido de irado" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Rapido de irado, flugado kaj grimpado en rapida reĝimo, en monderoj sekunde." #: src/settings_translation_file.cpp msgid "Water level" @@ -6267,19 +6415,16 @@ msgid "Waving water" msgstr "Ondanta akvo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave height" -msgstr "Alto de ondanta akvo" +msgstr "Alteco de ondoj de ondanta akvo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wave speed" -msgstr "Rapido de ondanta akvo" +msgstr "Rapido de ondoj sur ondanta akvo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving water wavelength" -msgstr "Longo de ondanta akvo" +msgstr "Longo de ondoj de ondanta akvo" #: src/settings_translation_file.cpp msgid "" @@ -6287,6 +6432,9 @@ msgid "" "filtered in software, but some images are generated directly\n" "to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" +"Kiam veras «gui_scaling_filter», ĉiuj bildoj de la grafika fasado\n" +"devas filtriĝi en la programaro, sed iuj bildoj estiĝas rekte en la\n" +"programaro (ekz. «render-to-texture» por monderoj en portaĵujo)." #: src/settings_translation_file.cpp msgid "" @@ -6295,6 +6443,10 @@ msgid "" "to the old scaling method, for video drivers that don't\n" "properly support downloading textures back from hardware." msgstr "" +"Kiam veras «gui_scaling_filter_txr2img», kopii la bildojn\n" +"de aparataro al programaro por skalado. Kiam malveras, repaŝu\n" +"al la malnova metodo de skalado, por vid-peliloj, kiuj ne subtenas\n" +"bone elŝutadon de teksturoj de la aparataro." #: src/settings_translation_file.cpp msgid "" @@ -6308,31 +6460,45 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" +"Dum uzo de duliniaj/triliniaj/neizotropaj filtriloj, tekstruoj je malaltaj\n" +"distingumoj povas malklariĝi; tial memage grandigu ĝin per interpolado\n" +"laŭ plej proksimaj bilderoj por teni klarajn bilderojn. Ĉi tio agordas la\n" +"malplejaltan grandecon de teksturo por la grandigitaj teksturoj; pli altaj\n" +"valoroj aspektas pli klare, sed bezonas pli da memoro. Potencoj de duo\n" +"estas rekomendataj. Valoroj pli grandaj ol 1 eble ne estos videblaj, se ne\n" +"estas ŝaltita dulinia, trilinia, aŭ neizotropa filtrado.\n" +"Ĉi tio ankaŭ uziĝas kiel la baza grando de monderaj teksturoj por memaga\n" +"grandigado de monde laŭigitaj teksturoj." #: src/settings_translation_file.cpp msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled in." msgstr "" +"Ĉu tiparoj de FreeType uziĝas; postulas entradukitan subtenon de FreeType." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" +msgstr "Ĉu teksturaj movbildoj de monderoj malsamtempiĝu en ĉiu mondopeco." #: src/settings_translation_file.cpp msgid "" "Whether players are shown to clients without any range limit.\n" "Deprecated, use the setting player_transfer_distance instead." msgstr "" +"Ĉu ludantoj montriĝas al klientoj sen limo de vidodistanco.\n" +"Evitinda; uzu anstataŭe la agordon «player_transfer_distance»." #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "Ĉu permesi al ludantoj vundi kaj mortigi unu la alian." #: src/settings_translation_file.cpp msgid "" "Whether to ask clients to reconnect after a (Lua) crash.\n" "Set this to true if your server is set up to restart automatically." msgstr "" +"Ĉu peti rekonekton de klientoj post kolapso (de Lua).\n" +"Ĉi tion agordu al vero se via servilo rekomencos memage." #: src/settings_translation_file.cpp msgid "Whether to fog out the end of the visible area." @@ -6342,6 +6508,7 @@ msgstr "Ĉu nebuli finon de la videbla areo." msgid "" "Whether to show the client debug info (has the same effect as hitting F5)." msgstr "" +"Ĉu montri erarserĉajn informojn de la kliento (efikas samkiel premo de F5)." #: src/settings_translation_file.cpp msgid "Width component of the initial window size." @@ -6357,6 +6524,8 @@ msgid "" "background.\n" "Contains the same information as the file debug.txt (default name)." msgstr "" +"Nur por Vindozo: Rulu Mineteston fone per la komanduja fenestro.\n" +"Ĝi enhavos la samajn informojn kiel la dosiero (norme nomita) debug.txt." #: src/settings_translation_file.cpp msgid "" @@ -6365,9 +6534,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "World start time" -msgstr "Nomo de mondo" +msgstr "Tempo je komenco de mondo" #: src/settings_translation_file.cpp msgid "" @@ -6378,14 +6546,20 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" +"Monde laŭigitaj teksturoj povas skaliĝi trans kelkaj monderoj. Tamen,\n" +"la servilo eble ne sendos la volatan skalon, precipe se vi uzas speciale\n" +"fasonitan teksturaron; per ĉi tiu elekteblo, la kliento provas determini\n" +"la skalon memage, surbaze de la grandeco de la teksturo.\n" +"Vidu ankaŭ «texture_min_size».\n" +"Averto: Ĉi tiu elekteblo estas EKSPERIMENTA!" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "" +msgstr "Reĝimo de monde laŭigitaj tekstruoj" #: src/settings_translation_file.cpp msgid "Y of flat ground." -msgstr "" +msgstr "Y de plata tero." #: src/settings_translation_file.cpp msgid "" @@ -6403,7 +6577,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." -msgstr "" +msgstr "Y-nivelo de mezuma terena surfaco." #: src/settings_translation_file.cpp msgid "Y-level of cavern upper limit." @@ -6419,7 +6593,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of lower terrain and seabed." -msgstr "" +msgstr "Y-nivelo de malsupra tereno kaj marfundo." #: src/settings_translation_file.cpp msgid "Y-level of seabed." @@ -6427,7 +6601,7 @@ msgstr "Y-nivelo de marplanko." #: src/settings_translation_file.cpp msgid "Y-level to which floatland shadows extend." -msgstr "" +msgstr "Y-nivelo kien etendiĝas ombroj de fluginsuloj." #: src/settings_translation_file.cpp msgid "cURL file download timeout" @@ -6435,7 +6609,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL parallel limit" -msgstr "" +msgstr "Samtempa limo de cURL" #: src/settings_translation_file.cpp msgid "cURL timeout" From a2054deb12900724b96af3aaab61735c38afe70f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Ne=C4=8Das?= Date: Sun, 8 Dec 2019 15:22:05 +0000 Subject: [PATCH 083/624] Translated using Weblate (Czech) Currently translated at 48.8% (622 of 1274 strings) --- po/cs/minetest.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/cs/minetest.po b/po/cs/minetest.po index 599f8015b..fa448aa1c 100644 --- a/po/cs/minetest.po +++ b/po/cs/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Czech (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-12-11 13:36+0000\n" +"Last-Translator: Luboš Nečas \n" "Language-Team: Czech \n" "Language: cs\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -395,7 +395,7 @@ msgstr "Hodnota nesmí být větší než $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" -msgstr "" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" @@ -403,7 +403,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" -msgstr "" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" @@ -411,7 +411,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" -msgstr "" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" From 47adcced60415de6a330ed307e0a6dfd95521bcc Mon Sep 17 00:00:00 2001 From: Petter Reinholdtsen Date: Mon, 9 Dec 2019 09:13:36 +0000 Subject: [PATCH 084/624] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 43.3% (552 of 1274 strings) --- po/nb/minetest.po | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/po/nb/minetest.po b/po/nb/minetest.po index 0e087fca1..78c4fc757 100644 --- a/po/nb/minetest.po +++ b/po/nb/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Norwegian Bokmål (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2019-12-11 13:36+0000\n" +"Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -415,7 +415,7 @@ msgstr "Forvalg" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" -msgstr "" +msgstr "lettet" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" @@ -687,7 +687,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" -msgstr "" +msgstr "Mipkart + Aniso. filter" #: builtin/mainmenu/tab_settings.lua msgid "No" @@ -699,7 +699,7 @@ msgstr "Inget filter" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" -msgstr "" +msgstr "Intet Mipkart" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" @@ -5362,6 +5362,8 @@ msgid "" "Set to true enables waving leaves.\n" "Requires shaders to be enabled." msgstr "" +"Aktiver for å slå på bølgende blader.\n" +"Krever at dybdeskapere er aktivert." #: src/settings_translation_file.cpp msgid "" From 140245c58de8656835bd05bf601d48a499f5f44b Mon Sep 17 00:00:00 2001 From: Tirifto Date: Sun, 15 Dec 2019 14:33:42 +0000 Subject: [PATCH 085/624] Translated using Weblate (Esperanto) Currently translated at 97.2% (1238 of 1274 strings) --- po/eo/minetest.po | 86 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 60 insertions(+), 26 deletions(-) diff --git a/po/eo/minetest.po b/po/eo/minetest.po index 4084d1426..8d866686a 100644 --- a/po/eo/minetest.po +++ b/po/eo/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Esperanto (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-12-11 13:36+0000\n" +"PO-Revision-Date: 2019-12-16 22:21+0000\n" "Last-Translator: Tirifto \n" "Language-Team: Esperanto \n" @@ -2587,7 +2587,8 @@ msgstr "Difinas la profundecon de la rivera akvovojo." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" -"Difinas maksimuman distancon de ludanta moviĝo en monderoj (0 = senlima)." +"Difinas plejgrandan distancon por transsendo de ludantoj, en monderoj (0 = " +"senlima)." #: src/settings_translation_file.cpp msgid "Defines the width of the river channel." @@ -2985,7 +2986,7 @@ msgstr "Fiksa mapa greno" #: src/settings_translation_file.cpp msgid "Fixed virtual joystick" -msgstr "" +msgstr "Fiksita virtuala stirstango" #: src/settings_translation_file.cpp msgid "Floatland base height noise" @@ -3264,7 +3265,7 @@ msgstr "Varmeca bruo" #: src/settings_translation_file.cpp msgid "Height component of the initial window size." -msgstr "Alteca parto de la komenca grando de la fenestro." +msgstr "Alteco de la fenestro je ĝia komenca grando." #: src/settings_translation_file.cpp msgid "Height noise" @@ -3599,6 +3600,9 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" +"Se la limigo de klient-flankaj modifaĵoj por mondera distanco ŝaltiĝas, " +"vokoj\n" +"al get_node limiĝas al ĉi tiu distanco inter la ludanto kaj la mondero." #: src/settings_translation_file.cpp msgid "" @@ -4569,6 +4573,9 @@ msgid "" "updated over\n" "network." msgstr "" +"Longeco de servila agociklo, kaj la intervalo dum kiu objektoj ĝenerale " +"ĝisdatiĝas\n" +"trans la reto." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" @@ -4580,7 +4587,7 @@ msgstr "Tempodaŭro inter rulaj cikloj de NodeTimer" #: src/settings_translation_file.cpp msgid "Length of time between active block management cycles" -msgstr "" +msgstr "Daŭro inter cikloj de aktiva administrado de monderoj" #: src/settings_translation_file.cpp msgid "" @@ -4620,11 +4627,11 @@ msgstr "Akreco de heleco" #: src/settings_translation_file.cpp msgid "Limit of emerge queues on disk" -msgstr "" +msgstr "Limo de viceroj enlegotaj de disko" #: src/settings_translation_file.cpp msgid "Limit of emerge queues to generate" -msgstr "" +msgstr "Limo de viceroj estigotaj" #: src/settings_translation_file.cpp msgid "" @@ -4660,11 +4667,11 @@ msgstr "Glatigo de fluida flueco" #: src/settings_translation_file.cpp msgid "Liquid loop max" -msgstr "" +msgstr "Plejgrando de fluaĵa ciklo" #: src/settings_translation_file.cpp msgid "Liquid queue purge time" -msgstr "" +msgstr "Tempo antaŭ vakigo de fluaĵa atendovico" #: src/settings_translation_file.cpp msgid "Liquid sinking" @@ -4676,7 +4683,7 @@ msgstr "Intervalo inter ĝisdatigoj de fluaĵoj (en sekundoj)." #: src/settings_translation_file.cpp msgid "Liquid update tick" -msgstr "" +msgstr "Longeco de fluaĵa agociklo" #: src/settings_translation_file.cpp msgid "Load the game profiler" @@ -4892,11 +4899,11 @@ msgstr "Senda distanco de mondopecoj" #: src/settings_translation_file.cpp msgid "Max liquids processed per step." -msgstr "" +msgstr "Plejmulto da fluaĵoj traktataj en unu paŝo." #: src/settings_translation_file.cpp msgid "Max. clearobjects extra blocks" -msgstr "" +msgstr "Plejgrando da ekstraj mondopecoj por «clearobjects»" #: src/settings_translation_file.cpp msgid "Max. packets per iteration" @@ -4958,7 +4965,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." -msgstr "" +msgstr "Plejgranda nombro de perforte enlegitaj mondopecoj." #: src/settings_translation_file.cpp msgid "" @@ -5069,7 +5076,7 @@ msgstr "Etmapigo" #: src/settings_translation_file.cpp msgid "Mod channels" -msgstr "" +msgstr "Kanaloj por modifaĵoj" #: src/settings_translation_file.cpp msgid "Modifies the size of the hudbar elements." @@ -5190,7 +5197,7 @@ msgstr "Emfazado de monderoj" #: src/settings_translation_file.cpp msgid "NodeTimer interval" -msgstr "" +msgstr "Intervalo de NodeTimer" #: src/settings_translation_file.cpp msgid "Noises" @@ -5224,6 +5231,22 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" +"Nombro de uzotaj fadenoj enlegontaj.\n" +"AVERTO: Nun ekzistas pluraj eraroj, kiuj povus estigi kolapson kiam\n" +"«num_emerge_threads» pli grandas ol 1. Ĝis ĉi tiu averto foriĝos, ni\n" +"forte rekomendas ke ĉi tiu valoro restu je la norma «1».\n" +"Valoro 0:\n" +"- Memaga elekto. La nombro de fadenoj enlegontaj estos\n" +"- 'nombro de datentraktiloj - 2', kun suba limo de 1.\n" +"Ĉiu alia valoro:\n" +"- Precizigas la nombron de fadenoj enlegontaj, kun suba limo de 1.\n" +"AVERTO: Pligrandigo de la nombro de fadenoj enlegontaj plirapidigas " +"mondestigon,\n" +"sed povas malrapidigi la ludon per ĝenado de aliaj programoj, precipe en " +"reĝimo\n" +"por unu ludanto, kaj/aŭ dum rulado de Lua-kodo en «on_generated». Por " +"multaj\n" +"uzantoj, la optimuma agordo eble estos «1»." #: src/settings_translation_file.cpp msgid "" @@ -5270,9 +5293,8 @@ msgid "Parallax occlusion" msgstr "Paralaksa ombrigo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Parallax occlusion bias" -msgstr "Paralaksa Okludo" +msgstr "Ekarto de paralaksa okludo" #: src/settings_translation_file.cpp msgid "Parallax occlusion iterations" @@ -5338,7 +5360,7 @@ msgstr "Nomo de ludanto" #: src/settings_translation_file.cpp msgid "Player transfer distance" -msgstr "" +msgstr "Distanco por transsendo de ludantoj" #: src/settings_translation_file.cpp msgid "Player versus player" @@ -5928,7 +5950,7 @@ msgstr "Alternativo bruo de tereno" #: src/settings_translation_file.cpp msgid "Terrain base noise" -msgstr "" +msgstr "Bruo de terena bazo" #: src/settings_translation_file.cpp msgid "Terrain height" @@ -6005,7 +6027,7 @@ msgstr "La profundeco de tero aŭ alia surfaca klimata plenigilo." #: src/settings_translation_file.cpp msgid "" "The file path relative to your worldpath in which profiles will be saved to." -msgstr "" +msgstr "La dosierindiko relativa al via mondoindiko, kien konserviĝos profiloj." #: src/settings_translation_file.cpp msgid "The identifier of the joystick to use" @@ -6017,7 +6039,7 @@ msgstr "Longeco (en bilderoj) necesa por komenco de interago kun tuŝekrano." #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." -msgstr "" +msgstr "La reta interfaco kie la servilo aŭskultas." #: src/settings_translation_file.cpp msgid "" @@ -6082,6 +6104,9 @@ msgid "" "capacity until an attempt is made to decrease its size by dumping old queue\n" "items. A value of 0 disables the functionality." msgstr "" +"Tempo (en sekundoj) dum kiu atendovico de fluaĵoj povas superkreski\n" +"la datentraktan kapablon, ĝis oni provos ĝin malgrandigi per forĵeto de\n" +"malnovaj viceroj. Nula valoro malŝaltas la funkcion." #: src/settings_translation_file.cpp msgid "" @@ -6136,7 +6161,7 @@ msgstr "Tagtempo kiam nova mondo ekas, en hormilonoj (0–23999)." #: src/settings_translation_file.cpp msgid "Time send interval" -msgstr "" +msgstr "Intervalo de sendado de tempaj informoj" #: src/settings_translation_file.cpp msgid "Time speed" @@ -6219,7 +6244,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" -msgstr "" +msgstr "Senlima distanco por transsendo de ludantoj" #: src/settings_translation_file.cpp msgid "Unload unused server data" @@ -6362,7 +6387,7 @@ msgstr "Vidodistanco" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "" +msgstr "Virtuala stirstango premas specialan klavon" #: src/settings_translation_file.cpp msgid "Volume" @@ -6376,6 +6401,11 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" +"W-koordinato de la estigita 3D-tranĉo de la 4D-fraktalo.\n" +"Determinas kiu 3D-tranĉo de la 4D-formo estiĝas.\n" +"ŝanĝas la formon de la fraktalo.\n" +"Neniel efikas sur 3D-fraktaloj.\n" +"Ampleksa proksimume de -2 ĝis 2." #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." @@ -6512,7 +6542,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Width component of the initial window size." -msgstr "" +msgstr "Larĝeco de la fenestro je ĝia komenca grando." #: src/settings_translation_file.cpp msgid "Width of the selection box lines around nodes." @@ -6532,6 +6562,8 @@ msgid "" "World directory (everything in the world is stored here).\n" "Not needed if starting from the main menu." msgstr "" +"Monda dosierujo (ĉio en la mondo konserviĝos ĉi tie).\n" +"Ne necesas dum komenco el la ĉefmenuo." #: src/settings_translation_file.cpp msgid "World start time" @@ -6566,6 +6598,8 @@ msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." msgstr "" +"Y de nula nivelo de la transiro de monta denseco. Uzata por movi montojn " +"vertikale." #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." @@ -6589,7 +6623,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of higher terrain that creates cliffs." -msgstr "" +msgstr "Y-nivelo de pli alta tereno, kiu estigas krutaĵojn." #: src/settings_translation_file.cpp msgid "Y-level of lower terrain and seabed." From 1c49e2ffc016a2e883c13733c65e9a91381b813d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81cs=20Zolt=C3=A1n?= Date: Sun, 15 Dec 2019 16:02:25 +0000 Subject: [PATCH 086/624] Translated using Weblate (Hungarian) Currently translated at 61.9% (789 of 1274 strings) --- po/hu/minetest.po | 235 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 179 insertions(+), 56 deletions(-) diff --git a/po/hu/minetest.po b/po/hu/minetest.po index 93ad4bab3..5d481929f 100644 --- a/po/hu/minetest.po +++ b/po/hu/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Hungarian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2019-12-16 22:21+0000\n" +"Last-Translator: Ács Zoltán \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -96,8 +96,9 @@ msgid "Disable all" msgstr "Összes letiltása" #: builtin/mainmenu/dlg_config_world.lua +#, fuzzy msgid "Disable modpack" -msgstr "Modok letíltása" +msgstr "Modok letiltása" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -410,8 +411,9 @@ msgid "Z spread" msgstr "Z méret" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "absvalue" -msgstr "" +msgstr "abszolút érték" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" @@ -1796,32 +1798,37 @@ msgstr "" "1 = relief mapping (lassabb, pontosabb)." #: src/settings_translation_file.cpp +#, fuzzy msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "2D zaj, amely szabályozza a méretét/alakját a hegységeknek" #: src/settings_translation_file.cpp +#, fuzzy msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "2D zaj, amely szabályozza a méretét/alakját a domboknak" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "2D zaj, amely szabályozza az előfordulását/méretét a hegységeknek" #: src/settings_translation_file.cpp +#, fuzzy msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "2D zaj, amely szabályozza az előfordulását/méretét a domboknak" #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "2D zaj, amely szabályozza az elhelyezkedését a folyómedreknek" #: src/settings_translation_file.cpp msgid "3D clouds" @@ -1857,8 +1864,9 @@ msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D-s zaj, amely meghatározza a tömlöcök számát egy mapchunkonként." #: src/settings_translation_file.cpp #, fuzzy @@ -1912,8 +1920,9 @@ msgid "Acceleration in air" msgstr "Gyorsulás levegőben" #: src/settings_translation_file.cpp +#, fuzzy msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Gravitációs gyorsulás, csomópontokban másodpercenként." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2005,26 +2014,32 @@ msgid "Announce to this serverlist." msgstr "Szerver kihirdetése ERRE a szerverlistára." #: src/settings_translation_file.cpp +#, fuzzy msgid "Append item name" -msgstr "" +msgstr "Elem nevének hozzáadása" #: src/settings_translation_file.cpp +#, fuzzy msgid "Append item name to tooltip." -msgstr "" +msgstr "Adja hozzá az elem nevét az eszköztipphez." #: src/settings_translation_file.cpp msgid "Apple trees noise" msgstr "Almafa zaj" #: src/settings_translation_file.cpp +#, fuzzy msgid "Arm inertia" -msgstr "" +msgstr "Kar tehetetlenség" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" +"A kar tehetetlensége reálisabb mozgást biztosít\n" +"a karnak, amikor a kamera mozog." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -2060,8 +2075,9 @@ msgid "Automatic forward key" msgstr "automata Előre gomb" #: src/settings_translation_file.cpp +#, fuzzy msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "Automatikusan felugrik egy blokk magas akadályokra." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." @@ -2072,8 +2088,9 @@ msgid "Autosave screen size" msgstr "Képernyőméret automatikus mentése" #: src/settings_translation_file.cpp +#, fuzzy msgid "Autoscaling mode" -msgstr "" +msgstr "Automatikus méretezés mód" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2209,6 +2226,7 @@ msgid "Center of light curve mid-boost." msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Changes the main menu UI:\n" "- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " @@ -2217,6 +2235,11 @@ msgid "" "be\n" "necessary for smaller screens." msgstr "" +"Megváltoztatja a főmenü felhasználói felületét:\n" +"- Teljes: Több egyjátékos világ, játékválasztás, textúracsomag-választó stb." +"\n" +"- Egyszerű: Egy egyjátékos világ, nincs játék- vagy textúracsomag-választó.\n" +"Szükséges lehet a kisebb képernyőkhöz." #: src/settings_translation_file.cpp msgid "Chat key" @@ -2238,7 +2261,7 @@ msgstr "Sivatag zajának küszöbszintje" #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "" +msgstr "Chat üzenet maximális hossza" #: src/settings_translation_file.cpp msgid "Chat toggle key" @@ -2400,8 +2423,9 @@ msgstr "" "változatlan marad." #: src/settings_translation_file.cpp +#, fuzzy msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Folyadékban a süllyedési sebességet szabályozza." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2480,8 +2504,9 @@ msgid "Dec. volume key" msgstr "Hangerő csökk. gomb" #: src/settings_translation_file.cpp +#, fuzzy msgid "Decrease this to increase liquid resistence to movement." -msgstr "" +msgstr "Csökkentse ezt a folyadék mozgásállóságának növelése érdekében." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2660,8 +2685,9 @@ msgstr "" "Ha az új biome rendszer engedélyezve van, akkor ez mellőzésre kerül." #: src/settings_translation_file.cpp +#, fuzzy msgid "Desynchronize block animation" -msgstr "" +msgstr "Blokk animáció deszinkronizálása" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -2697,12 +2723,14 @@ msgid "Dump the mapgen debug information." msgstr "A térkép-előállítás hibakeresési információinak kiírása." #: src/settings_translation_file.cpp +#, fuzzy msgid "Dungeon maximum Y" -msgstr "" +msgstr "Tömlöc maximális Y magassága" #: src/settings_translation_file.cpp +#, fuzzy msgid "Dungeon minimum Y" -msgstr "" +msgstr "Tömlöc minimális Y magassága" #: src/settings_translation_file.cpp #, fuzzy @@ -2754,14 +2782,18 @@ msgstr "" "használható)." #: src/settings_translation_file.cpp +#, fuzzy msgid "Enable register confirmation" -msgstr "" +msgstr "Regisztermegerősítés engedélyezése" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Enable register confirmation when connecting to server.\n" "If disabled, new account will be registered automatically." msgstr "" +"Engedélyezze a regisztráció megerősítését, amikor csatlakozik a szerverhez.\n" +"Letiltás esetén az új fiók automatikusan regisztrálásra kerül." #: src/settings_translation_file.cpp msgid "" @@ -2828,8 +2860,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Enables caching of facedir rotated meshes." -msgstr "" +msgstr "Engedélyezi az elforgatott rácsvonalak gyorsítótárazását." #: src/settings_translation_file.cpp msgid "Enables filmic tone mapping" @@ -2858,8 +2891,9 @@ msgid "Engine profiling data print interval" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Entity methods" -msgstr "" +msgstr "Egység módszerek" #: src/settings_translation_file.cpp msgid "" @@ -2878,8 +2912,9 @@ msgid "FSAA" msgstr "FSAA" #: src/settings_translation_file.cpp +#, fuzzy msgid "Factor noise" -msgstr "" +msgstr "Tényezőzaj" #: src/settings_translation_file.cpp msgid "Fall bobbing factor" @@ -2982,32 +3017,37 @@ msgid "Fixed map seed" msgstr "lezárt pálya-generáló kód" #: src/settings_translation_file.cpp +#, fuzzy msgid "Fixed virtual joystick" -msgstr "" +msgstr "Rögzített virtuális joystick" #: src/settings_translation_file.cpp +#, fuzzy msgid "Floatland base height noise" -msgstr "" +msgstr "A lebegő hegyek alapmagassága" #: src/settings_translation_file.cpp +#, fuzzy msgid "Floatland base noise" -msgstr "" +msgstr "A lebegő hegyek alapzaja" #: src/settings_translation_file.cpp msgid "Floatland level" msgstr "Lebegő föld szintje" #: src/settings_translation_file.cpp +#, fuzzy msgid "Floatland mountain density" -msgstr "" +msgstr "Lebegő hegyek sűrűsége" #: src/settings_translation_file.cpp msgid "Floatland mountain exponent" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Floatland mountain height" -msgstr "" +msgstr "Lebegő hegyek magassága" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3054,11 +3094,15 @@ msgid "Font size" msgstr "Betűtípus mérete" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Format of player chat messages. The following strings are valid " "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"A játékos csevegési üzeneteinek formátuma. A következő karakterláncok " +"érvényesek:\n" +"@ név, @ üzenet, @ időbélyeg (opcionális)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3182,8 +3226,9 @@ msgid "Generate normalmaps" msgstr "Normálfelületek generálása" #: src/settings_translation_file.cpp +#, fuzzy msgid "Global callbacks" -msgstr "" +msgstr "Globális visszahívások" #: src/settings_translation_file.cpp #, fuzzy @@ -3240,12 +3285,19 @@ msgid "HUD toggle key" msgstr "HUD váltás gomb" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Handling for deprecated lua api calls:\n" "- legacy: (try to) mimic old behaviour (default for release).\n" "- log: mimic and log backtrace of deprecated call (default for debug).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" +"Az elavult lua API hívások kezelése:\n" +"-örökölt: (próbálja meg) a régi viselkedést utánozni (alapértelmezett).\n" +"-log: elavult hívás visszakövetése és naplózása (hibakereséshez " +"alapértelmezett).\n" +"-error: Megszakítja az elavult hívás használatát (javasolt a mod " +"fejlesztőknek)." #: src/settings_translation_file.cpp msgid "" @@ -3257,12 +3309,14 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Heat blend noise" -msgstr "" +msgstr "Hőkevert zaj" #: src/settings_translation_file.cpp +#, fuzzy msgid "Heat noise" -msgstr "" +msgstr "Hőzaj" #: src/settings_translation_file.cpp msgid "Height component of the initial window size." @@ -3273,8 +3327,9 @@ msgid "Height noise" msgstr "Magasság zaj" #: src/settings_translation_file.cpp +#, fuzzy msgid "Height select noise" -msgstr "" +msgstr "A magasságot választó zaj" #: src/settings_translation_file.cpp msgid "High-precision FPU" @@ -3309,30 +3364,39 @@ msgid "Homepage of server, to be displayed in the serverlist." msgstr "A szerver honlapja, ami a szerverlistában megjelenik." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Vízszintes gyorsulás a levegőben ugráskor vagy leeséskor,\n" +"blokk/másodpercben" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Vízszintes és függőleges gyorsulás gyors módban,\n" +"blokk/másodpercben." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." -msgstr "" +msgstr "Vízszintes és függőleges gyorsulás a földön, blokk/másodpercben." #: src/settings_translation_file.cpp +#, fuzzy msgid "Hotbar next key" -msgstr "" +msgstr "Gyorsgomb következő gomb" #: src/settings_translation_file.cpp +#, fuzzy msgid "Hotbar previous key" -msgstr "" +msgstr "Gyorsgomb előző gomb" #: src/settings_translation_file.cpp msgid "Hotbar slot 1 key" @@ -3483,15 +3547,17 @@ msgstr "Milyen szélesek legyenek a folyók" #: src/settings_translation_file.cpp msgid "Humidity blend noise" -msgstr "" +msgstr "Páratartalom keverék zaj" #: src/settings_translation_file.cpp +#, fuzzy msgid "Humidity noise" -msgstr "" +msgstr "Páratartalomzaj" #: src/settings_translation_file.cpp +#, fuzzy msgid "Humidity variation for biomes." -msgstr "" +msgstr "Páratartalom-változás a biomokban." #: src/settings_translation_file.cpp msgid "IPv6" @@ -3554,10 +3620,13 @@ msgstr "" "\"lopakodás\" (sneak) helyett lefelé mászáskor, vagy ereszkedéskor." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "If enabled, actions are recorded for rollback.\n" "This option is only read when server starts." msgstr "" +"Ha engedélyezve van, akkor a műveleteket rögzíti a visszagörgetéshez.\n" +"Ez az opció csak akkor olvasható, amikor a szerver elindul." #: src/settings_translation_file.cpp msgid "If enabled, disable cheat prevention in multiplayer." @@ -3641,8 +3710,9 @@ msgid "Inc. volume key" msgstr "Hangerő növ. gomb" #: src/settings_translation_file.cpp +#, fuzzy msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Kezdeti függőleges sebesség ugráskor, blokk/másodpercben." #: src/settings_translation_file.cpp msgid "" @@ -3651,8 +3721,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Instrument chatcommands on registration." -msgstr "" +msgstr "Chat-parancsok a regisztrációkor." #: src/settings_translation_file.cpp msgid "" @@ -3704,20 +3775,28 @@ msgid "Invert vertical mouse movement." msgstr "Függőleges egérmozgás invertálása." #: src/settings_translation_file.cpp +#, fuzzy msgid "Item entity TTL" -msgstr "" +msgstr "Elem entitás TTL" #: src/settings_translation_file.cpp +#, fuzzy msgid "Iterations" -msgstr "" +msgstr "Ismétlések" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Iterations of the recursive function.\n" "Increasing this increases the amount of fine detail, but also\n" "increases processing load.\n" "At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" +"A rekurzív funkció ismétlései.\n" +"Ennek növelése növeli a finom részletek mennyiségét és\n" +"növeli a feldolgozási terhet.\n" +" 20 ismétléseknél ez a térképgeneráló hasonló terheléssel rendelkezik, mint " +"a V7." #: src/settings_translation_file.cpp msgid "Joystick ID" @@ -3737,6 +3816,7 @@ msgid "Joystick type" msgstr "Botkormány tipus" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Julia set only.\n" "W component of hypercomplex constant.\n" @@ -3744,30 +3824,50 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" +"Julia-halmaz.\n" +"W komponens hiperkomplex állandó.\n" +"Megváltoztatja a fraktál alakját.\n" +"Nincs hatása a 3D Fraktálok.\n" +"Tartomány nagyjából -2 és 2 között." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Julia set only.\n" "X component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Julia-halmaz.\n" +"X komponens hiperkomplex állandó.\n" +"Megváltoztatja a fraktál alakját.\n" +"Tartomány nagyjából -2 és 2 között." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Julia set only.\n" "Y component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Julia-halmaz.\n" +"Y komponens hiperkomplex állandó.\n" +"Megváltoztatja a fraktál alakját.\n" +"Tartomány nagyjából -2 és 2 között." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Julia set only.\n" "Z component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Julia-halmaz.\n" +"Z komponens hiperkomplex konstans.\n" +"Megváltoztatja a fraktál alakját.\n" +"Tartomány nagyjából -2 és 2 között." #: src/settings_translation_file.cpp msgid "Julia w" @@ -4530,8 +4630,11 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy msgid "Kick players who sent more than X messages per 10 seconds." msgstr "" +"Rúgja ki azokat a játékosokat, akik 10 másodpercenként több mint X üzenetet " +"küldtek." #: src/settings_translation_file.cpp #, fuzzy @@ -4590,8 +4693,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" +msgstr "Az Aktív Blokk módosító (ABM) végrehajtási ciklusok közötti időtartam" #: src/settings_translation_file.cpp msgid "Length of time between NodeTimer execution cycles" @@ -4602,6 +4706,7 @@ msgid "Length of time between active block management cycles" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Level of logging to be written to debug.txt:\n" "- (no logging)\n" @@ -4612,6 +4717,14 @@ msgid "" "- info\n" "- verbose" msgstr "" +"A Debug. txt fájlba írandó naplózási szint:\n" +"-semmi (nincs naplózás)\n" +"-minimális (szint nélküli üzenetek)\n" +"-hiba\n" +"-figyelmeztetés\n" +"-cselekvés\n" +"-információ\n" +"-fecsegő" #: src/settings_translation_file.cpp msgid "Light curve mid boost" @@ -4626,8 +4739,9 @@ msgid "Light curve mid boost spread" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Lightness sharpness" -msgstr "" +msgstr "Fényélesség" #: src/settings_translation_file.cpp msgid "Limit of emerge queues on disk" @@ -4662,8 +4776,9 @@ msgid "Liquid fluidity smoothing" msgstr "Folyadék folyékonyságának simítása" #: src/settings_translation_file.cpp +#, fuzzy msgid "Liquid loop max" -msgstr "" +msgstr "Folyadékhullám Max" #: src/settings_translation_file.cpp msgid "Liquid queue purge time" @@ -4675,16 +4790,18 @@ msgid "Liquid sinking" msgstr "Folyadék süllyedés" #: src/settings_translation_file.cpp +#, fuzzy msgid "Liquid update interval in seconds." -msgstr "" +msgstr "A folyadékok frissítési időköze másodpercben." #: src/settings_translation_file.cpp msgid "Liquid update tick" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Load the game profiler" -msgstr "" +msgstr "Töltse be a játék profilját" #: src/settings_translation_file.cpp msgid "" @@ -4699,8 +4816,9 @@ msgid "Loading Block Modifiers" msgstr "Aktív blokk módosító időköze" #: src/settings_translation_file.cpp +#, fuzzy msgid "Lower Y limit of dungeons." -msgstr "" +msgstr "A tömlöcök alsó Y határa." #: src/settings_translation_file.cpp msgid "Main menu script" @@ -4724,8 +4842,9 @@ msgstr "" "problémákat okoz." #: src/settings_translation_file.cpp +#, fuzzy msgid "Makes all liquids opaque" -msgstr "" +msgstr "Az összes folyadékot átlátszatlanná teszi" #: src/settings_translation_file.cpp msgid "Map directory" @@ -4901,8 +5020,9 @@ msgid "Mapgen debug" msgstr "Térkép generátor hibakereső" #: src/settings_translation_file.cpp +#, fuzzy msgid "Mapgen flags" -msgstr "" +msgstr "Térképgeneráló zászlók" #: src/settings_translation_file.cpp msgid "Mapgen name" @@ -4913,8 +5033,9 @@ msgid "Max block generate distance" msgstr "Max blokk generálási távolság" #: src/settings_translation_file.cpp +#, fuzzy msgid "Max block send distance" -msgstr "" +msgstr "Maximális blokkküldési távolság" #: src/settings_translation_file.cpp msgid "Max liquids processed per step." @@ -4925,8 +5046,9 @@ msgid "Max. clearobjects extra blocks" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Max. packets per iteration" -msgstr "" +msgstr "Max csomag ismétlésenként" #: src/settings_translation_file.cpp msgid "Maximum FPS" @@ -4937,8 +5059,9 @@ msgid "Maximum FPS when game is paused." msgstr "Maximum FPS a játék szüneteltetésekor." #: src/settings_translation_file.cpp +#, fuzzy msgid "Maximum forceloaded blocks" -msgstr "" +msgstr "A maximálisan terhelt blokkok" #: src/settings_translation_file.cpp msgid "Maximum hotbar width" From 859ea160e63be3c0eee97e00f7e4ae0c89154f8e Mon Sep 17 00:00:00 2001 From: Yangjun Wang Date: Sat, 14 Dec 2019 16:02:37 +0000 Subject: [PATCH 087/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 63.2% (805 of 1274 strings) --- po/zh_CN/minetest.po | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index e723e35b2..7d282ac18 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2019-12-16 22:21+0000\n" +"Last-Translator: Yangjun Wang \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -25,7 +25,7 @@ msgstr "您已死亡" #: builtin/fstk/ui.lua #, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Lua 脚本发生错误,如一个 mod:" +msgstr "Lua 脚本发生错误:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -118,7 +118,7 @@ msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "No (optional) dependencies" -msgstr "可选依赖:" +msgstr "可选依赖项:" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." @@ -127,7 +127,7 @@ msgstr "未提供游戏描述。" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "No hard dependencies" -msgstr "无依赖关系." +msgstr "无依赖项." #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -136,7 +136,7 @@ msgstr "未提供mod 包描述。" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "No optional dependencies" -msgstr "可选依赖:" +msgstr "可选依赖项:" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -676,9 +676,8 @@ msgid "Fancy Leaves" msgstr "华丽的树叶" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Generate Normal Maps" -msgstr "生成一般地图" +msgstr "生成普通地图" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" @@ -1744,6 +1743,8 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android)修复虚拟操纵杆的位置。\n" +"如果禁用,虚拟操纵杆将居中至第一次触摸的位置。" #: src/settings_translation_file.cpp msgid "" From b44fada29e84a975ce5985a23f050c6499b6b204 Mon Sep 17 00:00:00 2001 From: zaoqi Date: Sat, 21 Dec 2019 07:23:15 +0000 Subject: [PATCH 088/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 65.1% (830 of 1274 strings) --- po/zh_CN/minetest.po | 57 ++++++++++++++------------------------------ 1 file changed, 18 insertions(+), 39 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 7d282ac18..28425c0ab 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-12-16 22:21+0000\n" -"Last-Translator: Yangjun Wang \n" +"PO-Revision-Date: 2019-12-21 23:18+0000\n" +"Last-Translator: zaoqi \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 3.10\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,7 +23,6 @@ msgid "You died" msgstr "您已死亡" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" msgstr "Lua 脚本发生错误:" @@ -116,16 +115,14 @@ msgid "Mod:" msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "可选依赖项:" +msgstr "无(可选)依赖项:" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "未提供游戏描述。" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" msgstr "无依赖项." @@ -134,9 +131,8 @@ msgid "No modpack description provided." msgstr "未提供mod 包描述。" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "可选依赖项:" +msgstr "无可选依赖项:" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -325,7 +321,6 @@ msgid "Enabled" msgstr "已启用" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Lacunarity" msgstr "空白" @@ -439,7 +434,6 @@ msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "安装MOD:“$1“为不支持的文件类型或已损坏" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install: file: \"$1\"" msgstr "安装MOD:文件:”$1“" @@ -768,9 +762,8 @@ msgid "Tone Mapping" msgstr "色调映射" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Touchthreshold: (px)" -msgstr "触控阈值(像素)" +msgstr "触控阈值(px)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" @@ -781,9 +774,8 @@ msgid "Waving Leaves" msgstr "飘动的树叶" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "摇动节点" +msgstr "摇动流体" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -910,12 +902,10 @@ msgid "- Server Name: " msgstr "- 服务器名称: " #: src/client/game.cpp -#, fuzzy msgid "Automatic forward disabled" msgstr "自动转发已禁用" #: src/client/game.cpp -#, fuzzy msgid "Automatic forward enabled" msgstr "自动转发已启用" @@ -997,7 +987,6 @@ msgid "Debug info and profiler graph hidden" msgstr "隐藏的调试信息和 Profiler 图" #: src/client/game.cpp -#, fuzzy msgid "Debug info shown" msgstr "调试信息切换键" @@ -1167,15 +1156,15 @@ msgstr "开" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "" +msgstr "Pitch移动模式已禁用" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "" +msgstr "Pitch移动模式已禁用" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "显示Profiler图" #: src/client/game.cpp msgid "Remote server" @@ -1260,14 +1249,13 @@ msgstr "隐藏分析器" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "显示Profiler (第 %d 页 共 %d 页)" #: src/client/keycode.cpp msgid "Apps" msgstr "应用" #: src/client/keycode.cpp -#, fuzzy msgid "Backspace" msgstr "退格" @@ -1532,7 +1520,7 @@ msgid "Register and Join" msgstr "注册并加入" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1540,8 +1528,7 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"这是你第一次用“%2$s”加入服务器“%1$s”。 如果要继续,一个新的用户信息将在服务器" -"上创建。\n" +"这是你第一次用“%s”加入服务器。 如果要继续,一个新的用户将在服务器上创建。\n" "请重新输入你的密码然后点击“注册”或点击“取消”。" #: src/gui/guiFormSpecMenu.cpp @@ -1583,9 +1570,8 @@ msgid "Console" msgstr "控制台" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Dec. range" -msgstr "可视范围" +msgstr "减少可视范围" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" @@ -1604,9 +1590,8 @@ msgid "Forward" msgstr "向前" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Inc. range" -msgstr "可视范围" +msgstr "增加可视范围" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" @@ -1657,19 +1642,16 @@ msgid "Sneak" msgstr "潜行" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Special" msgstr "特别" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle HUD" -msgstr "切换飞行模式" +msgstr "切换HUD" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle chat log" -msgstr "切换快速移动模式" +msgstr "聊天记录开关" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" @@ -1680,9 +1662,8 @@ msgid "Toggle fly" msgstr "切换飞行模式" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle fog" -msgstr "切换飞行模式" +msgstr "切换快速移动" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" @@ -1693,7 +1674,6 @@ msgid "Toggle noclip" msgstr "切换穿墙模式" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" msgstr "切换快速移动模式" @@ -1722,7 +1702,6 @@ msgid "Exit" msgstr "退出" #: src/gui/guiVolumeChange.cpp -#, fuzzy msgid "Muted" msgstr "静音" From 0d089eab2104ab1909b752096cc07b7035024f54 Mon Sep 17 00:00:00 2001 From: abidin toumi Date: Sun, 22 Dec 2019 07:33:02 +0000 Subject: [PATCH 089/624] Translated using Weblate (Arabic) Currently translated at 6.0% (77 of 1274 strings) --- po/ar/minetest.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/ar/minetest.po b/po/ar/minetest.po index 44d3abba4..d886b2cfa 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-27 20:04+0000\n" +"PO-Revision-Date: 2019-12-23 08:21+0000\n" "Last-Translator: abidin toumi \n" "Language-Team: Arabic \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 3.10\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" @@ -747,7 +747,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" -msgstr "" +msgstr "كل الإعدادات" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" @@ -763,7 +763,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Generate Normal Maps" -msgstr "" +msgstr "ولِد خرائط عادية" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Parallax Occlusion" @@ -787,7 +787,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Settings" -msgstr "" +msgstr "إعدادات" #: builtin/mainmenu/tab_simple_main.lua msgid "Start Singleplayer" @@ -803,7 +803,7 @@ msgstr "" #: src/client/client.cpp msgid "Connection timed out." -msgstr "" +msgstr "انتهت مهلة الاتصال." #: src/client/client.cpp msgid "Loading textures..." From 1102b1fc4c33c3a5b266cae4826c6dd9dfa9a9e9 Mon Sep 17 00:00:00 2001 From: Stas Kies Date: Wed, 25 Dec 2019 11:59:34 +0000 Subject: [PATCH 090/624] Translated using Weblate (German) Currently translated at 100.0% (1274 of 1274 strings) --- po/de/minetest.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/po/de/minetest.po b/po/de/minetest.po index 07332f945..46d023b30 100644 --- a/po/de/minetest.po +++ b/po/de/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: German (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-10-29 11:53+0000\n" -"Last-Translator: Wuzzy \n" +"PO-Revision-Date: 2019-12-26 12:21+0000\n" +"Last-Translator: Stas Kies \n" "Language-Team: German \n" "Language: de\n" @@ -12,7 +12,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.9.1\n" +"X-Generator: Weblate 3.10\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -20,7 +20,7 @@ msgstr "Wiederbeleben" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "Sie sind gestorben" +msgstr "Du bist gestorben!" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -132,7 +132,7 @@ msgstr "Keine harten Abhängigkeiten" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "Keine Modpackbeschreibung verfügbar." +msgstr "Keine Modpack-Beschreibung verfügbar." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" @@ -173,7 +173,7 @@ msgstr "$1 wird heruntergeladen und installiert, bitte warten …" #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "$1 konnte nicht heruntergeladen werden" +msgstr "Fehler beim Download von $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -275,7 +275,7 @@ msgstr "pkgmgr: Fehler beim Löschen von „$1“" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "pkgmgr: Unzulässiger Pfad „$1“" +msgstr "pkgmgr: Ungültiger Pfad „$1“" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" @@ -351,7 +351,7 @@ msgstr "Bitte geben Sie eine gültige Zahl ein." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Standardwert" +msgstr "Zurücksetzen" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" @@ -359,7 +359,7 @@ msgstr "Skalierung" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "Verzeichnis wählen" +msgstr "Verzeichnis auswählen" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select file" @@ -442,11 +442,11 @@ msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "Installieren: Datei: „$1“" +msgstr "Installation: Datei: „$1“" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "Gültige Mod oder gültiges Modpack konnte nicht gefunden werden" +msgstr "Keine gültige Mod oder Modpack gefunden" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -654,7 +654,7 @@ msgstr "Sind Sie sicher, dass Sie die Einzelspielerwelt löschen wollen?" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "Monitorgröße merken" +msgstr "Monitorgröße automatisch merken" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" @@ -858,7 +858,7 @@ msgstr "Bitte wählen Sie einen Namen!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "Angegebene Passwortdatei konnte nicht geöffnet werden: " +msgstr "Fehler beim öffnen der ausgewählten Passwort-Datei: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " From 443ca5c63b4b51d2ab0de1d0aef1513ab0c5a4f9 Mon Sep 17 00:00:00 2001 From: Hotower <271700283@qq.com> Date: Sun, 29 Dec 2019 01:19:57 +0000 Subject: [PATCH 091/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 65.1% (830 of 1274 strings) --- po/zh_CN/minetest.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 28425c0ab..ce83a6180 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-12-21 23:18+0000\n" -"Last-Translator: zaoqi \n" +"PO-Revision-Date: 2019-12-29 06:49+0000\n" +"Last-Translator: Hotower <271700283@qq.com>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -335,7 +335,7 @@ msgstr "补偿" #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Persistance" -msgstr "玩家转移距离" +msgstr "碰撞箱" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." @@ -1726,11 +1726,12 @@ msgstr "" "如果禁用,虚拟操纵杆将居中至第一次触摸的位置。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." -msgstr "" +msgstr "(安卓)使用虚拟操纵杆触发\"aux\"按钮。 如果启用,虚拟操纵杆在主圆圈外会点击\"aux\"按钮。" #: src/settings_translation_file.cpp #, fuzzy From 9c9bcff1073bb95303e681168d7f10ec8792c8e9 Mon Sep 17 00:00:00 2001 From: Osoitz Date: Sun, 29 Dec 2019 11:13:40 +0000 Subject: [PATCH 092/624] Added translation using Weblate (Basque) --- po/eu/minetest.po | 5892 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5892 insertions(+) create mode 100644 po/eu/minetest.po diff --git a/po/eu/minetest.po b/po/eu/minetest.po new file mode 100644 index 000000000..b4e99e6df --- /dev/null +++ b/po/eu/minetest.po @@ -0,0 +1,5892 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the minetest package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: minetest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-10-09 22:02+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred in a Lua script:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Ok" +msgstr "" + +#: builtin/mainmenu/common.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server supports protocol versions between $1 and $2. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server enforces protocol version $1. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We support protocol versions between version $1 and $2." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We only support protocol version $1." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Protocol version mismatch. " +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "World:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Mod:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No (optional) dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No hard dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No optional dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp +msgid "Save" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "enabled" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "All packages" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Games" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Mods" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Downloading and installing $1, please wait..." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Uninstall" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back to Main Menu" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No results" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No packages could be retrieved" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "World name" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "You have no games installed." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Warning: The minimal development test is meant for developers." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "A world named \"$1\" already exists" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "No game selected" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "Are you sure you want to delete \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua +#: src/client/keycode.cpp +msgid "Delete" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: failed to delete \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: invalid path \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_world.lua +msgid "Delete World \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Accept" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "" +"This modpack has an explicit name given in its modpack.conf which will " +"override any renaming here." +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "2D Noise" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Octaves" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Persistance" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Lacunarity" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "defaults" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "eased" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid integer." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select directory" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select file" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "< Back to Settings page" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 (Enabled)" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Failed to install $1 to $2" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to find a valid mod or modpack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find suitable folder name for modpack $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find real mod name for: $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: file: \"$1\"" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: Unsupported file type \"$1\" or broken archive" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 mods" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Installed Packages:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No package description available" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Rename" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No dependencies." +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Use Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Uninstall Package" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Active Contributors" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative Mode" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Announce Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name/Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Bind Address" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Play Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Start Game" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Address / Port" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Name / Password" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Connect" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Ping" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative mode" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Damage enabled" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "PvP enabled" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Fancy Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Trilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "2x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "4x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "8x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Yes" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Connected Glass" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Antialiasing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Autosave Screen Size" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/client/game.cpp +msgid "Change Keys" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "All Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Touchthreshold: (px)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bump Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Tone Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Generate Normal Maps" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Plants" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Start Singleplayer" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Config mods" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Main" +msgstr "" + +#: src/client/client.cpp +msgid "Connection timed out." +msgstr "" + +#: src/client/client.cpp +msgid "Loading textures..." +msgstr "" + +#: src/client/client.cpp +msgid "Rebuilding shaders..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Connection error (timed out?)" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Could not find or load game \"" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Invalid gamespec." +msgstr "" + +#: src/client/fontengine.cpp +msgid "needs_fallback_font" +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating server..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating client..." +msgstr "" + +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/client/game.cpp +msgid "Item definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Node definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "KiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp src/gui/modalMenu.cpp +msgid "ok" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Profiler graph shown" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info and profiler graph hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update enabled" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +msgid "Enabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Disabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "" +"Default Controls:\n" +"No menu visible:\n" +"- single tap: button activate\n" +"- double tap: place/use\n" +"- slide finger: look around\n" +"Menu/Inventory visible:\n" +"- double tap (outside):\n" +" -->close\n" +"- touch stack, touch slot:\n" +" --> move stack\n" +"- touch&drag, tap 2nd finger\n" +" --> place single item to slot\n" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" + +#: src/client/game.cpp +msgid "Continue" +msgstr "" + +#: src/client/game.cpp +msgid "Change Password" +msgstr "" + +#: src/client/game.cpp +msgid "Game paused" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to Menu" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to OS" +msgstr "" + +#: src/client/game.cpp +msgid "Game info:" +msgstr "" + +#: src/client/game.cpp +msgid "- Mode: " +msgstr "" + +#: src/client/game.cpp +msgid "Remote server" +msgstr "" + +#: src/client/game.cpp +msgid "- Address: " +msgstr "" + +#: src/client/game.cpp +msgid "Hosting server" +msgstr "" + +#: src/client/game.cpp +msgid "- Port: " +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "On" +msgstr "" + +#: src/client/game.cpp +msgid "Off" +msgstr "" + +#: src/client/game.cpp +msgid "- Damage: " +msgstr "" + +#: src/client/game.cpp +msgid "- Creative Mode: " +msgstr "" + +#: src/client/game.cpp +msgid "- PvP: " +msgstr "" + +#: src/client/game.cpp +msgid "- Public: " +msgstr "" + +#: src/client/game.cpp +msgid "- Server Name: " +msgstr "" + +#: src/client/game.cpp +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat hidden" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD hidden" +msgstr "" + +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" +msgstr "" + +#: src/client/gameui.cpp +msgid "Profiler hidden" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Middle Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Backspace" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Clear" +msgstr "" + +#: src/client/keycode.cpp +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp +msgid "Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Pause" +msgstr "" + +#: src/client/keycode.cpp +msgid "Caps Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page up" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" +msgstr "" + +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#: src/client/keycode.cpp +msgid "Select" +msgstr "" + +#: src/client/keycode.cpp +msgid "Print" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Snapshot" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 0" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 3" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 4" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 5" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 6" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 7" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 8" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 9" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad *" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad +" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad ." +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad -" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad /" +msgstr "" + +#: src/client/keycode.cpp +msgid "Num Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Scroll Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "Apps" +msgstr "" + +#: src/client/keycode.cpp +msgid "Sleep" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Play" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Zoom" +msgstr "" + +#: src/client/keycode.cpp +msgid "OEM Clear" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +#, c-format +msgid "" +"You are about to join this server with the name \"%s\" for the first time.\n" +"If you proceed, a new account using your credentials will be created on this " +"server.\n" +"Please retype your password and click 'Register and Join' to confirm account " +"creation, or click 'Cancel' to abort." +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiFormSpecMenu.cpp +msgid "Proceed" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "\"Special\" = climb down" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Automatic jumping" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Change camera" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Autoforward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Local command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle HUD" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle chat log" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fog" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "New Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Confirm Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Change" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Exit" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Muted" +msgstr "" + +#: src/gui/modalMenu.cpp +msgid "Enter " +msgstr "" + +#: src/network/clientpackethandler.cpp +msgid "LANG_CODE" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Always fly and fast" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated right clicks when holding the " +"right\n" +"mouse button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Fixes the position of virtual joystick.\n" +"If disabled, virtual joystick will center to first-touch's position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Use virtual joystick to trigger \"aux\" button.\n" +"If enabled, virtual joystick will also tap \"aux\" button when out of main " +"circle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Right key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Adds particles when digging a node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shader path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bumpmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of generated normalmaps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion scale" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving water.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving plants.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS in pause menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near clipping plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.5.\n" +"Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust the gamma encoding for the light tables. Higher numbers are " +"brighter.\n" +"This setting is for the client only and is ignored by the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Darkness sharpness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gradient of light curve at minimum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lightness sharpness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gradient of light curve at maximum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve mid boost" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of light curve mid-boost." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve mid boost center" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Center of light curve mid-boost." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve mid boost spread" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Spread of light curve mid-boost.\n" +"Standard deviation of the mid-boost gaussian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended, and it’s the only driver with\n" +"shader support currently." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D support.\n" +"Currently supported:\n" +"- none: no 3d output.\n" +"- anaglyph: cyan/magenta color 3d.\n" +"- interlaced: odd/even line based polarisation screen support.\n" +"- topbottom: split screen top/bottom.\n" +"- sidebyside: split screen side by side.\n" +"- crossview: Cross-eyed 3d\n" +"- pageflip: quadbuffer based 3d.\n" +"Note that the interlaced mode requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box border color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Useable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ambient occlusion gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name to tooltip." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled in." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to TrueTypeFont or bitmap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow offset, if 0 then shadow will not be drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "This font will be used for certain languages." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to save screenshots at." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce to this serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rollback recording" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shutdown message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server crashes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ask to reconnect after crash" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_range." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amount of messages a player may send per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistence to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistence. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated lua api calls:\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block management interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ABM interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"At this distance the server will aggressively optimize which blocks are sent " +"to\n" +"clients.\n" +"Small values potentially improve performance a lot, at the expense of " +"visible\n" +"rendering glitches (some blocks will not be rendered under water and in " +"caves,\n" +"as well as sometimes on land).\n" +"Setting this to a value greater than max_block_send_distance disables this\n" +"optimization.\n" +"Stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Restricts the access of certain client-side functions on servers.\n" +"Combine the byteflags below to restrict client-side features, or set to 0\n" +"for no restrictions:\n" +"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" +"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" +"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" +"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" +"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Changes the main menu UI:\n" +"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " +"etc.\n" +"- Simple: One singleplayer world, no game or texture pack choosers. May " +"be\n" +"necessary for smaller screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls width of tunnels, a smaller value creates wider tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lava depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deprecated, define and locate cave liquids using biome definitions instead.\n" +"Y of upper limit of lava in large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges' enables the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain density" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls the density of mountain-type floatlands.\n" +"Is a noise offset added to the 'mgv7_np_mountain' noise value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Typical maximum height, above and below midpoint, of floatland mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Alters how mountain-type floatlands taper above and below midpoint." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of floatland midpoint and lake surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shadow limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level to which floatland shadows extend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge underwater noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines areas of floatland smooth terrain.\n" +"Smooth floatlands occur when noise > 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland base height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of hill height and lake depth on floatland smooth terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River valley width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of step mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hill size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridged mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of ridged mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of step mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that locates the river valleys and channels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen flat.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Selects one of 18 fractal types.\n" +"1 = 4D \"Roundy\" mandelbrot set.\n" +"2 = 4D \"Roundy\" julia set.\n" +"3 = 4D \"Squarry\" mandelbrot set.\n" +"4 = 4D \"Squarry\" julia set.\n" +"5 = 4D \"Mandy Cousin\" mandelbrot set.\n" +"6 = 4D \"Mandy Cousin\" julia set.\n" +"7 = 4D \"Variation\" mandelbrot set.\n" +"8 = 4D \"Variation\" julia set.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" mandelbrot set.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" julia set.\n" +"11 = 3D \"Christmas Tree\" mandelbrot set.\n" +"12 = 3D \"Christmas Tree\" julia set.\n" +"13 = 3D \"Mandelbulb\" mandelbrot set.\n" +"14 = 3D \"Mandelbulb\" julia set.\n" +"15 = 3D \"Cosine Mandelbulb\" mandelbrot set.\n" +"16 = 3D \"Cosine Mandelbulb\" julia set.\n" +"17 = 4D \"Mandelbulb\" mandelbrot set.\n" +"18 = 4D \"Mandelbulb\" julia set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slice w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Seabed noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Altitude chill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slope and fill work together to modify the heights." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amplifies the valleys." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" +"WARNING!: There is no benefit, and there are several dangers, in\n" +"increasing this value above 5.\n" +"Reducing this value increases cave and dungeon density.\n" +"Altering this value is for special usage, leaving it unchanged is\n" +"recommended." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Absolute limit of emerge queues" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues on disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"WARNING: Currently there are multiple bugs that may cause crashes when\n" +"'num_emerge_threads' is larger than 1. Until this warning is removed it is\n" +"strongly recommended this value is set to the default '1'.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The URL for the content repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" From 12906ff631595205b52bcb58bae16cdbc8ae5b2c Mon Sep 17 00:00:00 2001 From: Osoitz Date: Sun, 29 Dec 2019 11:14:10 +0000 Subject: [PATCH 093/624] Translated using Weblate (Basque) Currently translated at 9.7% (123 of 1274 strings) --- po/eu/minetest.po | 269 +++++++++++++++++++++++++++------------------- 1 file changed, 159 insertions(+), 110 deletions(-) diff --git a/po/eu/minetest.po b/po/eu/minetest.po index b4e99e6df..7c56f4cb1 100644 --- a/po/eu/minetest.po +++ b/po/eu/minetest.po @@ -8,77 +8,82 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"PO-Revision-Date: 2019-12-30 20:21+0000\n" +"Last-Translator: Osoitz \n" +"Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "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.10\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +msgstr "Hil zara" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" -msgstr "" +msgstr "Birsortu" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "" +msgstr "Zerbitzariak birkonexioa eskatu du:" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "" +msgstr "Birkonektatu" #: builtin/fstk/ui.lua msgid "Main menu" -msgstr "" +msgstr "Menu nagusia" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" -msgstr "" +msgstr "Errore bat gertatu da Lua script batean:" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "" +msgstr "Errore bat gertatu da:" #: builtin/fstk/ui.lua msgid "Ok" -msgstr "" +msgstr "Ados" #: builtin/mainmenu/common.lua src/client/game.cpp msgid "Loading..." -msgstr "" +msgstr "Kargatzen..." #: builtin/mainmenu/common.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "" +"Saia zaitez zerbitzari publikoen zerrenda birgaitzen eta egiazta ezazu zure " +"internet konexioa." #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "" +msgstr "Zerbitzariak $1 eta $2 arteko protokolo bertsioak onartzen ditu. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "" +msgstr "Zerbitzariak $1 protokolo bertsioa darabil. " #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "" +msgstr "$1 eta $2 arteko protokolo bertsioak onartzen ditugu." #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "" +msgstr "$1 bertsioa soilik onartzen dugu." #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " -msgstr "" +msgstr "Protokoloaren bertsioen desadostasuna. " #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "" +msgstr "Mundua:" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -86,36 +91,36 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "" +msgstr "Ez da jolasaren deskripziorik eman." #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" -msgstr "" +msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "" +msgstr "(Aukerako) mendekotasunik ez" #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "" +msgstr "Mendekotasun zorrotzik ez" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "" +msgstr "Aukerako mendekotasunak:" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "" +msgstr "Mendekotasunak:" #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "" +msgstr "Aukerako mendekotasunik ez" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "" +msgstr "Gorde" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua @@ -125,7 +130,7 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "" +msgstr "Utzi" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" @@ -137,15 +142,15 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "" +msgstr "gaituta" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "" +msgstr "Desgaitu denak" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "" +msgstr "Gaitu denak" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -155,17 +160,17 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" -msgstr "" +msgstr "Pakete guztiak" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "" +msgstr "Jolasak" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "" +msgstr "Mod-ak" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -173,99 +178,100 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "" +msgstr "Huts egin du $1 deskargatzean" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading and installing $1, please wait..." -msgstr "" +msgstr "$1 deskargatu eta instalatzen, itxaron mesedez..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Back" -msgstr "" +msgstr "Atzera" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "" +msgstr "Instalatu" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "" +msgstr "Eguneratu" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" -msgstr "" +msgstr "Desinstalatu" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua msgid "Search" -msgstr "" +msgstr "Bilatu" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "" +msgstr "Itzuli menu nagusira" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "" +msgstr "Emaitzarik ez" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "Ezin izan da paketerik eskuratu" #: builtin/mainmenu/dlg_create_world.lua msgid "World name" -msgstr "" +msgstr "Munduaren izena" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "" +msgstr "Hazia" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" -msgstr "" +msgstr "Mapa sortzailea" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "" +msgstr "Jolasa" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" -msgstr "" +msgstr "Sortu" #: builtin/mainmenu/dlg_create_world.lua msgid "You have no games installed." -msgstr "" +msgstr "Ez duzu jolasik instalatuta." #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "" +msgstr "Deskargatu minetest.net zerbitzaritik" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The minimal development test is meant for developers." -msgstr "" +msgstr "Abisua: \"Minimal development test\" garatzaileentzako da." #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" msgstr "" +"Deskargatu jolasen bat, esaterako Minetest Game, minetest.net zerbitzaritik" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "" +msgstr "Badago \"$1\" izeneko mundu bat" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" -msgstr "" +msgstr "Ez da jolasik aukeratu" #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "" +msgstr "Ziur \"$1\" ezabatu nahi duzula?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" -msgstr "" +msgstr "Ezabatu" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" @@ -277,11 +283,11 @@ msgstr "" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "" +msgstr "Ezabatu \"$1\" mundua?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "" +msgstr "Onartu" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -295,15 +301,15 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "" +msgstr "Desgaituta" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "" +msgstr "Gaituta" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" -msgstr "" +msgstr "Arakatu" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" @@ -311,7 +317,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" -msgstr "" +msgstr "Eskala" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" @@ -323,7 +329,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" -msgstr "" +msgstr "2D Zarata" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" @@ -335,7 +341,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" -msgstr "" +msgstr "Iraunkortasuna" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" @@ -343,7 +349,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "" +msgstr "lehenespenak" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" @@ -355,63 +361,63 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" -msgstr "" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" -msgstr "" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" -msgstr "" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" -msgstr "" +msgstr "(Ez da ezarpenaren deskripziorik eman)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "" +msgstr "Sartu baliozko zenbaki oso bat." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." -msgstr "" +msgstr "Balioa gutxienez $1 izan behar da." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must not be larger than $1." -msgstr "" +msgstr "Balioa ezin da $1 baino handiagoa izan." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." -msgstr "" +msgstr "Sartu baliozko zenbaki bat." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "" +msgstr "Hautatu direktorioa" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select file" -msgstr "" +msgstr "Hautatu fitxategia" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "" +msgstr "< Itzuli ezarpenen orrira" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "" +msgstr "Editatu" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "" +msgstr "Berrezarri lehenespena" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "" +msgstr "Erakutsi izen teknikoak" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" -msgstr "" +msgstr "$1 (Gaituta)" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -419,7 +425,7 @@ msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "" +msgstr "Huts egin du $1 %2-n instalatzean" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" @@ -891,7 +897,7 @@ msgstr "" #: src/client/game.cpp msgid "Media..." -msgstr "" +msgstr "Multimedia..." #: src/client/game.cpp msgid "KiB/s" @@ -1028,7 +1034,7 @@ msgstr "" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "Profilariaren grafikoa ikusigai" #: src/client/game.cpp msgid "Wireframe shown" @@ -1036,11 +1042,11 @@ msgstr "" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgstr "Arazte informazioa, profilariaren grafikoa, eta hari-sareta ezkutatuta" #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "Arazte informazioa eta profilariaren grafikoa ezkutatuta" #: src/client/game.cpp msgid "Camera update disabled" @@ -1053,25 +1059,25 @@ msgstr "" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "Ikusmen barrutia maximoan dago: %d" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "Ikusmen barrutia aldatu da: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "Ikusmen barrutia minimoan dago: %d" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "" +msgstr "Gaitu mugagabeko ikusmen barrutia" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "" +msgstr "Desgaitu mugagabeko ikusmen barrutia" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1217,11 +1223,11 @@ msgstr "" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "Profilaria ikusgai (%d/%d orria)" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "Profilaria ezkutatuta" #: src/client/keycode.cpp msgid "Left Button" @@ -1611,15 +1617,15 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "" +msgstr "Pantaila-argazkia" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "" +msgstr "Barruti hautaketa" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" -msgstr "" +msgstr "Barrutia" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" @@ -1635,7 +1641,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "" +msgstr "Komando lokala" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" @@ -2044,10 +2050,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Komando lokalak idazteko txat leihoa irekitzeko tekla.\n" +"Ikusi http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Range select key" -msgstr "" +msgstr "Ikusmen barrutia hautatzeko tekla" #: src/settings_translation_file.cpp msgid "" @@ -2055,6 +2064,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Ikusmen barruti mugagabea txandakatzeko tekla.\n" +"Ikusi http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Fly key" @@ -2615,7 +2627,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Camera update toggle key" -msgstr "" +msgstr "Kameraren eguneraketa txandakatzeko tekla" #: src/settings_translation_file.cpp msgid "" @@ -2623,10 +2635,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Kameraren eguneraketa txandakatzeko tekla. Garapenerako soilik erabilia\n" +"Ikusi http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Debug info toggle key" -msgstr "" +msgstr "Arazte informazioa txandakatzeko tekla" #: src/settings_translation_file.cpp msgid "" @@ -2634,10 +2649,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Arazte informazioa txandakatzeko tekla\n" +"Ikusi http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Profiler toggle key" -msgstr "" +msgstr "Profilaria txandakatzeko tekla" #: src/settings_translation_file.cpp msgid "" @@ -2645,6 +2663,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Profilaria txandakatzeko tekla. Garapenerako soilik erabilia.\n" +"Ikusi http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Toggle camera mode key" @@ -2659,7 +2680,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "View range increase key" -msgstr "" +msgstr "Ikusmen barrutia handitzeko tekla" #: src/settings_translation_file.cpp msgid "" @@ -2667,10 +2688,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Ikusmen barrutia handitzeko tekla.\n" +"Ikusi http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "View range decrease key" -msgstr "" +msgstr "Ikusmen barrutia txikitzeko tekla" #: src/settings_translation_file.cpp msgid "" @@ -2678,6 +2702,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Ikusmen barrutia txikitzeko tekla.\n" +"Ikusi http://irrlicht.sourceforge.net/docu/" +"namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Graphics" @@ -3069,7 +3096,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Viewing range" -msgstr "" +msgstr "Ikusmen barrutia" #: src/settings_translation_file.cpp msgid "View distance in nodes." @@ -3750,7 +3777,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Connect to external media server" -msgstr "" +msgstr "Konektatu kanpo multimedia zerbitzari batera" #: src/settings_translation_file.cpp msgid "" @@ -3759,6 +3786,10 @@ msgid "" "textures)\n" "when connecting to the server." msgstr "" +"Gaitu urruneko multimedia zerbitzariaren erabilera (zerbitzariak ematen " +"badu),\n" +"Urruneko zerbitzariek deskarga azkarragoa eskaini dezakete multimedia " +"deskargatzeko (adib. testurak)." #: src/settings_translation_file.cpp msgid "Client modding" @@ -3926,7 +3957,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Remote media" -msgstr "" +msgstr "Urruneko multimedia" #: src/settings_translation_file.cpp msgid "" @@ -3968,6 +3999,9 @@ msgid "" "This determines how long they are slowed down after placing or removing a " "node." msgstr "" +"Atzerapena murrizteko, blokeen transferentziak moteldu egiten dira jokalari " +"bat zerbait eraikitzen ari denean.\n" +"Honek nodo bat jarri edo kendu ondoren zenbat motelduko diren zehazten du." #: src/settings_translation_file.cpp msgid "Max. packets per iteration" @@ -4080,21 +4114,25 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" -msgstr "" +msgstr "Jokalari transferentzia distantzia mugagabea" #: src/settings_translation_file.cpp msgid "" "Whether players are shown to clients without any range limit.\n" "Deprecated, use the setting player_transfer_distance instead." msgstr "" +"Jokalariak bezeroei barruti mugarik gabe erakutsiko al zaizkien.\n" +"Zaharkitua, erabili player_transfer_distance ezarpena honen ordez." #: src/settings_translation_file.cpp msgid "Player transfer distance" -msgstr "" +msgstr "Jokalariaren transferentzia distantzia" #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" +"Jokalari transferentziaren distantzia maximoa blokeetan definitzen du (0 = " +"mugagabea)." #: src/settings_translation_file.cpp msgid "Player versus player" @@ -4185,7 +4223,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "Objektu aktiboak bidaltzeko barrutia" #: src/settings_translation_file.cpp msgid "" @@ -4195,10 +4233,16 @@ msgid "" "to maintain active objects up to this distance in the direction the\n" "player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" +"Zein distantziatik dakite bezeroek objektuei buruz, mapa blokeetan (16 nodo) " +"adierazita.\n" +"\n" +"Hau active_block_range baino handiagoa ezarriz gero zerbitzariak jokalariak\n" +"begiratzen duen norabidean objektu aktiboak distantzia honetara arte\n" +"mantentzea eragingo du. (Honek gauzak bat batean desagertzea saihestu dezake)" #: src/settings_translation_file.cpp msgid "Active block range" -msgstr "" +msgstr "Bloke aktiboaren barrutia" #: src/settings_translation_file.cpp msgid "" @@ -4615,7 +4659,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Load the game profiler" -msgstr "" +msgstr "Kargatu jolasaren profilaria" #: src/settings_translation_file.cpp msgid "" @@ -4623,6 +4667,9 @@ msgid "" "Provides a /profiler command to access the compiled profile.\n" "Useful for mod developers and server operators." msgstr "" +"Kargatu jolasaren profilaria jolasaren profil datuak jasotzeko.\n" +"/profiler komandoa eskaintzen du jasotako profila atzitzeko.\n" +"Mod garatzaileentzat eta zerbitzari jabeentzat erabilgarria." #: src/settings_translation_file.cpp msgid "Default report format" @@ -4633,6 +4680,8 @@ msgid "" "The default format in which profiles are being saved,\n" "when calling `/profiler save [format]` without format." msgstr "" +"Profilak gordetzeko lehenetsitako formatua,\n" +"`/profiler save [format]` formaturik gabe deitzean erabilia." #: src/settings_translation_file.cpp msgid "Report path" @@ -4703,7 +4752,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Profiler" -msgstr "" +msgstr "Profilaria" #: src/settings_translation_file.cpp msgid "" From 895e9f8d5c0d022e016b764494c9c7ca73cd2a33 Mon Sep 17 00:00:00 2001 From: universales Date: Sun, 29 Dec 2019 19:33:44 +0000 Subject: [PATCH 094/624] Translated using Weblate (Spanish) Currently translated at 61.9% (789 of 1274 strings) --- po/es/minetest.po | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index bf097e64a..1a847df6c 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-02 23:03+0000\n" -"Last-Translator: Vicente Carrasco Alvarez \n" +"PO-Revision-Date: 2019-12-30 20:21+0000\n" +"Last-Translator: universales \n" "Language-Team: Spanish \n" "Language: es\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 3.10\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Has muerto" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Un error ha ocurrido en un script de Lua, tal como en un mod:" +msgstr "Ha ocurrido un error en un script de Lua:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -120,27 +119,24 @@ msgid "Mod:" msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Dependencias opcionales:" +msgstr "Sin dependencias opcionales" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "La descripción del juego no está disponible" +msgstr "La descripción del juego no está disponible." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Sin depenencias." +msgstr "Sin dependencias importantes" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "La descripción del mod no está disponible." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Dependencias opcionales:" +msgstr "Sin dependencias opcionales" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -1940,7 +1936,7 @@ msgstr "Aceleración en el aire" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Aceleración de gravedad, en nodos por segundo por segundo." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2419,7 +2415,7 @@ msgstr "Altura de consola" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" -msgstr "" +msgstr "Lista negra de banderas de ContentDB" #: src/settings_translation_file.cpp #, fuzzy From 4dc833b642ff465446b3eb022482b0670f6a8d15 Mon Sep 17 00:00:00 2001 From: THANOS SIOURDAKIS Date: Sat, 4 Jan 2020 20:43:04 +0000 Subject: [PATCH 095/624] Translated using Weblate (Greek) Currently translated at 1.3% (17 of 1274 strings) --- po/el/minetest.po | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/po/el/minetest.po b/po/el/minetest.po index afc61a060..77c4dd723 100644 --- a/po/el/minetest.po +++ b/po/el/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Greek (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2020-01-06 03:21+0000\n" +"Last-Translator: THANOS SIOURDAKIS \n" "Language-Team: Greek \n" "Language: el\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 3.10\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Πέθανες" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Ένα σφάλμα προέκυψε σε ένα σενάριο Lua, όπως ένα mod:" +msgstr "Ένα σφάλμα προέκυψε σε ένα σενάριο Lua:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -85,11 +84,11 @@ msgstr "Υποστηρίζουμε τις εκδόσεις πρωτοκόλλω #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "" +msgstr "Ματαίωση" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "" +msgstr "Εξαρτήσεις:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" From 91bc190d2164a1d59db0c589b880606a58a55f6f Mon Sep 17 00:00:00 2001 From: Dhimas Wnz Date: Sun, 5 Jan 2020 02:58:03 +0000 Subject: [PATCH 096/624] Translated using Weblate (Indonesian) Currently translated at 96.9% (1234 of 1274 strings) --- po/id/minetest.po | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/po/id/minetest.po b/po/id/minetest.po index 83ccf065e..ac21a69cf 100644 --- a/po/id/minetest.po +++ b/po/id/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Indonesian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-01-06 03:21+0000\n" +"Last-Translator: Dhimas Wnz \n" "Language-Team: Indonesian \n" "Language: id\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,9 +23,8 @@ msgid "You died" msgstr "Anda mati" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Sebuah galat terjadi pada suatu skrip Lua, misalnya satu mod:" +msgstr "Kesalahan terjadi pada suatu skrip Lua:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -119,27 +118,24 @@ msgid "Mod:" msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Tidak harus bergantung pada:" +msgstr "Tidak ada dependensi (opsional)" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Tidak ada penjelasan permainan yang tersedia." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Tidak bergantung pada mod lain." +msgstr "Tidak ada dependensi yang sulit (keterkaitan dengan mod lain)" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Tidak ada penjelasan paket mod yang tersedia." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Tidak harus bergantung pada:" +msgstr "Tidak ada dependensi opsional" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -783,9 +779,8 @@ msgid "Waving Leaves" msgstr "Daun Melambai" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Nodus melambai" +msgstr "Laimbaian Cairan" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1530,7 +1525,7 @@ msgid "Register and Join" msgstr "Daftar dan gabung" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1538,9 +1533,9 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Anda akan bergabung dengan peladen %1$s dengan nama \"%2$s\" untuk pertama " +"Anda akan bergabung dengan server %1$s dengan nama \"%2$s\" untuk pertama " "kalinya. Jika Anda melanjutkan, akun baru yang telah Anda isikan akan dibuat " -"pada peladen ini.\n" +"pada server ini.\n" "Silakan ketik ulang kata sandi Anda dan klik Daftar dan gabung untuk " "mengonfirmasi pembuatan akun atau klik Batal untuk membatalkan." From 1ee8be9d43b22b6576a0dbb066d2fe292595cc3d Mon Sep 17 00:00:00 2001 From: Osoitz Date: Mon, 6 Jan 2020 06:28:54 +0000 Subject: [PATCH 097/624] Translated using Weblate (Basque) Currently translated at 15.1% (192 of 1274 strings) --- po/eu/minetest.po | 144 +++++++++++++++++++++++----------------------- 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/po/eu/minetest.po b/po/eu/minetest.po index 7c56f4cb1..ebc0c9bef 100644 --- a/po/eu/minetest.po +++ b/po/eu/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-12-30 20:21+0000\n" +"PO-Revision-Date: 2020-01-07 07:21+0000\n" "Last-Translator: Osoitz \n" "Language-Team: Basque \n" @@ -1231,23 +1231,23 @@ msgstr "Profilaria ezkutatuta" #: src/client/keycode.cpp msgid "Left Button" -msgstr "" +msgstr "Ezkerreko botoia" #: src/client/keycode.cpp msgid "Right Button" -msgstr "" +msgstr "Eskuineko botoia" #: src/client/keycode.cpp msgid "Middle Button" -msgstr "" +msgstr "Erdiko botoia" #: src/client/keycode.cpp msgid "X Button 1" -msgstr "" +msgstr "1. X botoia" #: src/client/keycode.cpp msgid "X Button 2" -msgstr "" +msgstr "2. X botoia" #: src/client/keycode.cpp msgid "Backspace" @@ -1255,7 +1255,7 @@ msgstr "" #: src/client/keycode.cpp msgid "Tab" -msgstr "" +msgstr "Tabuladorea" #: src/client/keycode.cpp msgid "Clear" @@ -1267,11 +1267,11 @@ msgstr "" #: src/client/keycode.cpp msgid "Shift" -msgstr "" +msgstr "Maius." #: src/client/keycode.cpp msgid "Control" -msgstr "" +msgstr "Ctrl" #: src/client/keycode.cpp msgid "Menu" @@ -1291,11 +1291,11 @@ msgstr "" #: src/client/keycode.cpp msgid "Page up" -msgstr "" +msgstr "Orrialdea gora" #: src/client/keycode.cpp msgid "Page down" -msgstr "" +msgstr "Orrialdea behera" #: src/client/keycode.cpp msgid "End" @@ -1307,51 +1307,51 @@ msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "" +msgstr "Ezkerra" #: src/client/keycode.cpp msgid "Up" -msgstr "" +msgstr "Gora" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Right" -msgstr "" +msgstr "Eskuina" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "Behera" #: src/client/keycode.cpp msgid "Select" -msgstr "" +msgstr "Hautatu" #: src/client/keycode.cpp msgid "Print" -msgstr "" +msgstr "Inprimatu" #: src/client/keycode.cpp msgid "Execute" -msgstr "" +msgstr "Exekutatu" #: src/client/keycode.cpp msgid "Snapshot" -msgstr "" +msgstr "Pantaila-argazkia" #: src/client/keycode.cpp msgid "Insert" -msgstr "" +msgstr "Txertatu" #: src/client/keycode.cpp msgid "Help" -msgstr "" +msgstr "Laguntza" #: src/client/keycode.cpp msgid "Left Windows" -msgstr "" +msgstr "Ezkerreko leihoa" #: src/client/keycode.cpp msgid "Right Windows" -msgstr "" +msgstr "Eskuineko leihoa" #: src/client/keycode.cpp msgid "Numpad 0" @@ -1423,27 +1423,27 @@ msgstr "" #: src/client/keycode.cpp msgid "Left Shift" -msgstr "" +msgstr "Ezkerreko maius." #: src/client/keycode.cpp msgid "Right Shift" -msgstr "" +msgstr "Eskuineko maius." #: src/client/keycode.cpp msgid "Left Control" -msgstr "" +msgstr "Ezkerreko ctrl" #: src/client/keycode.cpp msgid "Right Control" -msgstr "" +msgstr "Eskuineko ctrl" #: src/client/keycode.cpp msgid "Left Menu" -msgstr "" +msgstr "Ezkerreko menua" #: src/client/keycode.cpp msgid "Right Menu" -msgstr "" +msgstr "Eskuineko menua" #: src/client/keycode.cpp msgid "IME Escape" @@ -1467,11 +1467,11 @@ msgstr "" #: src/client/keycode.cpp msgid "Apps" -msgstr "" +msgstr "Aplikazioak" #: src/client/keycode.cpp msgid "Sleep" -msgstr "" +msgstr "Lokartu" #: src/client/keycode.cpp msgid "Erase EOF" @@ -1501,15 +1501,15 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "Eman izena eta hasi saioa" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "" +msgstr "Pasahitzak ez datoz bat!" #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" -msgstr "" +msgstr "Jarraitu" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" @@ -1533,55 +1533,55 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "" +msgstr "sakatu tekla" #: src/gui/guiKeyChangeMenu.cpp msgid "Forward" -msgstr "" +msgstr "Aurrera" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" -msgstr "" +msgstr "Atzera" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" +msgstr "Berezia" #: src/gui/guiKeyChangeMenu.cpp msgid "Jump" -msgstr "" +msgstr "Jauzi" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" -msgstr "" +msgstr "isilean mugitu" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" -msgstr "" +msgstr "Laga" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" -msgstr "" +msgstr "Inbentarioa" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" -msgstr "" +msgstr "Aurreko elementua" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" -msgstr "" +msgstr "Hurrengoa elementua" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "" +msgstr "Aldatu kamera" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "" +msgstr "Txandakatu minimapa" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "" +msgstr "Txandakatu hegaz egitea" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" @@ -1589,7 +1589,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "" +msgstr "Txandakatu azkar" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" @@ -1597,23 +1597,23 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "" +msgstr "Isilarazi" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" -msgstr "" +msgstr "Jaitsi bolumena" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "" +msgstr "Igo bolumena" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" -msgstr "" +msgstr "Aurrera automatikoki" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "" +msgstr "Txata" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" @@ -1625,23 +1625,23 @@ msgstr "Barruti hautaketa" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" -msgstr "Barrutia" +msgstr "Txikitu barrutia" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" -msgstr "" +msgstr "Handitu barrutia" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" -msgstr "" +msgstr "Kontsola" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" -msgstr "" +msgstr "Agindua" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "Komando lokala" +msgstr "Agindu lokala" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" @@ -1905,11 +1905,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Joystick type" -msgstr "" +msgstr "Joystick mota" #: src/settings_translation_file.cpp msgid "The type of joystick" -msgstr "" +msgstr "Joystick mota" #: src/settings_translation_file.cpp msgid "Joystick button repetition interval" @@ -1933,7 +1933,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Forward key" -msgstr "" +msgstr "Aurrera tekla" #: src/settings_translation_file.cpp msgid "" @@ -1944,7 +1944,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Backward key" -msgstr "" +msgstr "Atzera tekla" #: src/settings_translation_file.cpp msgid "" @@ -1956,7 +1956,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Left key" -msgstr "" +msgstr "Ezkerrera tekla" #: src/settings_translation_file.cpp msgid "" @@ -1967,7 +1967,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Right key" -msgstr "" +msgstr "Eskuinera tekla" #: src/settings_translation_file.cpp msgid "" @@ -1978,7 +1978,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Jump key" -msgstr "" +msgstr "Jauzi tekla" #: src/settings_translation_file.cpp msgid "" @@ -1989,7 +1989,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Sneak key" -msgstr "" +msgstr "Isilean mugitu tekla" #: src/settings_translation_file.cpp msgid "" @@ -2002,7 +2002,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Inventory key" -msgstr "" +msgstr "Inbentarioa tekla" #: src/settings_translation_file.cpp msgid "" @@ -2013,7 +2013,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Special key" -msgstr "" +msgstr "Berezia tekla" #: src/settings_translation_file.cpp msgid "" @@ -2024,7 +2024,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Chat key" -msgstr "" +msgstr "Txat tekla" #: src/settings_translation_file.cpp msgid "" @@ -2035,7 +2035,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Command key" -msgstr "" +msgstr "Agindua tekla" #: src/settings_translation_file.cpp msgid "" @@ -2070,7 +2070,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Fly key" -msgstr "" +msgstr "Hegaz egin tekla" #: src/settings_translation_file.cpp msgid "" @@ -2092,7 +2092,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Fast key" -msgstr "" +msgstr "Azkar tekla" #: src/settings_translation_file.cpp msgid "" From 8b6cafa0e049fc078e185ca88dea0b8bd25335cd Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:19:36 +0000 Subject: [PATCH 098/624] Translated using Weblate (Lao) Currently translated at 0.2% (2 of 1274 strings) --- po/lo/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/lo/minetest.po b/po/lo/minetest.po index d52565df1..cfa819a94 100644 --- a/po/lo/minetest.po +++ b/po/lo/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Lao (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Lao \n" "Language: lo\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1681,7 +1681,7 @@ msgstr "" #: src/network/clientpackethandler.cpp msgid "LANG_CODE" -msgstr "" +msgstr "lo" #: src/settings_translation_file.cpp msgid "" From 09ec204e4b6875d630dae53046b61a658d480a8b Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:19:28 +0000 Subject: [PATCH 099/624] Translated using Weblate (Thai) Currently translated at 66.9% (852 of 1274 strings) --- po/th/minetest.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/po/th/minetest.po b/po/th/minetest.po index 70d78ca4e..098198b63 100644 --- a/po/th/minetest.po +++ b/po/th/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Thai (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Thai \n" "Language: th\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1758,9 +1758,8 @@ msgid "Enter " msgstr "ป้อน " #: src/network/clientpackethandler.cpp -#, fuzzy msgid "LANG_CODE" -msgstr "LANG_CODE" +msgstr "th" #: src/settings_translation_file.cpp msgid "" From ddc703c3eca9e3b8980f29620edc79931869a1a3 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:21:38 +0000 Subject: [PATCH 100/624] Translated using Weblate (Filipino) Currently translated at 0.2% (2 of 1274 strings) --- po/fil/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/fil/minetest.po b/po/fil/minetest.po index 5323fa6ed..89ec9ac3b 100644 --- a/po/fil/minetest.po +++ b/po/fil/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Filipino (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Filipino \n" "Language: fil\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 " "|| n % 10 == 6 || n % 10 == 9);\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1682,7 +1682,7 @@ msgstr "" #: src/network/clientpackethandler.cpp msgid "LANG_CODE" -msgstr "" +msgstr "fil" #: src/settings_translation_file.cpp msgid "" From 977319110353b582dc0bfd7ae8373d55f52f02dd Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:21:43 +0000 Subject: [PATCH 101/624] Translated using Weblate (Greek) Currently translated at 1.4% (18 of 1274 strings) --- po/el/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/el/minetest.po b/po/el/minetest.po index 77c4dd723..e04c1a137 100644 --- a/po/el/minetest.po +++ b/po/el/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Greek (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2020-01-06 03:21+0000\n" -"Last-Translator: THANOS SIOURDAKIS \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Greek \n" "Language: el\n" @@ -12,7 +12,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.10\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1683,7 +1683,7 @@ msgstr "" #: src/network/clientpackethandler.cpp msgid "LANG_CODE" -msgstr "" +msgstr "el" #: src/settings_translation_file.cpp msgid "" From 24be3cbb5fe8fed10f084156818cd46afbbf12bd Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:22:07 +0000 Subject: [PATCH 102/624] Translated using Weblate (Basque) Currently translated at 15.1% (193 of 1274 strings) --- po/eu/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/eu/minetest.po b/po/eu/minetest.po index ebc0c9bef..fda4dc7e5 100644 --- a/po/eu/minetest.po +++ b/po/eu/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2020-01-07 07:21+0000\n" -"Last-Translator: Osoitz \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Basque \n" "Language: eu\n" @@ -17,7 +17,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.10\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" @@ -1689,7 +1689,7 @@ msgstr "" #: src/network/clientpackethandler.cpp msgid "LANG_CODE" -msgstr "" +msgstr "eu" #: src/settings_translation_file.cpp msgid "Controls" From bb8acb095d34e58c6aa99d17ed84d513ada0ed87 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:23:47 +0000 Subject: [PATCH 103/624] Translated using Weblate (Portuguese) Currently translated at 100.0% (1274 of 1274 strings) --- po/pt/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/pt/minetest.po b/po/pt/minetest.po index bca432768..3a1c358f1 100644 --- a/po/pt/minetest.po +++ b/po/pt/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-10-29 11:53+0000\n" -"Last-Translator: ssantos \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -12,7 +12,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.9.1\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -867,7 +867,7 @@ msgstr "O caminho fornecido do mundo não existe: " #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "precisa_fonte_reserva" +msgstr "no" #: src/client/game.cpp msgid "" From 3086f5567a262f1ab31286f33c355f2c7a467180 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:19:32 +0000 Subject: [PATCH 104/624] Translated using Weblate (Vietnamese) Currently translated at 2.5% (32 of 1274 strings) --- po/vi/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/vi/minetest.po b/po/vi/minetest.po index 3cf65723f..dc7666458 100644 --- a/po/vi/minetest.po +++ b/po/vi/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Vietnamese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Vietnamese \n" "Language: vi\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1689,7 +1689,7 @@ msgstr "" #: src/network/clientpackethandler.cpp msgid "LANG_CODE" -msgstr "" +msgstr "vi" #: src/settings_translation_file.cpp msgid "" From 67257f44a5a64349a78aeebf3240434152658931 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:21:59 +0000 Subject: [PATCH 105/624] Translated using Weblate (Arabic) Currently translated at 6.1% (78 of 1274 strings) --- po/ar/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/ar/minetest.po b/po/ar/minetest.po index d886b2cfa..349f02b4d 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-12-23 08:21+0000\n" -"Last-Translator: abidin toumi \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Arabic \n" "Language: ar\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 3.10\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" @@ -1687,7 +1687,7 @@ msgstr "" #: src/network/clientpackethandler.cpp msgid "LANG_CODE" -msgstr "" +msgstr "ar" #: src/settings_translation_file.cpp msgid "Controls" From 86ffbc3ec5a76c4308813a18763f80a4b71c5189 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:19:24 +0000 Subject: [PATCH 106/624] Translated using Weblate (Kazakh) Currently translated at 0.2% (2 of 1274 strings) --- po/kk/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/kk/minetest.po b/po/kk/minetest.po index cd847a9b7..d86d6df91 100644 --- a/po/kk/minetest.po +++ b/po/kk/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Kazakh (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Kazakh \n" "Language: kk\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1681,7 +1681,7 @@ msgstr "" #: src/network/clientpackethandler.cpp msgid "LANG_CODE" -msgstr "" +msgstr "kk" #: src/settings_translation_file.cpp msgid "" From 4b7816dbf4a682f4c336f2d9e4d1c2f13cbab359 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:19:41 +0000 Subject: [PATCH 107/624] Translated using Weblate (Burmese) Currently translated at 0.2% (2 of 1274 strings) --- po/my/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/my/minetest.po b/po/my/minetest.po index 272eb01c9..f3d5db609 100644 --- a/po/my/minetest.po +++ b/po/my/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Burmese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Burmese \n" "Language: my\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1681,7 +1681,7 @@ msgstr "" #: src/network/clientpackethandler.cpp msgid "LANG_CODE" -msgstr "" +msgstr "my" #: src/settings_translation_file.cpp msgid "" From f6490859fdb7654e77ecdfdd8ff80423c3572e4b Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 11 Jan 2020 18:21:34 +0000 Subject: [PATCH 108/624] Translated using Weblate (Japanese (Kansai)) Currently translated at 0.2% (2 of 1274 strings) --- po/ja_KS/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/ja_KS/minetest.po b/po/ja_KS/minetest.po index 504aadb3b..2eb3e2e93 100644 --- a/po/ja_KS/minetest.po +++ b/po/ja_KS/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Japanese (Kansai) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 22:02+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2020-01-11 18:26+0000\n" +"Last-Translator: rubenwardy \n" "Language-Team: Japanese (Kansai) \n" "Language: ja_KS\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 3.10.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1681,7 +1681,7 @@ msgstr "" #: src/network/clientpackethandler.cpp msgid "LANG_CODE" -msgstr "" +msgstr "ja_KS" #: src/settings_translation_file.cpp msgid "" From c02f13d33f87e030e89a63767f5f96e03fedc6fe Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Fri, 10 Jan 2020 18:59:43 +0000 Subject: [PATCH 109/624] Release 5.1.1 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4fcb9506a..ecab1cc51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ set(VERSION_PATCH 1) set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string") # Change to false for releases -set(DEVELOPMENT_BUILD TRUE) +set(DEVELOPMENT_BUILD FALSE) set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") if(VERSION_EXTRA) From 2384c10e104fd0c945f3677130e7d25c0a841482 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 9 Jul 2020 22:04:22 +0200 Subject: [PATCH 110/624] Continue with 5.4.0-dev --- CMakeLists.txt | 4 ++-- doc/client_lua_api.txt | 2 +- doc/menu_lua_api.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d33a2a7e..fec9709d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,12 +16,12 @@ set(CLANG_MINIMUM_VERSION "3.4") # Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing set(VERSION_MAJOR 5) -set(VERSION_MINOR 3) +set(VERSION_MINOR 4) set(VERSION_PATCH 0) set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string") # Change to false for releases -set(DEVELOPMENT_BUILD FALSE) +set(DEVELOPMENT_BUILD TRUE) set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") if(VERSION_EXTRA) diff --git a/doc/client_lua_api.txt b/doc/client_lua_api.txt index c9cd8ac93..04815aaa4 100644 --- a/doc/client_lua_api.txt +++ b/doc/client_lua_api.txt @@ -1,4 +1,4 @@ -Minetest Lua Client Modding API Reference 5.3.0 +Minetest Lua Client Modding API Reference 5.4.0 ================================================ * More information at * Developer Wiki: diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt index 724e37855..76bebe08b 100644 --- a/doc/menu_lua_api.txt +++ b/doc/menu_lua_api.txt @@ -1,4 +1,4 @@ -Minetest Lua Mainmenu API Reference 5.3.0 +Minetest Lua Mainmenu API Reference 5.4.0 ========================================= Introduction From b1ff04e06da531dc52f6ee91e2967b39743033e6 Mon Sep 17 00:00:00 2001 From: v-rob Date: Fri, 10 Jul 2020 03:11:26 -0700 Subject: [PATCH 111/624] Formspec: Make dropdowns optionally return event based on index, not value (#9496) --- doc/lua_api.txt | 15 +++++++++++--- src/gui/guiFormSpecMenu.cpp | 39 +++++++++++++++++++++-------------- src/gui/guiFormSpecMenu.h | 1 + src/network/networkprotocol.h | 4 +++- 4 files changed, 39 insertions(+), 20 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index f2a83eca5..2ac4d6766 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2443,7 +2443,7 @@ Elements * `color` is color specified as a `ColorString`. If the alpha component is left blank, the box will be semitransparent. -### `dropdown[,;;;,, ...,;]` +### `dropdown[,;;;,, ...,;;]` * Show a dropdown field * **Important note**: There are two different operation modes: @@ -2454,8 +2454,12 @@ Elements * Fieldname data is transferred to Lua * Items to be shown in dropdown * Index of currently selected dropdown item +* `index event` (optional, allowed parameter since formspec version 4): Specifies the + event field value for selected items. + * `true`: Selected item index + * `false` (default): Selected item value -### `dropdown[,;,;;,, ...,;]` +### `dropdown[,;,;;,, ...,;;]` * Show a dropdown field * **Important note**: This syntax for dropdowns can only be used with the @@ -2468,6 +2472,10 @@ Elements * Fieldname data is transferred to Lua * Items to be shown in dropdown * Index of currently selected dropdown item +* `index event` (optional, allowed parameter since formspec version 4): Specifies the + event field value for selected items. + * `true`: Selected item index + * `false` (default): Selected item value ### `checkbox[,;; From d3e327a853d0cbe339e7e76d0c29c1c941644de0 Mon Sep 17 00:00:00 2001 From: LoneWolfHT Date: Tue, 29 Sep 2020 10:39:36 -0700 Subject: [PATCH 200/624] Update wording of game descriptions in installer (#10441) --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fec9709d4..31f548be7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -249,15 +249,15 @@ cpack_add_component(Docs cpack_add_component(SUBGAME_MINETEST_GAME DISPLAY_NAME "Minetest Game" - DESCRIPTION "The official subgame for the Minetest engine, that can easily extended by mods." - GROUP "Subgames" + DESCRIPTION "The default game bundled in the Minetest engine. Mainly used as a modding base." + GROUP "Games" ) cpack_add_component(SUBGAME_MINIMAL DISPLAY_NAME "Development Test" - DESCRIPTION "A minimal test game helping to develop the engine." + DESCRIPTION "A basic testing environment used for engine development and sometimes for testing mods." DISABLED #DISABLED does not mean it is disabled, and is just not selected by default. - GROUP "Subgames" + GROUP "Games" ) cpack_add_component_group(Subgames From 995d4052610b98821e1dcaf5031477de6f202bef Mon Sep 17 00:00:00 2001 From: "k.h.lai" Date: Wed, 30 Sep 2020 01:39:53 +0800 Subject: [PATCH 201/624] Improve MSVC cmake and update vcpkg instruction (#10407) Remove unnecessary compiler flag for clang-cl Update vcpkg instruction in README.md --- README.md | 5 +++-- src/CMakeLists.txt | 26 ++++++++++++++++---------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 6a3c11f40..a06c3e257 100644 --- a/README.md +++ b/README.md @@ -314,13 +314,14 @@ It is highly recommended to use vcpkg as package manager. After you successfully built vcpkg you can easily install the required libraries: ```powershell -vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit --triplet x64-windows +vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows ``` - `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store. - `openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound. - `freetype` is optional, it allows true-type font rendering. - `luajit` is optional, it replaces the integrated Lua interpreter with a faster just-in-time interpreter. +- `gmp` and `jsoncpp` are optional, otherwise the bundled versions will be compiled There are other optional libraries, but they are not tested if they can build and link correctly. @@ -353,7 +354,7 @@ This is outdated and not recommended. Follow the instructions on https://dev.min Run the following script in PowerShell: ```powershell -cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=0 -DENABLE_CURSES=0 +cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF -DENABLE_SYSTEM_JSONCPP=ON cmake --build . --config Release ``` Make sure that the right compiler is selected and the path to the vcpkg toolchain is correct. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7e1d0bd39..b5d4fae0e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -701,21 +701,14 @@ include(CheckCSourceCompiles) if(MSVC) # Visual Studio - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D WIN32_LEAN_AND_MEAN /MP") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D WIN32_LEAN_AND_MEAN") # EHa enables SEH exceptions (used for catching segfaults) - set(CMAKE_CXX_FLAGS_RELEASE "/EHa /Ox /GL /FD /MD /GS- /Zi /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0 /TP") + set(CMAKE_CXX_FLAGS_RELEASE "/EHa /Ox /MD /GS- /Zi /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0") if(CMAKE_SIZEOF_VOID_P EQUAL 4) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:SSE") endif() - - if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF") - else() - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF") - endif() - - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") set(CMAKE_CXX_FLAGS_SEMIDEBUG "/MDd /Zi /Ob0 /O1 /RTC1") @@ -726,6 +719,19 @@ if(MSVC) # Flags for C files (sqlite) # /MD = dynamically link to MSVCRxxx.dll set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MD") + + # Flags that cannot be shared between cl and clang-cl + # https://clang.llvm.org/docs/UsersManual.html#clang-cl + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld") + + # Disable pragma-pack warning + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-pragma-pack") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /TP /FD /GL") + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG") + endif() else() # GCC or compatible compilers such as Clang set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") From a69bc67ce26348198a29997d076df3a852a3447e Mon Sep 17 00:00:00 2001 From: Paramat Date: Tue, 29 Sep 2020 23:37:03 +0100 Subject: [PATCH 202/624] Improve layout of main menu 'local' tab (#10366) --- builtin/mainmenu/tab_local.lua | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/builtin/mainmenu/tab_local.lua b/builtin/mainmenu/tab_local.lua index a21cf12b1..1aee246fc 100644 --- a/builtin/mainmenu/tab_local.lua +++ b/builtin/mainmenu/tab_local.lua @@ -114,45 +114,44 @@ local function get_formspec(tabview, name, tabdata) ) retval = retval .. - "button[4,3.95;2.6,1;world_delete;".. fgettext("Delete") .. "]" .. - "button[6.5,3.95;2.8,1;world_configure;".. fgettext("Configure") .. "]" .. - "button[9.2,3.95;2.5,1;world_create;".. fgettext("New") .. "]" .. - "label[4,-0.25;".. fgettext("Select World:") .. "]".. - "checkbox[0.25,0.25;cb_creative_mode;".. fgettext("Creative Mode") .. ";" .. + "button[3.9,3.8;2.8,1;world_delete;".. fgettext("Delete") .. "]" .. + "button[6.55,3.8;2.8,1;world_configure;".. fgettext("Configure") .. "]" .. + "button[9.2,3.8;2.8,1;world_create;".. fgettext("New") .. "]" .. + "label[3.9,-0.05;".. fgettext("Select World:") .. "]".. + "checkbox[0,-0.20;cb_creative_mode;".. fgettext("Creative Mode") .. ";" .. dump(core.settings:get_bool("creative_mode")) .. "]".. - "checkbox[0.25,0.7;cb_enable_damage;".. fgettext("Enable Damage") .. ";" .. + "checkbox[0,0.25;cb_enable_damage;".. fgettext("Enable Damage") .. ";" .. dump(core.settings:get_bool("enable_damage")) .. "]".. - "checkbox[0.25,1.15;cb_server;".. fgettext("Host Server") ..";" .. + "checkbox[0,0.7;cb_server;".. fgettext("Host Server") ..";" .. dump(core.settings:get_bool("enable_server")) .. "]" .. - "textlist[4,0.25;7.5,3.7;sp_worlds;" .. + "textlist[3.9,0.4;7.9,3.45;sp_worlds;" .. menu_render_worldlist() .. ";" .. index .. "]" if core.settings:get_bool("enable_server") then retval = retval .. - "button[8.5,4.8;3.2,1;play;".. fgettext("Host Game") .. "]" .. - "checkbox[0.25,1.6;cb_server_announce;" .. fgettext("Announce Server") .. ";" .. + "button[7.9,4.75;4.1,1;play;".. fgettext("Host Game") .. "]" .. + "checkbox[0,1.15;cb_server_announce;" .. fgettext("Announce Server") .. ";" .. dump(core.settings:get_bool("server_announce")) .. "]" .. - "label[0.25,2.2;" .. fgettext("Name/Password") .. "]" .. - "field[0.55,3.2;3.5,0.5;te_playername;;" .. + "field[0.3,2.85;3.8,0.5;te_playername;" .. fgettext("Name") .. ";" .. core.formspec_escape(core.settings:get("name")) .. "]" .. - "pwdfield[0.55,4;3.5,0.5;te_passwd;]" + "pwdfield[0.3,4.05;3.8,0.5;te_passwd;" .. fgettext("Password") .. "]" local bind_addr = core.settings:get("bind_address") if bind_addr ~= nil and bind_addr ~= "" then retval = retval .. - "field[0.55,5.2;2.25,0.5;te_serveraddr;" .. fgettext("Bind Address") .. ";" .. + "field[0.3,5.25;2.5,0.5;te_serveraddr;" .. fgettext("Bind Address") .. ";" .. core.formspec_escape(core.settings:get("bind_address")) .. "]" .. - "field[2.8,5.2;1.25,0.5;te_serverport;" .. fgettext("Port") .. ";" .. + "field[2.85,5.25;1.25,0.5;te_serverport;" .. fgettext("Port") .. ";" .. core.formspec_escape(core.settings:get("port")) .. "]" else retval = retval .. - "field[0.55,5.2;3.5,0.5;te_serverport;" .. fgettext("Server Port") .. ";" .. + "field[0.3,5.25;3.8,0.5;te_serverport;" .. fgettext("Server Port") .. ";" .. core.formspec_escape(core.settings:get("port")) .. "]" end else retval = retval .. - "button[8.5,4.8;3.2,1;play;".. fgettext("Play Game") .. "]" + "button[7.9,4.75;4.1,1;play;" .. fgettext("Play Game") .. "]" end return retval From 79414aa3e5591fdaffa0956a08610a2228042941 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 20 Sep 2020 12:52:35 +0200 Subject: [PATCH 203/624] Settings: Remove unused functions Make Settings-internal functions private --- src/settings.cpp | 87 +++++------------------------------------------- src/settings.h | 49 ++++++++++++++------------- 2 files changed, 33 insertions(+), 103 deletions(-) diff --git a/src/settings.cpp b/src/settings.cpp index 28b72c4e3..56ab9e12b 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -45,7 +45,13 @@ Settings::~Settings() Settings & Settings::operator += (const Settings &other) { - update(other); + if (&other == this) + return *this; + + MutexAutoLock lock(m_mutex); + MutexAutoLock lock2(other.m_mutex); + + updateNoLock(other); return *this; } @@ -512,25 +518,6 @@ u32 Settings::getFlagStr(const std::string &name, const FlagDesc *flagdesc, return flags; } -// N.B. if getStruct() is used to read a non-POD aggregate type, -// the behavior is undefined. -bool Settings::getStruct(const std::string &name, const std::string &format, - void *out, size_t olen) const -{ - std::string valstr; - - try { - valstr = get(name); - } catch (SettingNotFoundException &e) { - return false; - } - - if (!deSerializeStringToStruct(valstr, format, out, olen)) - return false; - - return true; -} - bool Settings::getNoiseParams(const std::string &name, NoiseParams &np) const { @@ -546,6 +533,7 @@ bool Settings::getNoiseParamsFromValue(const std::string &name, if (!getNoEx(name, value)) return false; + // Format: f32,f32,(f32,f32,f32),s32,s32,f32[,f32] Strfnd f(value); np.offset = stof(f.next(",")); @@ -615,28 +603,6 @@ std::vector Settings::getNames() const * Getters that don't throw exceptions * ***************************************/ -bool Settings::getEntryNoEx(const std::string &name, SettingsEntry &val) const -{ - try { - val = getEntry(name); - return true; - } catch (SettingNotFoundException &e) { - return false; - } -} - - -bool Settings::getEntryDefaultNoEx(const std::string &name, SettingsEntry &val) const -{ - try { - val = getEntryDefault(name); - return true; - } catch (SettingNotFoundException &e) { - return false; - } -} - - bool Settings::getGroupNoEx(const std::string &name, Settings *&val) const { try { @@ -908,17 +874,6 @@ bool Settings::setFlagStr(const std::string &name, u32 flags, } -bool Settings::setStruct(const std::string &name, const std::string &format, - void *value) -{ - std::string structstr; - if (!serializeStructToString(&structstr, format, value)) - return false; - - return set(name, structstr); -} - - bool Settings::setNoiseParams(const std::string &name, const NoiseParams &np, bool set_default) { @@ -969,32 +924,6 @@ void Settings::clearDefaults() clearDefaultsNoLock(); } -void Settings::updateValue(const Settings &other, const std::string &name) -{ - if (&other == this) - return; - - MutexAutoLock lock(m_mutex); - - try { - m_settings[name] = other.get(name); - } catch (SettingNotFoundException &e) { - } -} - - -void Settings::update(const Settings &other) -{ - if (&other == this) - return; - - MutexAutoLock lock(m_mutex); - MutexAutoLock lock2(other.m_mutex); - - updateNoLock(other); -} - - SettingsParseEvent Settings::parseConfigObject(const std::string &line, const std::string &end, std::string &name, std::string &value) { diff --git a/src/settings.h b/src/settings.h index ccc252049..7db5539b2 100644 --- a/src/settings.h +++ b/src/settings.h @@ -113,23 +113,10 @@ public: bool parseConfigLines(std::istream &is, const std::string &end = ""); void writeLines(std::ostream &os, u32 tab_depth=0) const; - SettingsParseEvent parseConfigObject(const std::string &line, - const std::string &end, std::string &name, std::string &value); - bool updateConfigObject(std::istream &is, std::ostream &os, - const std::string &end, u32 tab_depth=0); - - static bool checkNameValid(const std::string &name); - static bool checkValueValid(const std::string &value); - static std::string getMultiline(std::istream &is, size_t *num_lines=NULL); - static void printEntry(std::ostream &os, const std::string &name, - const SettingsEntry &entry, u32 tab_depth=0); - /*********** * Getters * ***********/ - const SettingsEntry &getEntry(const std::string &name) const; - const SettingsEntry &getEntryDefault(const std::string &name) const; Settings *getGroup(const std::string &name) const; const std::string &get(const std::string &name) const; const std::string &getDefault(const std::string &name) const; @@ -144,10 +131,6 @@ public: v3f getV3F(const std::string &name) const; u32 getFlagStr(const std::string &name, const FlagDesc *flagdesc, u32 *flagmask) const; - // N.B. if getStruct() is used to read a non-POD aggregate type, - // the behavior is undefined. - bool getStruct(const std::string &name, const std::string &format, - void *out, size_t olen) const; bool getNoiseParams(const std::string &name, NoiseParams &np) const; bool getNoiseParamsFromValue(const std::string &name, NoiseParams &np) const; bool getNoiseParamsFromGroup(const std::string &name, NoiseParams &np) const; @@ -161,8 +144,6 @@ public: * Getters that don't throw exceptions * ***************************************/ - bool getEntryNoEx(const std::string &name, SettingsEntry &val) const; - bool getEntryDefaultNoEx(const std::string &name, SettingsEntry &val) const; bool getGroupNoEx(const std::string &name, Settings *&val) const; bool getNoEx(const std::string &name, std::string &val) const; bool getDefaultNoEx(const std::string &name, std::string &val) const; @@ -206,16 +187,11 @@ public: const FlagDesc *flagdesc = nullptr, u32 flagmask = U32_MAX); bool setNoiseParams(const std::string &name, const NoiseParams &np, bool set_default=false); - // N.B. if setStruct() is used to write a non-POD aggregate type, - // the behavior is undefined. - bool setStruct(const std::string &name, const std::string &format, void *value); // remove a setting bool remove(const std::string &name); void clear(); void clearDefaults(); - void updateValue(const Settings &other, const std::string &name); - void update(const Settings &other); /************** * Miscellany * @@ -232,6 +208,31 @@ public: SettingsChangedCallback cbf, void *userdata = NULL); private: + /*********************** + * Reading and writing * + ***********************/ + + SettingsParseEvent parseConfigObject(const std::string &line, + const std::string &end, std::string &name, std::string &value); + bool updateConfigObject(std::istream &is, std::ostream &os, + const std::string &end, u32 tab_depth=0); + + static bool checkNameValid(const std::string &name); + static bool checkValueValid(const std::string &value); + static std::string getMultiline(std::istream &is, size_t *num_lines=NULL); + static void printEntry(std::ostream &os, const std::string &name, + const SettingsEntry &entry, u32 tab_depth=0); + + /*********** + * Getters * + ***********/ + + const SettingsEntry &getEntry(const std::string &name) const; + const SettingsEntry &getEntryDefault(const std::string &name) const; + + // Allow TestSettings to run sanity checks using private functions. + friend class TestSettings; + void updateNoLock(const Settings &other); void clearNoLock(); void clearDefaultsNoLock(); From ca5c2dbefab3676514e48b445b36de50993de9f1 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 20 Sep 2020 13:04:01 +0200 Subject: [PATCH 204/624] Clean up serialization This reverts 1a5b4b3 and further functions in serialize.cpp that are unused The intend for a sane NetworkPacket/stream replacement was good, but a wrapper class around i/ostream might be more versatile than introducing a new vector-based serialization class. --- src/unittest/test_serialization.cpp | 324 -------------------------- src/util/serialize.cpp | 349 ---------------------------- src/util/serialize.h | 242 ------------------- 3 files changed, 915 deletions(-) diff --git a/src/unittest/test_serialization.cpp b/src/unittest/test_serialization.cpp index 51e28f144..d72bf0d4c 100644 --- a/src/unittest/test_serialization.cpp +++ b/src/unittest/test_serialization.cpp @@ -32,18 +32,12 @@ public: void buildTestStrings(); void testSerializeString(); - void testSerializeWideString(); void testSerializeLongString(); void testSerializeJsonString(); - void testSerializeHex(); void testDeSerializeString(); - void testDeSerializeWideString(); void testDeSerializeLongString(); void testStreamRead(); void testStreamWrite(); - void testVecPut(); - void testStringLengthLimits(); - void testBufReader(); void testFloatFormat(); std::string teststring2; @@ -61,17 +55,11 @@ void TestSerialization::runTests(IGameDef *gamedef) TEST(testSerializeString); TEST(testDeSerializeString); - TEST(testSerializeWideString); - TEST(testDeSerializeWideString); TEST(testSerializeLongString); TEST(testDeSerializeLongString); TEST(testSerializeJsonString); - TEST(testSerializeHex); TEST(testStreamRead); TEST(testStreamWrite); - TEST(testVecPut); - TEST(testStringLengthLimits); - TEST(testBufReader); TEST(testFloatFormat); } @@ -136,50 +124,6 @@ void TestSerialization::testDeSerializeString() } } -void TestSerialization::testSerializeWideString() -{ - // Test blank string - UASSERT(serializeWideString(L"") == mkstr("\0\0")); - - // Test basic string - UASSERT(serializeWideString(utf8_to_wide("Hello world!")) == - mkstr("\0\14\0H\0e\0l\0l\0o\0 \0w\0o\0r\0l\0d\0!")); - - // Test character range - UASSERT(serializeWideString(teststring2_w) == - mkstr("\1\0") + teststring2_w_encoded); -} - -void TestSerialization::testDeSerializeWideString() -{ - // Test deserialize - { - std::istringstream is(serializeWideString(teststring2_w), std::ios::binary); - UASSERT(deSerializeWideString(is) == teststring2_w); - UASSERT(!is.eof()); - is.get(); - UASSERT(is.eof()); - } - - // Test deserialize an incomplete length specifier - { - std::istringstream is(mkstr("\x53"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeWideString(is)); - } - - // Test deserialize a string with an incomplete character - { - std::istringstream is(mkstr("\x00\x07\0a\0b\0c\0d\0e\0f\0"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeWideString(is)); - } - - // Test deserialize a string with incomplete data - { - std::istringstream is(mkstr("\x00\x08\0a\0b\0c\0d\0e\0f"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeWideString(is)); - } -} - void TestSerialization::testSerializeLongString() { // Test blank string @@ -268,25 +212,6 @@ void TestSerialization::testSerializeJsonString() UASSERT(is.eof()); } -void TestSerialization::testSerializeHex() -{ - // Test blank string - UASSERT(serializeHexString("") == ""); - UASSERT(serializeHexString("", true) == ""); - - // Test basic string - UASSERT(serializeHexString("Hello world!") == - "48656c6c6f20776f726c6421"); - UASSERT(serializeHexString("Hello world!", true) == - "48 65 6c 6c 6f 20 77 6f 72 6c 64 21"); - - // Test binary string - UASSERT(serializeHexString(mkstr("\x00\x0a\xb0\x63\x1f\x00\xff")) == - "000ab0631f00ff"); - UASSERT(serializeHexString(mkstr("\x00\x0a\xb0\x63\x1f\x00\xff"), true) == - "00 0a b0 63 1f 00 ff"); -} - void TestSerialization::testStreamRead() { @@ -376,255 +301,6 @@ void TestSerialization::testStreamWrite() } -void TestSerialization::testVecPut() -{ - std::vector buf; - - putU8(&buf, 0x11); - putU16(&buf, 0x2233); - putU32(&buf, 0x44556677); - putU64(&buf, 0x8899AABBCCDDEEFFLL); - - putS8(&buf, -128); - putS16(&buf, 30000); - putS32(&buf, -6); - putS64(&buf, -43); - - putF1000(&buf, 53.53467f); - putF1000(&buf, -300000.32f); - putF1000(&buf, F1000_MIN); - putF1000(&buf, F1000_MAX); - - putString(&buf, "foobar!"); - - putV2S16(&buf, v2s16(500, 500)); - putV3S16(&buf, v3s16(4207, 604, -30)); - putV2S32(&buf, v2s32(1920, 1080)); - putV3S32(&buf, v3s32(-400, 6400054, 290549855)); - - putWideString(&buf, L"\x02~woof~\x5455"); - - putV3F1000(&buf, v3f(500, 10024.2f, -192.54f)); - putARGB8(&buf, video::SColor(255, 128, 50, 128)); - - putLongString(&buf, "some longer string here"); - - putU16(&buf, 0xF00D); - - UASSERT(buf.size() == sizeof(test_serialized_data)); - UASSERT(!memcmp(&buf[0], test_serialized_data, sizeof(test_serialized_data))); -} - - -void TestSerialization::testStringLengthLimits() -{ - std::vector buf; - std::string too_long(STRING_MAX_LEN + 1, 'A'); - std::string way_too_large(LONG_STRING_MAX_LEN + 1, 'B'); - std::wstring too_long_wide(WIDE_STRING_MAX_LEN + 1, L'C'); - - EXCEPTION_CHECK(SerializationError, putString(&buf, too_long)); - - putLongString(&buf, too_long); - too_long.resize(too_long.size() - 1); - putString(&buf, too_long); - - EXCEPTION_CHECK(SerializationError, putWideString(&buf, too_long_wide)); - too_long_wide.resize(too_long_wide.size() - 1); - putWideString(&buf, too_long_wide); -} - - -void TestSerialization::testBufReader() -{ - u8 u8_data; - u16 u16_data; - u32 u32_data; - u64 u64_data; - s8 s8_data; - s16 s16_data; - s32 s32_data; - s64 s64_data; - f32 f32_data, f32_data2, f32_data3, f32_data4; - video::SColor scolor_data; - v2s16 v2s16_data; - v3s16 v3s16_data; - v2s32 v2s32_data; - v3s32 v3s32_data; - v3f v3f_data; - std::string string_data; - std::wstring widestring_data; - std::string longstring_data; - u8 raw_data[10] = {0}; - - BufReader buf(test_serialized_data, sizeof(test_serialized_data)); - - // Try reading data like normal - UASSERT(buf.getU8() == 0x11); - UASSERT(buf.getU16() == 0x2233); - UASSERT(buf.getU32() == 0x44556677); - UASSERT(buf.getU64() == 0x8899AABBCCDDEEFFLL); - UASSERT(buf.getS8() == -128); - UASSERT(buf.getS16() == 30000); - UASSERT(buf.getS32() == -6); - UASSERT(buf.getS64() == -43); - UASSERT(buf.getF1000() == 53.534f); - UASSERT(buf.getF1000() == -300000.32f); - UASSERT(buf.getF1000() == F1000_MIN); - UASSERT(buf.getF1000() == F1000_MAX); - UASSERT(buf.getString() == "foobar!"); - UASSERT(buf.getV2S16() == v2s16(500, 500)); - UASSERT(buf.getV3S16() == v3s16(4207, 604, -30)); - UASSERT(buf.getV2S32() == v2s32(1920, 1080)); - UASSERT(buf.getV3S32() == v3s32(-400, 6400054, 290549855)); - UASSERT(buf.getWideString() == L"\x02~woof~\x5455"); - UASSERT(buf.getV3F1000() == v3f(500, 10024.2f, -192.54f)); - UASSERT(buf.getARGB8() == video::SColor(255, 128, 50, 128)); - UASSERT(buf.getLongString() == "some longer string here"); - - // Verify the offset and data is unchanged after a failed read - size_t orig_pos = buf.pos; - u32_data = 0; - UASSERT(buf.getU32NoEx(&u32_data) == false); - UASSERT(buf.pos == orig_pos); - UASSERT(u32_data == 0); - - // Now try the same for a failed string read - UASSERT(buf.getStringNoEx(&string_data) == false); - UASSERT(buf.pos == orig_pos); - UASSERT(string_data == ""); - - // Now try the same for a failed string read - UASSERT(buf.getWideStringNoEx(&widestring_data) == false); - UASSERT(buf.pos == orig_pos); - UASSERT(widestring_data == L""); - - UASSERT(buf.getU16() == 0xF00D); - - UASSERT(buf.remaining() == 0); - - // Check to make sure these each blow exceptions as they're supposed to - EXCEPTION_CHECK(SerializationError, buf.getU8()); - EXCEPTION_CHECK(SerializationError, buf.getU16()); - EXCEPTION_CHECK(SerializationError, buf.getU32()); - EXCEPTION_CHECK(SerializationError, buf.getU64()); - - EXCEPTION_CHECK(SerializationError, buf.getS8()); - EXCEPTION_CHECK(SerializationError, buf.getS16()); - EXCEPTION_CHECK(SerializationError, buf.getS32()); - EXCEPTION_CHECK(SerializationError, buf.getS64()); - - EXCEPTION_CHECK(SerializationError, buf.getF1000()); - EXCEPTION_CHECK(SerializationError, buf.getARGB8()); - - EXCEPTION_CHECK(SerializationError, buf.getV2S16()); - EXCEPTION_CHECK(SerializationError, buf.getV3S16()); - EXCEPTION_CHECK(SerializationError, buf.getV2S32()); - EXCEPTION_CHECK(SerializationError, buf.getV3S32()); - EXCEPTION_CHECK(SerializationError, buf.getV3F1000()); - - EXCEPTION_CHECK(SerializationError, buf.getString()); - EXCEPTION_CHECK(SerializationError, buf.getWideString()); - EXCEPTION_CHECK(SerializationError, buf.getLongString()); - EXCEPTION_CHECK(SerializationError, - buf.getRawData(raw_data, sizeof(raw_data))); - - // See if we can skip backwards - buf.pos = 5; - UASSERT(buf.getRawDataNoEx(raw_data, 3) == true); - UASSERT(raw_data[0] == 0x66); - UASSERT(raw_data[1] == 0x77); - UASSERT(raw_data[2] == 0x88); - - UASSERT(buf.getU32() == 0x99AABBCC); - UASSERT(buf.pos == 12); - - // Now let's try it all over again using the NoEx variants - buf.pos = 0; - - UASSERT(buf.getU8NoEx(&u8_data)); - UASSERT(buf.getU16NoEx(&u16_data)); - UASSERT(buf.getU32NoEx(&u32_data)); - UASSERT(buf.getU64NoEx(&u64_data)); - - UASSERT(buf.getS8NoEx(&s8_data)); - UASSERT(buf.getS16NoEx(&s16_data)); - UASSERT(buf.getS32NoEx(&s32_data)); - UASSERT(buf.getS64NoEx(&s64_data)); - - UASSERT(buf.getF1000NoEx(&f32_data)); - UASSERT(buf.getF1000NoEx(&f32_data2)); - UASSERT(buf.getF1000NoEx(&f32_data3)); - UASSERT(buf.getF1000NoEx(&f32_data4)); - - UASSERT(buf.getStringNoEx(&string_data)); - UASSERT(buf.getV2S16NoEx(&v2s16_data)); - UASSERT(buf.getV3S16NoEx(&v3s16_data)); - UASSERT(buf.getV2S32NoEx(&v2s32_data)); - UASSERT(buf.getV3S32NoEx(&v3s32_data)); - UASSERT(buf.getWideStringNoEx(&widestring_data)); - UASSERT(buf.getV3F1000NoEx(&v3f_data)); - UASSERT(buf.getARGB8NoEx(&scolor_data)); - - UASSERT(buf.getLongStringNoEx(&longstring_data)); - - // and make sure we got the correct data - UASSERT(u8_data == 0x11); - UASSERT(u16_data == 0x2233); - UASSERT(u32_data == 0x44556677); - UASSERT(u64_data == 0x8899AABBCCDDEEFFLL); - UASSERT(s8_data == -128); - UASSERT(s16_data == 30000); - UASSERT(s32_data == -6); - UASSERT(s64_data == -43); - UASSERT(f32_data == 53.534f); - UASSERT(f32_data2 == -300000.32f); - UASSERT(f32_data3 == F1000_MIN); - UASSERT(f32_data4 == F1000_MAX); - UASSERT(string_data == "foobar!"); - UASSERT(v2s16_data == v2s16(500, 500)); - UASSERT(v3s16_data == v3s16(4207, 604, -30)); - UASSERT(v2s32_data == v2s32(1920, 1080)); - UASSERT(v3s32_data == v3s32(-400, 6400054, 290549855)); - UASSERT(widestring_data == L"\x02~woof~\x5455"); - UASSERT(v3f_data == v3f(500, 10024.2f, -192.54f)); - UASSERT(scolor_data == video::SColor(255, 128, 50, 128)); - UASSERT(longstring_data == "some longer string here"); - - UASSERT(buf.remaining() == 2); - UASSERT(buf.getRawDataNoEx(raw_data, 3) == false); - UASSERT(buf.remaining() == 2); - UASSERT(buf.getRawDataNoEx(raw_data, 2) == true); - UASSERT(raw_data[0] == 0xF0); - UASSERT(raw_data[1] == 0x0D); - UASSERT(buf.remaining() == 0); - - // Make sure no more available data causes a failure - UASSERT(!buf.getU8NoEx(&u8_data)); - UASSERT(!buf.getU16NoEx(&u16_data)); - UASSERT(!buf.getU32NoEx(&u32_data)); - UASSERT(!buf.getU64NoEx(&u64_data)); - - UASSERT(!buf.getS8NoEx(&s8_data)); - UASSERT(!buf.getS16NoEx(&s16_data)); - UASSERT(!buf.getS32NoEx(&s32_data)); - UASSERT(!buf.getS64NoEx(&s64_data)); - - UASSERT(!buf.getF1000NoEx(&f32_data)); - UASSERT(!buf.getARGB8NoEx(&scolor_data)); - - UASSERT(!buf.getV2S16NoEx(&v2s16_data)); - UASSERT(!buf.getV3S16NoEx(&v3s16_data)); - UASSERT(!buf.getV2S32NoEx(&v2s32_data)); - UASSERT(!buf.getV3S32NoEx(&v3s32_data)); - UASSERT(!buf.getV3F1000NoEx(&v3f_data)); - - UASSERT(!buf.getStringNoEx(&string_data)); - UASSERT(!buf.getWideStringNoEx(&widestring_data)); - UASSERT(!buf.getLongStringNoEx(&longstring_data)); - UASSERT(!buf.getRawDataNoEx(raw_data, sizeof(raw_data))); -} - void TestSerialization::testFloatFormat() { FloatType type = getFloatSerializationType(); diff --git a/src/util/serialize.cpp b/src/util/serialize.cpp index 5b276668d..fd5cbda21 100644 --- a/src/util/serialize.cpp +++ b/src/util/serialize.cpp @@ -30,74 +30,6 @@ with this program; if not, write to the Free Software Foundation, Inc., FloatType g_serialize_f32_type = FLOATTYPE_UNKNOWN; -//// -//// BufReader -//// - -bool BufReader::getStringNoEx(std::string *val) -{ - u16 num_chars; - if (!getU16NoEx(&num_chars)) - return false; - - if (pos + num_chars > size) { - pos -= sizeof(num_chars); - return false; - } - - val->assign((const char *)data + pos, num_chars); - pos += num_chars; - - return true; -} - -bool BufReader::getWideStringNoEx(std::wstring *val) -{ - u16 num_chars; - if (!getU16NoEx(&num_chars)) - return false; - - if (pos + num_chars * 2 > size) { - pos -= sizeof(num_chars); - return false; - } - - for (size_t i = 0; i != num_chars; i++) { - val->push_back(readU16(data + pos)); - pos += 2; - } - - return true; -} - -bool BufReader::getLongStringNoEx(std::string *val) -{ - u32 num_chars; - if (!getU32NoEx(&num_chars)) - return false; - - if (pos + num_chars > size) { - pos -= sizeof(num_chars); - return false; - } - - val->assign((const char *)data + pos, num_chars); - pos += num_chars; - - return true; -} - -bool BufReader::getRawDataNoEx(void *val, size_t len) -{ - if (pos + len > size) - return false; - - memcpy(val, data + pos, len); - pos += len; - - return true; -} - //// //// String @@ -404,284 +336,3 @@ std::string deSerializeJsonStringIfNeeded(std::istream &is) return tmp_os.str(); } -//// -//// String/Struct conversions -//// - -bool deSerializeStringToStruct(std::string valstr, - std::string format, void *out, size_t olen) -{ - size_t len = olen; - std::vector strs_alloced; - std::string *str; - char *f, *snext; - size_t pos; - - char *s = &valstr[0]; - char *buf = new char[len]; - char *bufpos = buf; - - char *fmtpos, *fmt = &format[0]; - while ((f = strtok_r(fmt, ",", &fmtpos)) && s) { - fmt = nullptr; - - bool is_unsigned = false; - int width = 0; - char valtype = *f; - - width = (int)strtol(f + 1, &f, 10); - if (width && valtype == 's') - valtype = 'i'; - - switch (valtype) { - case 'u': - is_unsigned = true; - /* FALLTHROUGH */ - case 'i': - if (width == 16) { - bufpos += PADDING(bufpos, u16); - if ((bufpos - buf) + sizeof(u16) <= len) { - if (is_unsigned) - *(u16 *)bufpos = (u16)strtoul(s, &s, 10); - else - *(s16 *)bufpos = (s16)strtol(s, &s, 10); - } - bufpos += sizeof(u16); - } else if (width == 32) { - bufpos += PADDING(bufpos, u32); - if ((bufpos - buf) + sizeof(u32) <= len) { - if (is_unsigned) - *(u32 *)bufpos = (u32)strtoul(s, &s, 10); - else - *(s32 *)bufpos = (s32)strtol(s, &s, 10); - } - bufpos += sizeof(u32); - } else if (width == 64) { - bufpos += PADDING(bufpos, u64); - if ((bufpos - buf) + sizeof(u64) <= len) { - if (is_unsigned) - *(u64 *)bufpos = (u64)strtoull(s, &s, 10); - else - *(s64 *)bufpos = (s64)strtoll(s, &s, 10); - } - bufpos += sizeof(u64); - } - s = strchr(s, ','); - break; - case 'b': - snext = strchr(s, ','); - if (snext) - *snext++ = 0; - - bufpos += PADDING(bufpos, bool); - if ((bufpos - buf) + sizeof(bool) <= len) - *(bool *)bufpos = is_yes(std::string(s)); - bufpos += sizeof(bool); - - s = snext; - break; - case 'f': - bufpos += PADDING(bufpos, float); - if ((bufpos - buf) + sizeof(float) <= len) - *(float *)bufpos = strtof(s, &s); - bufpos += sizeof(float); - - s = strchr(s, ','); - break; - case 's': - while (*s == ' ' || *s == '\t') - s++; - if (*s++ != '"') //error, expected string - goto fail; - snext = s; - - while (snext[0] && !(snext[-1] != '\\' && snext[0] == '"')) - snext++; - *snext++ = 0; - - bufpos += PADDING(bufpos, std::string *); - - str = new std::string(s); - pos = 0; - while ((pos = str->find("\\\"", pos)) != std::string::npos) - str->erase(pos, 1); - - if ((bufpos - buf) + sizeof(std::string *) <= len) - *(std::string **)bufpos = str; - bufpos += sizeof(std::string *); - strs_alloced.push_back(str); - - s = *snext ? snext + 1 : nullptr; - break; - case 'v': - while (*s == ' ' || *s == '\t') - s++; - if (*s++ != '(') //error, expected vector - goto fail; - - if (width == 2) { - bufpos += PADDING(bufpos, v2f); - - if ((bufpos - buf) + sizeof(v2f) <= len) { - v2f *v = (v2f *)bufpos; - v->X = strtof(s, &s); - s++; - v->Y = strtof(s, &s); - } - - bufpos += sizeof(v2f); - } else if (width == 3) { - bufpos += PADDING(bufpos, v3f); - if ((bufpos - buf) + sizeof(v3f) <= len) { - v3f *v = (v3f *)bufpos; - v->X = strtof(s, &s); - s++; - v->Y = strtof(s, &s); - s++; - v->Z = strtof(s, &s); - } - - bufpos += sizeof(v3f); - } - s = strchr(s, ','); - break; - default: //error, invalid format specifier - goto fail; - } - - if (s && *s == ',') - s++; - - if ((size_t)(bufpos - buf) > len) //error, buffer too small - goto fail; - } - - if (f && *f) { //error, mismatched number of fields and values -fail: - for (size_t i = 0; i != strs_alloced.size(); i++) - delete strs_alloced[i]; - delete[] buf; - return false; - } - - memcpy(out, buf, olen); - delete[] buf; - return true; -} - -// Casts *buf to a signed or unsigned fixed-width integer of 'w' width -#define SIGN_CAST(w, buf) (is_unsigned ? *((u##w *) buf) : *((s##w *) buf)) - -bool serializeStructToString(std::string *out, - std::string format, void *value) -{ - std::ostringstream os; - std::string str; - char *f; - size_t strpos; - - char *bufpos = (char *) value; - char *fmtpos, *fmt = &format[0]; - while ((f = strtok_r(fmt, ",", &fmtpos))) { - fmt = nullptr; - bool is_unsigned = false; - int width = 0; - char valtype = *f; - - width = (int)strtol(f + 1, &f, 10); - if (width && valtype == 's') - valtype = 'i'; - - switch (valtype) { - case 'u': - is_unsigned = true; - /* FALLTHROUGH */ - case 'i': - if (width == 16) { - bufpos += PADDING(bufpos, u16); - os << SIGN_CAST(16, bufpos); - bufpos += sizeof(u16); - } else if (width == 32) { - bufpos += PADDING(bufpos, u32); - os << SIGN_CAST(32, bufpos); - bufpos += sizeof(u32); - } else if (width == 64) { - bufpos += PADDING(bufpos, u64); - os << SIGN_CAST(64, bufpos); - bufpos += sizeof(u64); - } - break; - case 'b': - bufpos += PADDING(bufpos, bool); - os << std::boolalpha << *((bool *) bufpos); - bufpos += sizeof(bool); - break; - case 'f': - bufpos += PADDING(bufpos, float); - os << *((float *) bufpos); - bufpos += sizeof(float); - break; - case 's': - bufpos += PADDING(bufpos, std::string *); - str = **((std::string **) bufpos); - - strpos = 0; - while ((strpos = str.find('"', strpos)) != std::string::npos) { - str.insert(strpos, 1, '\\'); - strpos += 2; - } - - os << str; - bufpos += sizeof(std::string *); - break; - case 'v': - if (width == 2) { - bufpos += PADDING(bufpos, v2f); - v2f *v = (v2f *) bufpos; - os << '(' << v->X << ", " << v->Y << ')'; - bufpos += sizeof(v2f); - } else { - bufpos += PADDING(bufpos, v3f); - v3f *v = (v3f *) bufpos; - os << '(' << v->X << ", " << v->Y << ", " << v->Z << ')'; - bufpos += sizeof(v3f); - } - break; - default: - return false; - } - os << ", "; - } - *out = os.str(); - - // Trim off the trailing comma and space - if (out->size() >= 2) - out->resize(out->size() - 2); - - return true; -} - -#undef SIGN_CAST - -//// -//// Other -//// - -std::string serializeHexString(const std::string &data, bool insert_spaces) -{ - std::string result; - result.reserve(data.size() * (2 + insert_spaces)); - - static const char hex_chars[] = "0123456789abcdef"; - - const size_t len = data.size(); - for (size_t i = 0; i != len; i++) { - u8 byte = data[i]; - result.push_back(hex_chars[(byte >> 4) & 0x0F]); - result.push_back(hex_chars[(byte >> 0) & 0x0F]); - if (insert_spaces && i != len - 1) - result.push_back(' '); - } - - return result; -} diff --git a/src/util/serialize.h b/src/util/serialize.h index a4b5a234a..a988a8f78 100644 --- a/src/util/serialize.h +++ b/src/util/serialize.h @@ -442,15 +442,9 @@ MAKE_STREAM_WRITE_FXN(video::SColor, ARGB8, 4); // Creates a string with the length as the first two bytes std::string serializeString(const std::string &plain); -// Creates a string with the length as the first two bytes from wide string -std::string serializeWideString(const std::wstring &plain); - // Reads a string with the length as the first two bytes std::string deSerializeString(std::istream &is); -// Reads a wide string with the length as the first two bytes -std::wstring deSerializeWideString(std::istream &is); - // Creates a string with the length as the first four bytes std::string serializeLongString(const std::string &plain); @@ -469,239 +463,3 @@ std::string serializeJsonStringIfNeeded(const std::string &s); // Parses a string serialized by serializeJsonStringIfNeeded. std::string deSerializeJsonStringIfNeeded(std::istream &is); - -// Creates a string consisting of the hexadecimal representation of `data` -std::string serializeHexString(const std::string &data, bool insert_spaces=false); - -// Creates a string containing comma delimited values of a struct whose layout is -// described by the parameter format -bool serializeStructToString(std::string *out, - std::string format, void *value); - -// Reads a comma delimited string of values into a struct whose layout is -// decribed by the parameter format -bool deSerializeStringToStruct(std::string valstr, - std::string format, void *out, size_t olen); - -//// -//// BufReader -//// - -#define MAKE_BUFREADER_GETNOEX_FXN(T, N, S) \ - inline bool get ## N ## NoEx(T *val) \ - { \ - if (pos + S > size) \ - return false; \ - *val = read ## N(data + pos); \ - pos += S; \ - return true; \ - } - -#define MAKE_BUFREADER_GET_FXN(T, N) \ - inline T get ## N() \ - { \ - T val; \ - if (!get ## N ## NoEx(&val)) \ - throw SerializationError("Attempted read past end of data"); \ - return val; \ - } - -class BufReader { -public: - BufReader(const u8 *data_, size_t size_) : - data(data_), - size(size_) - { - } - - MAKE_BUFREADER_GETNOEX_FXN(u8, U8, 1); - MAKE_BUFREADER_GETNOEX_FXN(u16, U16, 2); - MAKE_BUFREADER_GETNOEX_FXN(u32, U32, 4); - MAKE_BUFREADER_GETNOEX_FXN(u64, U64, 8); - MAKE_BUFREADER_GETNOEX_FXN(s8, S8, 1); - MAKE_BUFREADER_GETNOEX_FXN(s16, S16, 2); - MAKE_BUFREADER_GETNOEX_FXN(s32, S32, 4); - MAKE_BUFREADER_GETNOEX_FXN(s64, S64, 8); - MAKE_BUFREADER_GETNOEX_FXN(f32, F1000, 4); - MAKE_BUFREADER_GETNOEX_FXN(v2s16, V2S16, 4); - MAKE_BUFREADER_GETNOEX_FXN(v3s16, V3S16, 6); - MAKE_BUFREADER_GETNOEX_FXN(v2s32, V2S32, 8); - MAKE_BUFREADER_GETNOEX_FXN(v3s32, V3S32, 12); - MAKE_BUFREADER_GETNOEX_FXN(v3f, V3F1000, 12); - MAKE_BUFREADER_GETNOEX_FXN(video::SColor, ARGB8, 4); - - bool getStringNoEx(std::string *val); - bool getWideStringNoEx(std::wstring *val); - bool getLongStringNoEx(std::string *val); - bool getRawDataNoEx(void *data, size_t len); - - MAKE_BUFREADER_GET_FXN(u8, U8); - MAKE_BUFREADER_GET_FXN(u16, U16); - MAKE_BUFREADER_GET_FXN(u32, U32); - MAKE_BUFREADER_GET_FXN(u64, U64); - MAKE_BUFREADER_GET_FXN(s8, S8); - MAKE_BUFREADER_GET_FXN(s16, S16); - MAKE_BUFREADER_GET_FXN(s32, S32); - MAKE_BUFREADER_GET_FXN(s64, S64); - MAKE_BUFREADER_GET_FXN(f32, F1000); - MAKE_BUFREADER_GET_FXN(v2s16, V2S16); - MAKE_BUFREADER_GET_FXN(v3s16, V3S16); - MAKE_BUFREADER_GET_FXN(v2s32, V2S32); - MAKE_BUFREADER_GET_FXN(v3s32, V3S32); - MAKE_BUFREADER_GET_FXN(v3f, V3F1000); - MAKE_BUFREADER_GET_FXN(video::SColor, ARGB8); - MAKE_BUFREADER_GET_FXN(std::string, String); - MAKE_BUFREADER_GET_FXN(std::wstring, WideString); - MAKE_BUFREADER_GET_FXN(std::string, LongString); - - inline void getRawData(void *val, size_t len) - { - if (!getRawDataNoEx(val, len)) - throw SerializationError("Attempted read past end of data"); - } - - inline size_t remaining() - { - assert(pos <= size); - return size - pos; - } - - const u8 *data; - size_t size; - size_t pos = 0; -}; - -#undef MAKE_BUFREADER_GET_FXN -#undef MAKE_BUFREADER_GETNOEX_FXN - - -//// -//// Vector-based write routines -//// - -inline void putU8(std::vector *dest, u8 val) -{ - dest->push_back((val >> 0) & 0xFF); -} - -inline void putU16(std::vector *dest, u16 val) -{ - dest->push_back((val >> 8) & 0xFF); - dest->push_back((val >> 0) & 0xFF); -} - -inline void putU32(std::vector *dest, u32 val) -{ - dest->push_back((val >> 24) & 0xFF); - dest->push_back((val >> 16) & 0xFF); - dest->push_back((val >> 8) & 0xFF); - dest->push_back((val >> 0) & 0xFF); -} - -inline void putU64(std::vector *dest, u64 val) -{ - dest->push_back((val >> 56) & 0xFF); - dest->push_back((val >> 48) & 0xFF); - dest->push_back((val >> 40) & 0xFF); - dest->push_back((val >> 32) & 0xFF); - dest->push_back((val >> 24) & 0xFF); - dest->push_back((val >> 16) & 0xFF); - dest->push_back((val >> 8) & 0xFF); - dest->push_back((val >> 0) & 0xFF); -} - -inline void putS8(std::vector *dest, s8 val) -{ - putU8(dest, val); -} - -inline void putS16(std::vector *dest, s16 val) -{ - putU16(dest, val); -} - -inline void putS32(std::vector *dest, s32 val) -{ - putU32(dest, val); -} - -inline void putS64(std::vector *dest, s64 val) -{ - putU64(dest, val); -} - -inline void putF1000(std::vector *dest, f32 val) -{ - putS32(dest, val * FIXEDPOINT_FACTOR); -} - -inline void putV2S16(std::vector *dest, v2s16 val) -{ - putS16(dest, val.X); - putS16(dest, val.Y); -} - -inline void putV3S16(std::vector *dest, v3s16 val) -{ - putS16(dest, val.X); - putS16(dest, val.Y); - putS16(dest, val.Z); -} - -inline void putV2S32(std::vector *dest, v2s32 val) -{ - putS32(dest, val.X); - putS32(dest, val.Y); -} - -inline void putV3S32(std::vector *dest, v3s32 val) -{ - putS32(dest, val.X); - putS32(dest, val.Y); - putS32(dest, val.Z); -} - -inline void putV3F1000(std::vector *dest, v3f val) -{ - putF1000(dest, val.X); - putF1000(dest, val.Y); - putF1000(dest, val.Z); -} - -inline void putARGB8(std::vector *dest, video::SColor val) -{ - putU32(dest, val.color); -} - -inline void putString(std::vector *dest, const std::string &val) -{ - if (val.size() > STRING_MAX_LEN) - throw SerializationError("String too long"); - - putU16(dest, val.size()); - dest->insert(dest->end(), val.begin(), val.end()); -} - -inline void putWideString(std::vector *dest, const std::wstring &val) -{ - if (val.size() > WIDE_STRING_MAX_LEN) - throw SerializationError("String too long"); - - putU16(dest, val.size()); - for (size_t i = 0; i != val.size(); i++) - putU16(dest, val[i]); -} - -inline void putLongString(std::vector *dest, const std::string &val) -{ - if (val.size() > LONG_STRING_MAX_LEN) - throw SerializationError("String too long"); - - putU32(dest, val.size()); - dest->insert(dest->end(), val.begin(), val.end()); -} - -inline void putRawData(std::vector *dest, const void *src, size_t len) -{ - dest->insert(dest->end(), (u8 *)src, (u8 *)src + len); -} From 947466ab28129fd69e6630974c6c4e901f2bebc6 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 20 Sep 2020 13:12:55 +0200 Subject: [PATCH 205/624] (se)SerializeString: Include max length in the name This commit clarifies the maximal length of the serialized strings. It will avoid accidental use of serializeString() when a larger string can be expected. Removes unused Wide String serialization functions --- src/client/content_cao.cpp | 12 +++--- src/content_nodemeta.cpp | 18 ++++----- src/database/database-leveldb.cpp | 16 ++++---- src/itemdef.cpp | 52 ++++++++++++------------ src/mapblock.cpp | 4 +- src/mapgen/mg_schematic.cpp | 4 +- src/nameidmapping.cpp | 4 +- src/network/clientpackethandler.cpp | 8 ++-- src/nodedef.cpp | 40 +++++++++--------- src/nodemetadata.cpp | 8 ++-- src/object_properties.cpp | 28 ++++++------- src/particles.cpp | 4 +- src/server.cpp | 4 +- src/server/luaentity_sao.cpp | 28 ++++++------- src/server/player_sao.cpp | 16 ++++---- src/server/serveractiveobject.cpp | 2 +- src/server/unit_sao.cpp | 6 +-- src/sound.h | 4 +- src/staticobject.cpp | 4 +- src/tool.cpp | 8 ++-- src/unittest/test_serialization.cpp | 50 ++++++++++------------- src/util/serialize.cpp | 63 ++++------------------------- src/util/serialize.h | 8 ++-- 23 files changed, 168 insertions(+), 223 deletions(-) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 599139aa3..71a9d4b54 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -371,7 +371,7 @@ void GenericCAO::processInitData(const std::string &data) } // PROTOCOL_VERSION >= 37 - m_name = deSerializeString(is); + m_name = deSerializeString16(is); m_is_player = readU8(is); m_id = readU16(is); m_position = readV3F32(is); @@ -381,7 +381,7 @@ void GenericCAO::processInitData(const std::string &data) const u8 num_messages = readU8(is); for (int i = 0; i < num_messages; i++) { - std::string message = deSerializeLongString(is); + std::string message = deSerializeString32(is); processMessage(message); } @@ -1657,7 +1657,7 @@ void GenericCAO::processMessage(const std::string &data) rot_translator.update(m_rotation, false, update_interval); updateNodePos(); } else if (cmd == AO_CMD_SET_TEXTURE_MOD) { - std::string mod = deSerializeString(is); + std::string mod = deSerializeString16(is); // immediately reset a engine issued texture modifier if a mod sends a different one if (m_reset_textures_timer > 0) { @@ -1735,7 +1735,7 @@ void GenericCAO::processMessage(const std::string &data) m_animation_speed = readF32(is); updateAnimationSpeed(); } else if (cmd == AO_CMD_SET_BONE_POSITION) { - std::string bone = deSerializeString(is); + std::string bone = deSerializeString16(is); v3f position = readV3F32(is); v3f rotation = readV3F32(is); m_bone_position[bone] = core::vector2d(position, rotation); @@ -1743,7 +1743,7 @@ void GenericCAO::processMessage(const std::string &data) // updateBonePosition(); now called every step } else if (cmd == AO_CMD_ATTACH_TO) { u16 parent_id = readS16(is); - std::string bone = deSerializeString(is); + std::string bone = deSerializeString16(is); v3f position = readV3F32(is); v3f rotation = readV3F32(is); @@ -1793,7 +1793,7 @@ void GenericCAO::processMessage(const std::string &data) int armor_groups_size = readU16(is); for(int i=0; igetInventory()->deSerialize(is); - deSerializeLongString(is); // m_text - deSerializeString(is); // m_owner + deSerializeString32(is); // m_text + deSerializeString16(is); // m_owner - meta->setString("infotext",deSerializeString(is)); - meta->setString("formspec",deSerializeString(is)); + meta->setString("infotext",deSerializeString16(is)); + meta->setString("formspec",deSerializeString16(is)); readU8(is); // m_allow_text_input readU8(is); // m_allow_removal readU8(is); // m_enforce_owner int num_vars = readU32(is); for(int i=0; isetString(name, var); } return false; } else if(id == NODEMETA_SIGN) // SignNodeMetadata { - meta->setString("text", deSerializeString(is)); + meta->setString("text", deSerializeString16(is)); //meta->setString("infotext","\"${text}\""); meta->setString("infotext", std::string("\"") + meta->getString("text") + "\""); @@ -87,7 +87,7 @@ static bool content_nodemeta_deserialize_legacy_body( } else if(id == NODEMETA_LOCKABLE_CHEST) // LockingChestNodeMetadata { - meta->setString("owner", deSerializeString(is)); + meta->setString("owner", deSerializeString16(is)); meta->getInventory()->deSerialize(is); // Rename inventory list "0" to "main" @@ -138,7 +138,7 @@ static bool content_nodemeta_deserialize_legacy_meta( s16 id = readS16(is); // Read data - std::string data = deSerializeString(is); + std::string data = deSerializeString16(is); std::istringstream tmp_is(data, std::ios::binary); return content_nodemeta_deserialize_legacy_body(tmp_is, id, meta); } diff --git a/src/database/database-leveldb.cpp b/src/database/database-leveldb.cpp index 1976ae13d..73cd63f6d 100644 --- a/src/database/database-leveldb.cpp +++ b/src/database/database-leveldb.cpp @@ -145,8 +145,8 @@ void PlayerDatabaseLevelDB::savePlayer(RemotePlayer *player) StringMap stringvars = sao->getMeta().getStrings(); writeU32(os, stringvars.size()); for (const auto &it : stringvars) { - os << serializeString(it.first); - os << serializeLongString(it.second); + os << serializeString16(it.first); + os << serializeString32(it.second); } player->inventory.serialize(os); @@ -183,8 +183,8 @@ bool PlayerDatabaseLevelDB::loadPlayer(RemotePlayer *player, PlayerSAO *sao) u32 attribute_count = readU32(is); for (u32 i = 0; i < attribute_count; i++) { - std::string name = deSerializeString(is); - std::string value = deSerializeLongString(is); + std::string name = deSerializeString16(is); + std::string value = deSerializeString32(is); sao->getMeta().setString(name, value); } sao->getMeta().setModified(false); @@ -247,13 +247,13 @@ bool AuthDatabaseLevelDB::getAuth(const std::string &name, AuthEntry &res) res.id = 1; res.name = name; - res.password = deSerializeString(is); + res.password = deSerializeString16(is); u16 privilege_count = readU16(is); res.privileges.clear(); res.privileges.reserve(privilege_count); for (u16 i = 0; i < privilege_count; i++) { - res.privileges.push_back(deSerializeString(is)); + res.privileges.push_back(deSerializeString16(is)); } res.last_login = readS64(is); @@ -264,14 +264,14 @@ bool AuthDatabaseLevelDB::saveAuth(const AuthEntry &authEntry) { std::ostringstream os; writeU8(os, 1); - os << serializeString(authEntry.password); + os << serializeString16(authEntry.password); size_t privilege_count = authEntry.privileges.size(); FATAL_ERROR_IF(privilege_count > U16_MAX, "Unsupported number of privileges"); writeU16(os, privilege_count); for (const std::string &privilege : authEntry.privileges) { - os << serializeString(privilege); + os << serializeString16(privilege); } writeS64(os, authEntry.last_login); diff --git a/src/itemdef.cpp b/src/itemdef.cpp index 8e0492827..df20bdf15 100644 --- a/src/itemdef.cpp +++ b/src/itemdef.cpp @@ -128,10 +128,10 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const u8 version = 6; writeU8(os, version); writeU8(os, type); - os << serializeString(name); - os << serializeString(description); - os << serializeString(inventory_image); - os << serializeString(wield_image); + os << serializeString16(name); + os << serializeString16(description); + os << serializeString16(inventory_image); + os << serializeString16(wield_image); writeV3F32(os, wield_scale); writeS16(os, stack_max); writeU8(os, usable); @@ -143,25 +143,25 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const tool_capabilities->serialize(tmp_os, protocol_version); tool_capabilities_s = tmp_os.str(); } - os << serializeString(tool_capabilities_s); + os << serializeString16(tool_capabilities_s); writeU16(os, groups.size()); for (const auto &group : groups) { - os << serializeString(group.first); + os << serializeString16(group.first); writeS16(os, group.second); } - os << serializeString(node_placement_prediction); + os << serializeString16(node_placement_prediction); // Version from ContentFeatures::serialize to keep in sync sound_place.serialize(os, CONTENTFEATURES_VERSION); sound_place_failed.serialize(os, CONTENTFEATURES_VERSION); writeF32(os, range); - os << serializeString(palette_image); + os << serializeString16(palette_image); writeARGB8(os, color); - os << serializeString(inventory_overlay); - os << serializeString(wield_overlay); + os << serializeString16(inventory_overlay); + os << serializeString16(wield_overlay); } void ItemDefinition::deSerialize(std::istream &is) @@ -175,16 +175,16 @@ void ItemDefinition::deSerialize(std::istream &is) throw SerializationError("unsupported ItemDefinition version"); type = (enum ItemType)readU8(is); - name = deSerializeString(is); - description = deSerializeString(is); - inventory_image = deSerializeString(is); - wield_image = deSerializeString(is); + name = deSerializeString16(is); + description = deSerializeString16(is); + inventory_image = deSerializeString16(is); + wield_image = deSerializeString16(is); wield_scale = readV3F32(is); stack_max = readS16(is); usable = readU8(is); liquids_pointable = readU8(is); - std::string tool_capabilities_s = deSerializeString(is); + std::string tool_capabilities_s = deSerializeString16(is); if (!tool_capabilities_s.empty()) { std::istringstream tmp_is(tool_capabilities_s, std::ios::binary); tool_capabilities = new ToolCapabilities; @@ -194,22 +194,22 @@ void ItemDefinition::deSerialize(std::istream &is) groups.clear(); u32 groups_size = readU16(is); for(u32 i=0; iserialize(tmp_os, protocol_version); - os << serializeString(tmp_os.str()); + os << serializeString16(tmp_os.str()); } writeU16(os, m_aliases.size()); for (const auto &it : m_aliases) { - os << serializeString(it.first); - os << serializeString(it.second); + os << serializeString16(it.first); + os << serializeString16(it.second); } } void deSerialize(std::istream &is) @@ -543,7 +543,7 @@ public: for(u16 i=0; iidef()); } else { - //std::string data = deSerializeLongString(is); + //std::string data = deSerializeString32(is); std::ostringstream oss(std::ios_base::binary); decompressZlib(is, oss); std::istringstream iss(oss.str(), std::ios_base::binary); diff --git a/src/mapgen/mg_schematic.cpp b/src/mapgen/mg_schematic.cpp index ba102d997..dfd414709 100644 --- a/src/mapgen/mg_schematic.cpp +++ b/src/mapgen/mg_schematic.cpp @@ -314,7 +314,7 @@ bool Schematic::deserializeFromMts(std::istream *is, //// Read node names u16 nidmapcount = readU16(ss); for (int i = 0; i != nidmapcount; i++) { - std::string name = deSerializeString(ss); + std::string name = deSerializeString16(ss); // Instances of "ignore" from v1 are converted to air (and instances // are fixed to have MTSCHEM_PROB_NEVER later on). @@ -372,7 +372,7 @@ bool Schematic::serializeToMts(std::ostream *os, writeU16(ss, names.size()); // name count for (size_t i = 0; i != names.size(); i++) - ss << serializeString(names[i]); // node names + ss << serializeString16(names[i]); // node names // compressed bulk node data MapNode::serializeBulk(ss, SER_FMT_VER_HIGHEST_WRITE, diff --git a/src/nameidmapping.cpp b/src/nameidmapping.cpp index bd5bb1fc8..05cfae069 100644 --- a/src/nameidmapping.cpp +++ b/src/nameidmapping.cpp @@ -27,7 +27,7 @@ void NameIdMapping::serialize(std::ostream &os) const writeU16(os, m_id_to_name.size()); for (const auto &i : m_id_to_name) { writeU16(os, i.first); - os << serializeString(i.second); + os << serializeString16(i.second); } } @@ -41,7 +41,7 @@ void NameIdMapping::deSerialize(std::istream &is) m_name_to_id.clear(); for (u32 i = 0; i < count; i++) { u16 id = readU16(is); - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); m_id_to_name[id] = name; m_name_to_id[name] = id; } diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index 8d87ff8f2..5683564a0 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -497,7 +497,7 @@ void Client::handleCommand_ActiveObjectMessages(NetworkPacket* pkt) if (!is.good()) break; - std::string message = deSerializeString(is); + std::string message = deSerializeString16(is); // Pass on to the environment m_env.processActiveObjectMessage(id, message); @@ -994,7 +994,7 @@ void Client::handleCommand_AddParticleSpawner(NetworkPacket* pkt) p.minsize = readF32(is); p.maxsize = readF32(is); p.collisiondetection = readU8(is); - p.texture = deSerializeLongString(is); + p.texture = deSerializeString32(is); server_id = readU32(is); @@ -1207,11 +1207,11 @@ void Client::handleCommand_HudSetSky(NetworkPacket* pkt) SkyboxParams skybox; skybox.bgcolor = video::SColor(readARGB8(is)); - skybox.type = std::string(deSerializeString(is)); + skybox.type = std::string(deSerializeString16(is)); u16 count = readU16(is); for (size_t i = 0; i < count; i++) - skybox.textures.emplace_back(deSerializeString(is)); + skybox.textures.emplace_back(deSerializeString16(is)); skybox.clouds = true; try { diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 392f5eb98..3a5934cf3 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -207,7 +207,7 @@ void TileDef::serialize(std::ostream &os, u16 protocol_version) const u8 version = 6; writeU8(os, version); - os << serializeString(name); + os << serializeString16(name); animation.serialize(os, version); bool has_scale = scale > 0; u16 flags = 0; @@ -241,7 +241,7 @@ void TileDef::deSerialize(std::istream &is, u8 contentfeatures_version, int version = readU8(is); if (version < 6) throw SerializationError("unsupported TileDef version"); - name = deSerializeString(is); + name = deSerializeString16(is); animation.deSerialize(is, version); u16 flags = readU16(is); backface_culling = flags & TILE_FLAG_BACKFACE_CULLING; @@ -416,10 +416,10 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const writeU8(os, version); // general - os << serializeString(name); + os << serializeString16(name); writeU16(os, groups.size()); for (const auto &group : groups) { - os << serializeString(group.first); + os << serializeString16(group.first); writeS16(os, group.second); } writeU8(os, param_type); @@ -427,7 +427,7 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const // visual writeU8(os, drawtype); - os << serializeString(mesh); + os << serializeString16(mesh); writeF32(os, visual_scale); writeU8(os, 6); for (const TileDef &td : tiledef) @@ -442,7 +442,7 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const writeU8(os, color.getRed()); writeU8(os, color.getGreen()); writeU8(os, color.getBlue()); - os << serializeString(palette_name); + os << serializeString16(palette_name); writeU8(os, waving); writeU8(os, connect_sides); writeU16(os, connects_to_ids.size()); @@ -470,8 +470,8 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const // liquid writeU8(os, liquid_type); - os << serializeString(liquid_alternative_flowing); - os << serializeString(liquid_alternative_source); + os << serializeString16(liquid_alternative_flowing); + os << serializeString16(liquid_alternative_source); writeU8(os, liquid_viscosity); writeU8(os, liquid_renewable); writeU8(os, liquid_range); @@ -492,7 +492,7 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const writeU8(os, legacy_facedir_simple); writeU8(os, legacy_wallmounted); - os << serializeString(node_dig_prediction); + os << serializeString16(node_dig_prediction); writeU8(os, leveled_max); } @@ -519,11 +519,11 @@ void ContentFeatures::deSerialize(std::istream &is) throw SerializationError("unsupported ContentFeatures version"); // general - name = deSerializeString(is); + name = deSerializeString16(is); groups.clear(); u32 groups_size = readU16(is); for (u32 i = 0; i < groups_size; i++) { - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); int value = readS16(is); groups[name] = value; } @@ -532,7 +532,7 @@ void ContentFeatures::deSerialize(std::istream &is) // visual drawtype = (enum NodeDrawType) readU8(is); - mesh = deSerializeString(is); + mesh = deSerializeString16(is); visual_scale = readF32(is); if (readU8(is) != 6) throw SerializationError("unsupported tile count"); @@ -548,7 +548,7 @@ void ContentFeatures::deSerialize(std::istream &is) color.setRed(readU8(is)); color.setGreen(readU8(is)); color.setBlue(readU8(is)); - palette_name = deSerializeString(is); + palette_name = deSerializeString16(is); waving = readU8(is); connect_sides = readU8(is); u16 connects_to_size = readU16(is); @@ -578,8 +578,8 @@ void ContentFeatures::deSerialize(std::istream &is) // liquid liquid_type = (enum LiquidType) readU8(is); - liquid_alternative_flowing = deSerializeString(is); - liquid_alternative_source = deSerializeString(is); + liquid_alternative_flowing = deSerializeString16(is); + liquid_alternative_source = deSerializeString16(is); liquid_viscosity = readU8(is); liquid_renewable = readU8(is); liquid_range = readU8(is); @@ -601,7 +601,7 @@ void ContentFeatures::deSerialize(std::istream &is) legacy_wallmounted = readU8(is); try { - node_dig_prediction = deSerializeString(is); + node_dig_prediction = deSerializeString16(is); u8 tmp_leveled_max = readU8(is); if (is.eof()) /* readU8 doesn't throw exceptions so we have to do this */ throw SerializationError(""); @@ -1472,7 +1472,7 @@ void NodeDefManager::serialize(std::ostream &os, u16 protocol_version) const // strict version incompatibilities std::ostringstream wrapper_os(std::ios::binary); f->serialize(wrapper_os, protocol_version); - os2<= 2) writeU8(os, (priv) ? 1 : 0); } @@ -63,8 +63,8 @@ void NodeMetadata::deSerialize(std::istream &is, u8 version) clear(); int num_vars = readU32(is); for(int i=0; i= 2) { if (readU8(is) == 1) diff --git a/src/object_properties.cpp b/src/object_properties.cpp index 8d51bcbfa..c31c667e7 100644 --- a/src/object_properties.cpp +++ b/src/object_properties.cpp @@ -84,11 +84,11 @@ void ObjectProperties::serialize(std::ostream &os) const writeV3F32(os, selectionbox.MinEdge); writeV3F32(os, selectionbox.MaxEdge); writeU8(os, pointable); - os << serializeString(visual); + os << serializeString16(visual); writeV3F32(os, visual_size); writeU16(os, textures.size()); for (const std::string &texture : textures) { - os << serializeString(texture); + os << serializeString16(texture); } writeV2S16(os, spritediv); writeV2S16(os, initial_sprite_basepos); @@ -96,7 +96,7 @@ void ObjectProperties::serialize(std::ostream &os) const writeU8(os, makes_footstep_sound); writeF32(os, automatic_rotate); // Added in protocol version 14 - os << serializeString(mesh); + os << serializeString16(mesh); writeU16(os, colors.size()); for (video::SColor color : colors) { writeARGB8(os, color); @@ -106,17 +106,17 @@ void ObjectProperties::serialize(std::ostream &os) const writeU8(os, automatic_face_movement_dir); writeF32(os, automatic_face_movement_dir_offset); writeU8(os, backface_culling); - os << serializeString(nametag); + os << serializeString16(nametag); writeARGB8(os, nametag_color); writeF32(os, automatic_face_movement_max_rotation_per_sec); - os << serializeString(infotext); - os << serializeString(wield_item); + os << serializeString16(infotext); + os << serializeString16(wield_item); writeS8(os, glow); writeU16(os, breath_max); writeF32(os, eye_height); writeF32(os, zoom_fov); writeU8(os, use_texture_alpha); - os << serializeString(damage_texture_modifier); + os << serializeString16(damage_texture_modifier); writeU8(os, shaded); // Add stuff only at the bottom. @@ -137,19 +137,19 @@ void ObjectProperties::deSerialize(std::istream &is) selectionbox.MinEdge = readV3F32(is); selectionbox.MaxEdge = readV3F32(is); pointable = readU8(is); - visual = deSerializeString(is); + visual = deSerializeString16(is); visual_size = readV3F32(is); textures.clear(); u32 texture_count = readU16(is); for (u32 i = 0; i < texture_count; i++){ - textures.push_back(deSerializeString(is)); + textures.push_back(deSerializeString16(is)); } spritediv = readV2S16(is); initial_sprite_basepos = readV2S16(is); is_visible = readU8(is); makes_footstep_sound = readU8(is); automatic_rotate = readF32(is); - mesh = deSerializeString(is); + mesh = deSerializeString16(is); colors.clear(); u32 color_count = readU16(is); for (u32 i = 0; i < color_count; i++){ @@ -160,18 +160,18 @@ void ObjectProperties::deSerialize(std::istream &is) automatic_face_movement_dir = readU8(is); automatic_face_movement_dir_offset = readF32(is); backface_culling = readU8(is); - nametag = deSerializeString(is); + nametag = deSerializeString16(is); nametag_color = readARGB8(is); automatic_face_movement_max_rotation_per_sec = readF32(is); - infotext = deSerializeString(is); - wield_item = deSerializeString(is); + infotext = deSerializeString16(is); + wield_item = deSerializeString16(is); glow = readS8(is); breath_max = readU16(is); eye_height = readF32(is); zoom_fov = readF32(is); use_texture_alpha = readU8(is); try { - damage_texture_modifier = deSerializeString(is); + damage_texture_modifier = deSerializeString16(is); u8 tmp = readU8(is); if (is.eof()) throw SerializationError(""); diff --git a/src/particles.cpp b/src/particles.cpp index fd81238dc..14c987958 100644 --- a/src/particles.cpp +++ b/src/particles.cpp @@ -28,7 +28,7 @@ void ParticleParameters::serialize(std::ostream &os, u16 protocol_ver) const writeF32(os, expirationtime); writeF32(os, size); writeU8(os, collisiondetection); - os << serializeLongString(texture); + os << serializeString32(texture); writeU8(os, vertical); writeU8(os, collision_removal); animation.serialize(os, 6); /* NOT the protocol ver */ @@ -47,7 +47,7 @@ void ParticleParameters::deSerialize(std::istream &is, u16 protocol_ver) expirationtime = readF32(is); size = readF32(is); collisiondetection = readU8(is); - texture = deSerializeLongString(is); + texture = deSerializeString32(is); vertical = readU8(is); collision_removal = readU8(is); animation.deSerialize(is, 6); /* NOT the protocol ver */ diff --git a/src/server.cpp b/src/server.cpp index d40ff259f..982f904f4 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -802,7 +802,7 @@ void Server::AsyncRunStep(bool initial_step) // u16 id // std::string data buffer.append(idbuf, sizeof(idbuf)); - buffer.append(serializeString(aom.datastring)); + buffer.append(serializeString16(aom.datastring)); } } /* @@ -1993,7 +1993,7 @@ void Server::SendActiveObjectRemoveAdd(RemoteClient *client, PlayerSAO *playersa writeU8((u8*)buf, type); data.append(buf, 1); - data.append(serializeLongString( + data.append(serializeString32( obj->getClientInitializationData(client->net_proto_version))); // Add to known objects diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp index d504c42ca..f20914f7f 100644 --- a/src/server/luaentity_sao.cpp +++ b/src/server/luaentity_sao.cpp @@ -42,8 +42,8 @@ LuaEntitySAO::LuaEntitySAO(ServerEnvironment *env, v3f pos, const std::string &d u8 version2 = 0; u8 version = readU8(is); - name = deSerializeString(is); - state = deSerializeLongString(is); + name = deSerializeString16(is); + state = deSerializeString32(is); if (version < 1) break; @@ -225,7 +225,7 @@ std::string LuaEntitySAO::getClientInitializationData(u16 protocol_version) // PROTOCOL_VERSION >= 37 writeU8(os, 1); // version - os << serializeString(""); // name + os << serializeString16(""); // name writeU8(os, 0); // is_player writeU16(os, getId()); //id writeV3F32(os, m_base_position); @@ -233,26 +233,26 @@ std::string LuaEntitySAO::getClientInitializationData(u16 protocol_version) writeU16(os, m_hp); std::ostringstream msg_os(std::ios::binary); - msg_os << serializeLongString(getPropertyPacket()); // message 1 - msg_os << serializeLongString(generateUpdateArmorGroupsCommand()); // 2 - msg_os << serializeLongString(generateUpdateAnimationCommand()); // 3 + msg_os << serializeString32(getPropertyPacket()); // message 1 + msg_os << serializeString32(generateUpdateArmorGroupsCommand()); // 2 + msg_os << serializeString32(generateUpdateAnimationCommand()); // 3 for (const auto &bone_pos : m_bone_position) { - msg_os << serializeLongString(generateUpdateBonePositionCommand( + msg_os << serializeString32(generateUpdateBonePositionCommand( bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // m_bone_position.size } - msg_os << serializeLongString(generateUpdateAttachmentCommand()); // 4 + msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 int message_count = 4 + m_bone_position.size(); for (const auto &id : getAttachmentChildIds()) { if (ServerActiveObject *obj = m_env->getActiveObject(id)) { message_count++; - msg_os << serializeLongString(obj->generateUpdateInfantCommand( + msg_os << serializeString32(obj->generateUpdateInfantCommand( id, protocol_version)); } } - msg_os << serializeLongString(generateSetTextureModCommand()); + msg_os << serializeString32(generateSetTextureModCommand()); message_count++; writeU8(os, message_count); @@ -270,14 +270,14 @@ void LuaEntitySAO::getStaticData(std::string *result) const // version must be 1 to keep backwards-compatibility. See version2 writeU8(os, 1); // name - os<getScriptIface()-> luaentity_GetStaticdata(m_id); - os<= 15 writeU8(os, 1); // version - os << serializeString(m_player->getName()); // name + os << serializeString16(m_player->getName()); // name writeU8(os, 1); // is_player writeS16(os, getId()); // id writeV3F32(os, m_base_position); @@ -117,22 +117,22 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version) writeU16(os, getHP()); std::ostringstream msg_os(std::ios::binary); - msg_os << serializeLongString(getPropertyPacket()); // message 1 - msg_os << serializeLongString(generateUpdateArmorGroupsCommand()); // 2 - msg_os << serializeLongString(generateUpdateAnimationCommand()); // 3 + msg_os << serializeString32(getPropertyPacket()); // message 1 + msg_os << serializeString32(generateUpdateArmorGroupsCommand()); // 2 + msg_os << serializeString32(generateUpdateAnimationCommand()); // 3 for (const auto &bone_pos : m_bone_position) { - msg_os << serializeLongString(generateUpdateBonePositionCommand( + msg_os << serializeString32(generateUpdateBonePositionCommand( bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // m_bone_position.size } - msg_os << serializeLongString(generateUpdateAttachmentCommand()); // 4 - msg_os << serializeLongString(generateUpdatePhysicsOverrideCommand()); // 5 + msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 + msg_os << serializeString32(generateUpdatePhysicsOverrideCommand()); // 5 int message_count = 5 + m_bone_position.size(); for (const auto &id : getAttachmentChildIds()) { if (ServerActiveObject *obj = m_env->getActiveObject(id)) { message_count++; - msg_os << serializeLongString(obj->generateUpdateInfantCommand( + msg_os << serializeString32(obj->generateUpdateInfantCommand( id, protocol_version)); } } diff --git a/src/server/serveractiveobject.cpp b/src/server/serveractiveobject.cpp index 3341dc008..8cb59b2d6 100644 --- a/src/server/serveractiveobject.cpp +++ b/src/server/serveractiveobject.cpp @@ -61,7 +61,7 @@ std::string ServerActiveObject::generateUpdateInfantCommand(u16 infant_id, u16 p // Clients since 4aa9a66 so no longer need this data // Version 38 is the first bump after that commit. // See also: ClientEnvironment::addActiveObject - os << serializeLongString(getClientInitializationData(protocol_version)); + os << serializeString32(getClientInitializationData(protocol_version)); } return os.str(); } diff --git a/src/server/unit_sao.cpp b/src/server/unit_sao.cpp index ef0e87f2c..d906e885e 100644 --- a/src/server/unit_sao.cpp +++ b/src/server/unit_sao.cpp @@ -242,7 +242,7 @@ std::string UnitSAO::generateUpdateAttachmentCommand() const writeU8(os, AO_CMD_ATTACH_TO); // parameters writeS16(os, m_attachment_parent_id); - os << serializeString(m_attachment_bone); + os << serializeString16(m_attachment_bone); writeV3F32(os, m_attachment_position); writeV3F32(os, m_attachment_rotation); return os.str(); @@ -255,7 +255,7 @@ std::string UnitSAO::generateUpdateBonePositionCommand( // command writeU8(os, AO_CMD_SET_BONE_POSITION); // parameters - os << serializeString(bone); + os << serializeString16(bone); writeV3F32(os, position); writeV3F32(os, rotation); return os.str(); @@ -291,7 +291,7 @@ std::string UnitSAO::generateUpdateArmorGroupsCommand() const writeU8(os, AO_CMD_UPDATE_ARMOR_GROUPS); writeU16(os, m_armor_groups.size()); for (const auto &armor_group : m_armor_groups) { - os << serializeString(armor_group.first); + os << serializeString16(armor_group.first); writeS16(os, armor_group.second); } return os.str(); diff --git a/src/sound.h b/src/sound.h index 6cbd55e8f..6f7b0a1af 100644 --- a/src/sound.h +++ b/src/sound.h @@ -39,7 +39,7 @@ struct SimpleSoundSpec // keep in sync with item definitions void serialize(std::ostream &os, u8 cf_version) const { - os << serializeString(name); + os << serializeString16(name); writeF32(os, gain); writeF32(os, pitch); writeF32(os, fade); @@ -49,7 +49,7 @@ struct SimpleSoundSpec void deSerialize(std::istream &is, u8 cf_version) { - name = deSerializeString(is); + name = deSerializeString16(is); gain = readF32(is); pitch = readF32(is); fade = readF32(is); diff --git a/src/staticobject.cpp b/src/staticobject.cpp index 5ccb7baf5..86e455b9f 100644 --- a/src/staticobject.cpp +++ b/src/staticobject.cpp @@ -35,7 +35,7 @@ void StaticObject::serialize(std::ostream &os) // pos writeV3F1000(os, pos); // data - os<uses); writeS16(os, cap->maxlevel); writeU32(os, cap->times.size()); @@ -79,7 +79,7 @@ void ToolCapabilities::serialize(std::ostream &os, u16 protocol_version) const writeU32(os, damageGroups.size()); for (const auto &damageGroup : damageGroups) { - os << serializeString(damageGroup.first); + os << serializeString16(damageGroup.first); writeS16(os, damageGroup.second); } @@ -98,7 +98,7 @@ void ToolCapabilities::deSerialize(std::istream &is) groupcaps.clear(); u32 groupcaps_size = readU32(is); for (u32 i = 0; i < groupcaps_size; i++) { - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); ToolGroupCap cap; cap.uses = readS16(is); cap.maxlevel = readS16(is); @@ -113,7 +113,7 @@ void ToolCapabilities::deSerialize(std::istream &is) u32 damage_groups_size = readU32(is); for (u32 i = 0; i < damage_groups_size; i++) { - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); s16 rating = readS16(is); damageGroups[name] = rating; } diff --git a/src/unittest/test_serialization.cpp b/src/unittest/test_serialization.cpp index d72bf0d4c..660d77d02 100644 --- a/src/unittest/test_serialization.cpp +++ b/src/unittest/test_serialization.cpp @@ -44,7 +44,7 @@ public: std::wstring teststring2_w; std::string teststring2_w_encoded; - static const u8 test_serialized_data[12 * 13 - 8]; + static const u8 test_serialized_data[12 * 11 - 2]; }; static TestSerialization g_test_instance; @@ -91,21 +91,21 @@ void TestSerialization::buildTestStrings() void TestSerialization::testSerializeString() { // Test blank string - UASSERT(serializeString("") == mkstr("\0\0")); + UASSERT(serializeString16("") == mkstr("\0\0")); // Test basic string - UASSERT(serializeString("Hello world!") == mkstr("\0\14Hello world!")); + UASSERT(serializeString16("Hello world!") == mkstr("\0\14Hello world!")); // Test character range - UASSERT(serializeString(teststring2) == mkstr("\1\0") + teststring2); + UASSERT(serializeString16(teststring2) == mkstr("\1\0") + teststring2); } void TestSerialization::testDeSerializeString() { // Test deserialize { - std::istringstream is(serializeString(teststring2), std::ios::binary); - UASSERT(deSerializeString(is) == teststring2); + std::istringstream is(serializeString16(teststring2), std::ios::binary); + UASSERT(deSerializeString16(is) == teststring2); UASSERT(!is.eof()); is.get(); UASSERT(is.eof()); @@ -114,34 +114,34 @@ void TestSerialization::testDeSerializeString() // Test deserialize an incomplete length specifier { std::istringstream is(mkstr("\x53"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString16(is)); } // Test deserialize a string with incomplete data { std::istringstream is(mkstr("\x00\x55 abcdefg"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString16(is)); } } void TestSerialization::testSerializeLongString() { // Test blank string - UASSERT(serializeLongString("") == mkstr("\0\0\0\0")); + UASSERT(serializeString32("") == mkstr("\0\0\0\0")); // Test basic string - UASSERT(serializeLongString("Hello world!") == mkstr("\0\0\0\14Hello world!")); + UASSERT(serializeString32("Hello world!") == mkstr("\0\0\0\14Hello world!")); // Test character range - UASSERT(serializeLongString(teststring2) == mkstr("\0\0\1\0") + teststring2); + UASSERT(serializeString32(teststring2) == mkstr("\0\0\1\0") + teststring2); } void TestSerialization::testDeSerializeLongString() { // Test deserialize { - std::istringstream is(serializeLongString(teststring2), std::ios::binary); - UASSERT(deSerializeLongString(is) == teststring2); + std::istringstream is(serializeString32(teststring2), std::ios::binary); + UASSERT(deSerializeString32(is) == teststring2); UASSERT(!is.eof()); is.get(); UASSERT(is.eof()); @@ -150,19 +150,19 @@ void TestSerialization::testDeSerializeLongString() // Test deserialize an incomplete length specifier { std::istringstream is(mkstr("\x53"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeLongString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString32(is)); } // Test deserialize a string with incomplete data { std::istringstream is(mkstr("\x00\x00\x00\x05 abc"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeLongString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString32(is)); } // Test deserialize a string with a length too large { std::istringstream is(mkstr("\xFF\xFF\xFF\xFF blah"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeLongString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString32(is)); } } @@ -235,19 +235,17 @@ void TestSerialization::testStreamRead() UASSERT(readF1000(is) == F1000_MIN); UASSERT(readF1000(is) == F1000_MAX); - UASSERT(deSerializeString(is) == "foobar!"); + UASSERT(deSerializeString16(is) == "foobar!"); UASSERT(readV2S16(is) == v2s16(500, 500)); UASSERT(readV3S16(is) == v3s16(4207, 604, -30)); UASSERT(readV2S32(is) == v2s32(1920, 1080)); UASSERT(readV3S32(is) == v3s32(-400, 6400054, 290549855)); - UASSERT(deSerializeWideString(is) == L"\x02~woof~\x5455"); - UASSERT(readV3F1000(is) == v3f(500, 10024.2f, -192.54f)); UASSERT(readARGB8(is) == video::SColor(255, 128, 50, 128)); - UASSERT(deSerializeLongString(is) == "some longer string here"); + UASSERT(deSerializeString32(is) == "some longer string here"); UASSERT(is.rdbuf()->in_avail() == 2); UASSERT(readU16(is) == 0xF00D); @@ -275,7 +273,7 @@ void TestSerialization::testStreamWrite() writeF1000(os, F1000_MIN); writeF1000(os, F1000_MAX); - os << serializeString("foobar!"); + os << serializeString16("foobar!"); data = os.str(); UASSERT(data.size() < sizeof(test_serialized_data)); @@ -286,12 +284,10 @@ void TestSerialization::testStreamWrite() writeV2S32(os, v2s32(1920, 1080)); writeV3S32(os, v3s32(-400, 6400054, 290549855)); - os << serializeWideString(L"\x02~woof~\x5455"); - writeV3F1000(os, v3f(500, 10024.2f, -192.54f)); writeARGB8(os, video::SColor(255, 128, 50, 128)); - os << serializeLongString("some longer string here"); + os << serializeString32("some longer string here"); writeU16(os, 0xF00D); @@ -384,7 +380,7 @@ void TestSerialization::testFloatFormat() UASSERT(test_single(i)); } -const u8 TestSerialization::test_serialized_data[12 * 13 - 8] = { +const u8 TestSerialization::test_serialized_data[12 * 11 - 2] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x80, 0x75, 0x30, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x00, 0x00, 0xd1, 0x1e, 0xee, 0x1e, @@ -392,9 +388,7 @@ const u8 TestSerialization::test_serialized_data[12 * 13 - 8] = { 0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72, 0x21, 0x01, 0xf4, 0x01, 0xf4, 0x10, 0x6f, 0x02, 0x5c, 0xff, 0xe2, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x04, 0x38, 0xff, 0xff, 0xfe, 0x70, 0x00, 0x61, 0xa8, 0x36, 0x11, 0x51, 0x70, - 0x5f, 0x00, 0x08, 0x00, - 0x02, 0x00, 0x7e, 0x00, 'w', 0x00, 'o', 0x00, 'o', 0x00, 'f', 0x00, // \x02~woof~\x5455 - 0x7e, 0x54, 0x55, 0x00, 0x07, 0xa1, 0x20, 0x00, 0x98, 0xf5, 0x08, 0xff, + 0x5f, 0x00, 0x07, 0xa1, 0x20, 0x00, 0x98, 0xf5, 0x08, 0xff, 0xfd, 0x0f, 0xe4, 0xff, 0x80, 0x32, 0x80, 0x00, 0x00, 0x00, 0x17, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x65, 0x72, 0x65, 0xF0, 0x0D, diff --git a/src/util/serialize.cpp b/src/util/serialize.cpp index fd5cbda21..d770101f2 100644 --- a/src/util/serialize.cpp +++ b/src/util/serialize.cpp @@ -35,13 +35,13 @@ FloatType g_serialize_f32_type = FLOATTYPE_UNKNOWN; //// String //// -std::string serializeString(const std::string &plain) +std::string serializeString16(const std::string &plain) { std::string s; char buf[2]; if (plain.size() > STRING_MAX_LEN) - throw SerializationError("String too long for serializeString"); + throw SerializationError("String too long for serializeString16"); s.reserve(2 + plain.size()); writeU16((u8 *)&buf[0], plain.size()); @@ -51,14 +51,14 @@ std::string serializeString(const std::string &plain) return s; } -std::string deSerializeString(std::istream &is) +std::string deSerializeString16(std::istream &is) { std::string s; char buf[2]; is.read(buf, 2); if (is.gcount() != 2) - throw SerializationError("deSerializeString: size not read"); + throw SerializationError("deSerializeString16: size not read"); u16 s_size = readU16((u8 *)buf); if (s_size == 0) @@ -67,66 +67,17 @@ std::string deSerializeString(std::istream &is) s.resize(s_size); is.read(&s[0], s_size); if (is.gcount() != s_size) - throw SerializationError("deSerializeString: couldn't read all chars"); + throw SerializationError("deSerializeString16: couldn't read all chars"); return s; } -//// -//// Wide String -//// - -std::string serializeWideString(const std::wstring &plain) -{ - std::string s; - char buf[2]; - - if (plain.size() > WIDE_STRING_MAX_LEN) - throw SerializationError("String too long for serializeWideString"); - s.reserve(2 + 2 * plain.size()); - - writeU16((u8 *)buf, plain.size()); - s.append(buf, 2); - - for (wchar_t i : plain) { - writeU16((u8 *)buf, i); - s.append(buf, 2); - } - return s; -} - -std::wstring deSerializeWideString(std::istream &is) -{ - std::wstring s; - char buf[2]; - - is.read(buf, 2); - if (is.gcount() != 2) - throw SerializationError("deSerializeWideString: size not read"); - - u16 s_size = readU16((u8 *)buf); - if (s_size == 0) - return s; - - s.reserve(s_size); - for (u32 i = 0; i < s_size; i++) { - is.read(&buf[0], 2); - if (is.gcount() != 2) { - throw SerializationError( - "deSerializeWideString: couldn't read all chars"); - } - - wchar_t c16 = readU16((u8 *)buf); - s.append(&c16, 1); - } - return s; -} //// //// Long String //// -std::string serializeLongString(const std::string &plain) +std::string serializeString32(const std::string &plain) { std::string s; char buf[4]; @@ -141,7 +92,7 @@ std::string serializeLongString(const std::string &plain) return s; } -std::string deSerializeLongString(std::istream &is) +std::string deSerializeString32(std::istream &is) { std::string s; char buf[4]; diff --git a/src/util/serialize.h b/src/util/serialize.h index a988a8f78..b3ec28eab 100644 --- a/src/util/serialize.h +++ b/src/util/serialize.h @@ -440,16 +440,16 @@ MAKE_STREAM_WRITE_FXN(video::SColor, ARGB8, 4); //// // Creates a string with the length as the first two bytes -std::string serializeString(const std::string &plain); +std::string serializeString16(const std::string &plain); // Reads a string with the length as the first two bytes -std::string deSerializeString(std::istream &is); +std::string deSerializeString16(std::istream &is); // Creates a string with the length as the first four bytes -std::string serializeLongString(const std::string &plain); +std::string serializeString32(const std::string &plain); // Reads a string with the length as the first four bytes -std::string deSerializeLongString(std::istream &is); +std::string deSerializeString32(std::istream &is); // Creates a string encoded in JSON format (almost equivalent to a C string literal) std::string serializeJsonString(const std::string &plain); From 4b423ee9b12aabe6ccd6a8e7dbc7db1d89dc365b Mon Sep 17 00:00:00 2001 From: HybridDog <3192173+HybridDog@users.noreply.github.com> Date: Sat, 3 Oct 2020 18:33:43 +0200 Subject: [PATCH 206/624] Chatcommand: Show help message if func returns false without message #9440 --- builtin/game/chat.lua | 13 +++++++++++-- doc/lua_api.txt | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/builtin/game/chat.lua b/builtin/game/chat.lua index 8131a6860..1d277730a 100644 --- a/builtin/game/chat.lua +++ b/builtin/game/chat.lua @@ -66,8 +66,17 @@ core.register_on_chat_message(function(name, message) local has_privs, missing_privs = core.check_player_privs(name, cmd_def.privs) if has_privs then core.set_last_run_mod(cmd_def.mod_origin) - local _, result = cmd_def.func(name, param) - if result then + local success, result = cmd_def.func(name, param) + if success == false and result == nil then + core.chat_send_player(name, "-!- Invalid command usage") + local help_def = core.registered_chatcommands["help"] + if help_def then + local _, helpmsg = help_def.func(name, cmd) + if helpmsg then + core.chat_send_player(name, helpmsg) + end + end + elseif result then core.chat_send_player(name, result) end else diff --git a/doc/lua_api.txt b/doc/lua_api.txt index bd845aad3..edacfe05f 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -7949,6 +7949,8 @@ Used by `minetest.register_chatcommand`. func = function(name, param), -- Called when command is run. Returns boolean success and text output. + -- Special case: The help message is shown to the player if `func` + -- returns false without a text output. } Note that in params, use of symbols is as follows: From 9dc29a75b416c6dab27ce93d0129383309cbf2c2 Mon Sep 17 00:00:00 2001 From: HybridDog <3192173+HybridDog@users.noreply.github.com> Date: Sat, 3 Oct 2020 18:33:51 +0200 Subject: [PATCH 207/624] Reduce the FPS when the window is unfocused (#8837) --- builtin/settingtypes.txt | 4 ++-- src/client/game.cpp | 7 ++++--- src/defaultsettings.cpp | 4 ++-- src/gui/guiEngine.cpp | 17 +++++++++-------- src/gui/guiEngine.h | 2 +- 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 6d9c6f573..7f2d12be5 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -606,8 +606,8 @@ arm_inertia (Arm inertia) bool true # to not waste CPU power for no benefit. fps_max (Maximum FPS) int 60 1 -# Maximum FPS when game is paused. -pause_fps_max (FPS in pause menu) int 20 1 +# Maximum FPS when the window is not focused, or when the game is paused. +fps_max_unfocused (FPS when unfocused or paused) int 20 1 # Open the pause menu when the window's focus is lost. Does not pause if a formspec is # open. diff --git a/src/client/game.cpp b/src/client/game.cpp index 920383aaf..8f9d51417 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -3996,9 +3996,10 @@ inline void Game::limitFps(FpsControl *fps_timings, f32 *dtime) else fps_timings->busy_time = 0; - u32 frametime_min = 1000 / (g_menumgr.pausesGame() - ? g_settings->getFloat("pause_fps_max") - : g_settings->getFloat("fps_max")); + u32 frametime_min = 1000 / ( + device->isWindowFocused() && !g_menumgr.pausesGame() + ? g_settings->getFloat("fps_max") + : g_settings->getFloat("fps_max_unfocused")); if (fps_timings->busy_time < frametime_min) { fps_timings->sleep_time = frametime_min - fps_timings->busy_time; diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 3a0b88dc2..8f5ed3e17 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -165,7 +165,7 @@ void set_default_settings(Settings *settings) settings->setDefault("tooltip_show_delay", "400"); settings->setDefault("tooltip_append_itemname", "false"); settings->setDefault("fps_max", "60"); - settings->setDefault("pause_fps_max", "20"); + settings->setDefault("fps_max_unfocused", "20"); settings->setDefault("viewing_range", "100"); #if ENABLE_GLES settings->setDefault("near_plane", "0.1"); @@ -477,7 +477,7 @@ void set_default_settings(Settings *settings) settings->setDefault("max_block_generate_distance", "5"); settings->setDefault("enable_3d_clouds", "false"); settings->setDefault("fps_max", "30"); - settings->setDefault("pause_fps_max", "10"); + settings->setDefault("fps_max_unfocused", "10"); settings->setDefault("max_objects_per_block", "20"); settings->setDefault("sqlite_synchronous", "1"); settings->setDefault("server_map_save_interval", "15"); diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp index b40707d01..4a13f0b11 100644 --- a/src/gui/guiEngine.cpp +++ b/src/gui/guiEngine.cpp @@ -297,10 +297,14 @@ void GUIEngine::run() driver->endScene(); + IrrlichtDevice *device = RenderingEngine::get_raw_device(); + u32 frametime_min = 1000 / (device->isWindowFocused() + ? g_settings->getFloat("fps_max") + : g_settings->getFloat("fps_max_unfocused")); if (m_clouds_enabled) - cloudPostProcess(); + cloudPostProcess(frametime_min, device); else - sleep_ms(25); + sleep_ms(frametime_min); m_script->step(); @@ -367,9 +371,8 @@ void GUIEngine::cloudPreProcess() } /******************************************************************************/ -void GUIEngine::cloudPostProcess() +void GUIEngine::cloudPostProcess(u32 frametime_min, IrrlichtDevice *device) { - float fps_max = g_settings->getFloat("pause_fps_max"); // Time of frame without fps limit u32 busytime_u32; @@ -380,12 +383,10 @@ void GUIEngine::cloudPostProcess() else busytime_u32 = 0; - // FPS limiter - u32 frametime_min = 1000./fps_max; - + // FPS limit if (busytime_u32 < frametime_min) { u32 sleeptime = frametime_min - busytime_u32; - RenderingEngine::get_raw_device()->sleep(sleeptime); + device->sleep(sleeptime); } } diff --git a/src/gui/guiEngine.h b/src/gui/guiEngine.h index f9ad0fb0a..e5b3edce7 100644 --- a/src/gui/guiEngine.h +++ b/src/gui/guiEngine.h @@ -277,7 +277,7 @@ private: /** do preprocessing for cloud subsystem */ void cloudPreProcess(); /** do postprocessing for cloud subsystem */ - void cloudPostProcess(); + void cloudPostProcess(u32 frametime_min, IrrlichtDevice *device); /** internam data required for drawing clouds */ struct clouddata { From 07500479191ed927ab661b3758ffcd2fd43158c5 Mon Sep 17 00:00:00 2001 From: random-geek <35757396+random-geek@users.noreply.github.com> Date: Sat, 3 Oct 2020 09:34:34 -0700 Subject: [PATCH 208/624] Fix scroll bar overlapping text (again) (#9058) --- src/gui/guiEditBoxWithScrollbar.cpp | 4 +--- src/gui/intlGUIEditBox.cpp | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/gui/guiEditBoxWithScrollbar.cpp b/src/gui/guiEditBoxWithScrollbar.cpp index 442406688..169425a9a 100644 --- a/src/gui/guiEditBoxWithScrollbar.cpp +++ b/src/gui/guiEditBoxWithScrollbar.cpp @@ -1028,7 +1028,7 @@ void GUIEditBoxWithScrollBar::breakText() s32 last_line_start = 0; s32 size = Text.size(); s32 length = 0; - s32 el_width = RelativeRect.getWidth() - 6; + s32 el_width = RelativeRect.getWidth() - m_scrollbar_width - 10; wchar_t c; for (s32 i = 0; i < size; ++i) { @@ -1399,8 +1399,6 @@ void GUIEditBoxWithScrollBar::createVScrollBar() m_scrollbar_width = skin ? skin->getSize(gui::EGDS_SCROLLBAR_SIZE) : 16; - RelativeRect.LowerRightCorner.X -= m_scrollbar_width + 4; - irr::core::rect scrollbarrect = m_frame_rect; scrollbarrect.UpperLeftCorner.X += m_frame_rect.getWidth() - m_scrollbar_width; m_vscrollbar = new GUIScrollBar(Environment, getParent(), -1, diff --git a/src/gui/intlGUIEditBox.cpp b/src/gui/intlGUIEditBox.cpp index 10395423c..8be63fd6f 100644 --- a/src/gui/intlGUIEditBox.cpp +++ b/src/gui/intlGUIEditBox.cpp @@ -1165,7 +1165,7 @@ void intlGUIEditBox::breakText() s32 lastLineStart = 0; s32 size = Text.size(); s32 length = 0; - s32 elWidth = RelativeRect.getWidth() - 6; + s32 elWidth = RelativeRect.getWidth() - m_scrollbar_width - 10; wchar_t c; for (s32 i=0; i scrollbarrect = FrameRect; scrollbarrect.UpperLeftCorner.X += FrameRect.getWidth() - m_scrollbar_width; m_vscrollbar = new GUIScrollBar(Environment, getParent(), -1, From 7d3641021b755be133dea58404fcb039211fbe52 Mon Sep 17 00:00:00 2001 From: Elijah Duffy Date: Sat, 3 Oct 2020 09:38:08 -0700 Subject: [PATCH 209/624] Lua API: Add register_on_chatcommand to SSM and CSM (#7862) Allows catching a chatcommand call just after the command and the parameters are parsed but before its existence is checked and before the corresponding function is run. Returning `true` from a callback function will prevent default handling of the command leaving mods to handle the command manually. --- builtin/client/chatcommands.lua | 5 +++++ builtin/client/register.lua | 1 + builtin/game/chat.lua | 5 +++++ builtin/game/register.lua | 1 + clientmods/preview/init.lua | 4 ++++ doc/client_lua_api.txt | 5 +++++ doc/lua_api.txt | 5 +++++ games/devtest/mods/experimental/commands.lua | 3 +++ 8 files changed, 29 insertions(+) diff --git a/builtin/client/chatcommands.lua b/builtin/client/chatcommands.lua index 5cb1b40bb..0e8d4dd03 100644 --- a/builtin/client/chatcommands.lua +++ b/builtin/client/chatcommands.lua @@ -23,6 +23,11 @@ core.register_on_sending_chat_message(function(message) return true end + -- Run core.registered_on_chatcommand callbacks. + if core.run_callbacks(core.registered_on_chatcommand, 5, cmd, param) then + return true + end + local cmd_def = core.registered_chatcommands[cmd] if cmd_def then core.set_last_run_mod(cmd_def.mod_origin) diff --git a/builtin/client/register.lua b/builtin/client/register.lua index c1b4965c1..acd36ab36 100644 --- a/builtin/client/register.lua +++ b/builtin/client/register.lua @@ -63,6 +63,7 @@ core.registered_on_mods_loaded, core.register_on_mods_loaded = make_registration core.registered_on_shutdown, core.register_on_shutdown = make_registration() core.registered_on_receiving_chat_message, core.register_on_receiving_chat_message = make_registration() core.registered_on_sending_chat_message, core.register_on_sending_chat_message = make_registration() +core.registered_on_chatcommand, core.register_on_chatcommand = make_registration() core.registered_on_death, core.register_on_death = make_registration() core.registered_on_hp_modification, core.register_on_hp_modification = make_registration() core.registered_on_damage_taken, core.register_on_damage_taken = make_registration() diff --git a/builtin/game/chat.lua b/builtin/game/chat.lua index 1d277730a..945707623 100644 --- a/builtin/game/chat.lua +++ b/builtin/game/chat.lua @@ -58,6 +58,11 @@ core.register_on_chat_message(function(name, message) param = param or "" + -- Run core.registered_on_chatcommands callbacks. + if core.run_callbacks(core.registered_on_chatcommands, 5, name, cmd, param) then + return true + end + local cmd_def = core.registered_chatcommands[cmd] if not cmd_def then core.chat_send_player(name, "-!- Invalid command: " .. cmd) diff --git a/builtin/game/register.lua b/builtin/game/register.lua index 1034d4f2b..3de67c04b 100644 --- a/builtin/game/register.lua +++ b/builtin/game/register.lua @@ -584,6 +584,7 @@ core.unregister_biome = make_wrap_deregistration(core.register_biome, core.clear_registered_biomes, core.registered_biomes) core.registered_on_chat_messages, core.register_on_chat_message = make_registration() +core.registered_on_chatcommands, core.register_on_chatcommand = make_registration() core.registered_globalsteps, core.register_globalstep = make_registration() core.registered_playerevents, core.register_playerevent = make_registration() core.registered_on_mods_loaded, core.register_on_mods_loaded = make_registration() diff --git a/clientmods/preview/init.lua b/clientmods/preview/init.lua index 089955d2f..977ed0ec3 100644 --- a/clientmods/preview/init.lua +++ b/clientmods/preview/init.lua @@ -109,6 +109,10 @@ core.register_on_sending_chat_message(function(message) return false end) +core.register_on_chatcommand(function(command, params) + print("[PREVIEW] caught command '"..command.."'. Parameters: '"..params.."'") +end) + -- This is an example function to ensure it's working properly, should be removed before merge core.register_on_hp_modification(function(hp) print("[PREVIEW] HP modified " .. hp) diff --git a/doc/client_lua_api.txt b/doc/client_lua_api.txt index 4c5231b79..32be2fabf 100644 --- a/doc/client_lua_api.txt +++ b/doc/client_lua_api.txt @@ -686,6 +686,11 @@ Call these functions only at load time! * Adds definition to minetest.registered_chatcommands * `minetest.unregister_chatcommand(name)` * Unregisters a chatcommands registered with register_chatcommand. +* `minetest.register_on_chatcommand(function(command, params))` + * Called always when a chatcommand is triggered, before `minetest.registered_chatcommands` + is checked to see if that the command exists, but after the input is parsed. + * Return `true` to mark the command as handled, which means that the default + handlers will be prevented. * `minetest.register_on_death(function())` * Called when the local player dies * `minetest.register_on_hp_modification(function(hp))` diff --git a/doc/lua_api.txt b/doc/lua_api.txt index edacfe05f..e8eb403c4 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -4606,6 +4606,11 @@ Call these functions only at load time! * Called always when a player says something * Return `true` to mark the message as handled, which means that it will not be sent to other players. +* `minetest.register_on_chatcommand(function(name, command, params))` + * Called always when a chatcommand is triggered, before `minetest.registered_chatcommands` + is checked to see if the command exists, but after the input is parsed. + * Return `true` to mark the command as handled, which means that the default + handlers will be prevented. * `minetest.register_on_player_receive_fields(function(player, formname, fields))` * Called when the server received input from `player` in a formspec with the given `formname`. Specifically, this is called on any of the diff --git a/games/devtest/mods/experimental/commands.lua b/games/devtest/mods/experimental/commands.lua index 158e5039d..132b08b0b 100644 --- a/games/devtest/mods/experimental/commands.lua +++ b/games/devtest/mods/experimental/commands.lua @@ -214,3 +214,6 @@ minetest.register_chatcommand("test_place_nodes", { end, }) +core.register_on_chatcommand(function(name, command, params) + minetest.log("caught command '"..command.."', issued by '"..name.."'. Parameters: '"..params.."'") +end) From 962438717913498bc44ec98d37bccc7a4798bca2 Mon Sep 17 00:00:00 2001 From: LoneWolfHT Date: Sat, 3 Oct 2020 10:00:08 -0700 Subject: [PATCH 210/624] Add note to docs on how to override privileges (#9792) --- doc/lua_api.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index e8eb403c4..5d5e4b93a 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -5767,6 +5767,9 @@ Global tables * Map of registered tool definitions, indexed by name * `minetest.registered_entities` * Map of registered entity prototypes, indexed by name + * Values in this table may be modified directly. + Note: changes to initial properties will only affect entities spawned afterwards, + as they are only read when spawning. * `minetest.object_refs` * Map of object references, indexed by active object id * `minetest.luaentities` @@ -5797,6 +5800,7 @@ Global tables * Map of registered chat command definitions, indexed by name * `minetest.registered_privileges` * Map of registered privilege definitions, indexed by name + * Registered privileges can be modified directly in this table. ### Registered callback tables From 41a6136f774a30364b6d3fd2042c9dbeb34f2109 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sat, 3 Oct 2020 19:01:38 +0200 Subject: [PATCH 211/624] Document builtin entities (#9453) This PR adds a new text file doc/builtin_entities.txt which explains how the two builtin entities __builtin:item and __builtin:falling_node work. --- doc/builtin_entities.txt | 101 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 doc/builtin_entities.txt diff --git a/doc/builtin_entities.txt b/doc/builtin_entities.txt new file mode 100644 index 000000000..be3f73357 --- /dev/null +++ b/doc/builtin_entities.txt @@ -0,0 +1,101 @@ +# Builtin Entities +Minetest registers two entities by default: Falling nodes and dropped items. +This document describes how they behave and what you can do with them. + +## Falling node (`__builtin:falling_node`) + +This entity is created by `minetest.check_for_falling` in place of a node +with the special group `falling_node=1`. Falling nodes can also be created +artificially with `minetest.spawn_falling_node`. + +Needs manual initialization when spawned using `/spawnentity`. + +Default behaviour: + +* Falls down in a straight line (gravity = `movement_gravity` setting) +* Collides with `walkable` node +* Collides with all physical objects except players +* If the node group `float=1` is set, it also collides with liquid nodes +* When it hits a solid (=`walkable`) node, it will try to place itself as a + node, replacing the node above. + * If the falling node cannot replace the destination node, it is dropped. + * If the destination node is a leveled node (`paramtype2="leveled"`) of the + same node name, the levels of both are summed. + +### Entity fields + +* `set_node(self, node[, meta])` + * Function to initialize the falling node + * `node` and `meta` are explained below. + * The `meta` argument is optional. +* `node`: Node table of the node (`name`, `param1`, `param2`) that this + entity represents. Read-only. +* `meta`: Node metadata of the falling node. Will be used when the falling + nodes tries to place itself as a node. Read-only. + +### Rendering / supported nodes + +Falling nodes have visuals to look as close as possible to the original node. +This works for most drawtypes, but there are limitations. + +Supported drawtypes: + +* `normal` +* `signlike` +* `torchlike` +* `nodebox` +* `raillike` +* `glasslike` +* `glasslike_framed` +* `glasslike_framed_optional` +* `allfaces` +* `allfaces_optional` +* `firelike` +* `mesh` +* `fencelike` +* `liquid` +* `airlike` (not pointable) + +Other drawtypes still kinda work, but they might look weird. + +Supported `paramtype2` values: + +* `wallmounted` +* `facedir` +* `colorwallmounted` +* `colorfacedir` +* `color` + +## Dropped item stack (`__builtin:item`) + +This is an item stack in a collectable form. + +Common cases that spawn a dropped item: + +* Item dropped by player +* The root node of a node with the group `attached_node=1` is removed +* `minetest.add_item` is called + +Needs manual initialization when spawned using `/spawnentity`. + +### Behavior + +* Players can collect it by punching +* Lifespan is defined by the setting `item_entity_ttl` +* Slides on `slippery` nodes +* Subject to gravity (uses `movement_gravity` setting) +* Collides with `walkable` nodes +* Does not collide physical objects +* When it's inside a solid (`walkable=true`) node, it tries to escape to a + neighboring non-solid (`walkable=false`) node + +### Entity fields + +* `set_item(self, item)`: + * Function to initialize the dropped item + * `item` (type `ItemStack`) specifies the item to represent +* `age`: Age in seconds. Behaviour according to the setting `item_entity_ttl` +* `itemstring`: Itemstring of the item that this item entity represents. + Read-only. + +Other fields are for internal use only. From 3250b37e32f264db04c1ca449d9feefc22fd38b7 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 4 Oct 2020 00:33:45 +0100 Subject: [PATCH 212/624] Deprecate get_player_velocity and add_player_velocity (#10173) --- builtin/game/features.lua | 1 + doc/lua_api.txt | 31 +++++++------ src/script/lua_api/l_base.cpp | 5 +- src/script/lua_api/l_object.cpp | 82 +++++++++++++++------------------ src/script/lua_api/l_object.h | 6 --- 5 files changed, 58 insertions(+), 67 deletions(-) diff --git a/builtin/game/features.lua b/builtin/game/features.lua index a15475333..4d3c90ff0 100644 --- a/builtin/game/features.lua +++ b/builtin/game/features.lua @@ -17,6 +17,7 @@ core.features = { area_store_persistent_ids = true, pathfinder_works = true, object_step_has_moveresult = true, + direct_velocity_on_players = true, } function core.has_feature(arg) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 5d5e4b93a..c21da1871 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -4340,6 +4340,8 @@ Utilities pathfinder_works = true, -- Whether Collision info is available to an objects' on_step (5.3.0) object_step_has_moveresult = true, + -- Whether get_velocity() and add_velocity() can be used on players (5.4.0) + direct_velocity_on_players = true, } * `minetest.has_feature(arg)`: returns `boolean, missing_features` @@ -6118,6 +6120,19 @@ object you are working with still exists. * `get_pos()`: returns `{x=num, y=num, z=num}` * `set_pos(pos)`: `pos`=`{x=num, y=num, z=num}` +* `get_velocity()`: returns the velocity, a vector. +* `add_velocity(vel)` + * `vel` is a vector, e.g. `{x=0.0, y=2.3, z=1.0}` + * In comparison to using get_velocity, adding the velocity and then using + set_velocity, add_velocity is supposed to avoid synchronization problems. + Additionally, players also do not support set_velocity. + * If a player: + * Does not apply during free_move. + * Note that since the player speed is normalized at each move step, + increasing e.g. Y velocity beyond what would usually be achieved + (see: physics overrides) will cause existing X/Z velocity to be reduced. + * Example: `add_velocity({x=0, y=6.5, z=0})` is equivalent to + pressing the jump key (assuming default settings) * `move_to(pos, continuous=false)` * Does an interpolated move for Lua entities for visually smooth transitions. * If `continuous` is true, the Lua entity will not be moved to the current @@ -6189,11 +6204,6 @@ object you are working with still exists. no effect and returning `nil`. * `set_velocity(vel)` * `vel` is a vector, e.g. `{x=0.0, y=2.3, z=1.0}` -* `add_velocity(vel)` - * `vel` is a vector, e.g. `{x=0.0, y=2.3, z=1.0}` - * In comparison to using get_velocity, adding the velocity and then using - set_velocity, add_velocity is supposed to avoid synchronization problems. -* `get_velocity()`: returns the velocity, a vector * `set_acceleration(acc)` * `acc` is a vector * `get_acceleration()`: returns the acceleration, a vector @@ -6229,16 +6239,9 @@ object you are working with still exists. #### Player only (no-op for other objects) * `get_player_name()`: returns `""` if is not a player -* `get_player_velocity()`: returns `nil` if is not a player, otherwise a +* `get_player_velocity()`: **DEPRECATED**, use get_velocity() instead. table {x, y, z} representing the player's instantaneous velocity in nodes/s -* `add_player_velocity(vel)` - * Adds to player velocity, this happens client-side and only once. - * Does not apply during free_move. - * Note that since the player speed is normalized at each move step, - increasing e.g. Y velocity beyond what would usually be achieved - (see: physics overrides) will cause existing X/Z velocity to be reduced. - * Example: `add_player_velocity({x=0, y=6.5, z=0})` is equivalent to - pressing the jump key (assuming default settings) +* `add_player_velocity(vel)`: **DEPRECATED**, use add_velocity(vel) instead. * `get_look_dir()`: get camera direction as a unit vector * `get_look_vertical()`: pitch in radians * Angle ranges between -pi/2 and pi/2, which are straight up and down diff --git a/src/script/lua_api/l_base.cpp b/src/script/lua_api/l_base.cpp index 2bee09436..03ef5447a 100644 --- a/src/script/lua_api/l_base.cpp +++ b/src/script/lua_api/l_base.cpp @@ -170,10 +170,11 @@ void ModApiBase::markAliasDeprecated(luaL_Reg *reg) m_deprecated_wrappers.emplace( std::pair(reg->name, original_reg)); reg->func = l_deprecated_function; + } else { + last_func = reg->func; + last_name = reg->name; } - last_func = reg->func; - last_name = reg->name; ++reg; } } diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 24667e769..303b1175b 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -863,12 +863,21 @@ int ObjectRef::l_add_velocity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (!co) + v3f vel = checkFloatPos(L, 2); + + ServerActiveObject *obj = getobject(ref); + if (obj == nullptr) return 0; - v3f pos = checkFloatPos(L, 2); - // Do it - co->addVelocity(pos); + + if (obj->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) { + LuaEntitySAO *co = dynamic_cast(obj); + co->addVelocity(vel); + } else if (obj->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + PlayerSAO *player = dynamic_cast(obj); + player->setMaxSpeedOverride(vel); + getServer(L)->SendPlayerSpeed(player->getPeerID(), vel); + } + return 0; } @@ -877,11 +886,23 @@ int ObjectRef::l_get_velocity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - v3f v = co->getVelocity(); - pushFloatPos(L, v); + + ServerActiveObject *obj = getobject(ref); + if (obj == nullptr) + return 0; + + if (obj->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) { + LuaEntitySAO *co = dynamic_cast(obj); + v3f v = co->getVelocity(); + pushFloatPos(L, v); + return 1; + } else if (obj->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + RemotePlayer *player = dynamic_cast(obj)->getPlayer(); + push_v3f(L, player->getSpeed() / BS); + return 1; + } + + lua_pushnil(L); return 1; } @@ -1082,38 +1103,6 @@ int ObjectRef::l_get_player_name(lua_State *L) return 1; } -// get_player_velocity(self) -int ObjectRef::l_get_player_velocity(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - ObjectRef *ref = checkobject(L, 1); - RemotePlayer *player = getplayer(ref); - if (player == NULL) { - lua_pushnil(L); - return 1; - } - // Do it - push_v3f(L, player->getSpeed() / BS); - return 1; -} - -// add_player_velocity(self, {x=num, y=num, z=num}) -int ObjectRef::l_add_player_velocity(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - ObjectRef *ref = checkobject(L, 1); - v3f vel = checkFloatPos(L, 2); - - PlayerSAO *co = getplayersao(ref); - if (!co) - return 0; - - // Do it - co->setMaxSpeedOverride(vel); - getServer(L)->SendPlayerSpeed(co->getPeerID(), vel); - return 0; -} - // get_look_dir(self) int ObjectRef::l_get_look_dir(lua_State *L) { @@ -2288,10 +2277,14 @@ luaL_Reg ObjectRef::methods[] = { luamethod(ObjectRef, get_properties), luamethod(ObjectRef, set_nametag_attributes), luamethod(ObjectRef, get_nametag_attributes), - // LuaEntitySAO-only + luamethod_aliased(ObjectRef, set_velocity, setvelocity), luamethod(ObjectRef, add_velocity), + {"add_player_velocity", ObjectRef::l_add_velocity}, luamethod_aliased(ObjectRef, get_velocity, getvelocity), + {"get_player_velocity", ObjectRef::l_get_velocity}, + + // LuaEntitySAO-only luamethod_aliased(ObjectRef, set_acceleration, setacceleration), luamethod_aliased(ObjectRef, get_acceleration, getacceleration), luamethod_aliased(ObjectRef, set_yaw, setyaw), @@ -2307,8 +2300,7 @@ luaL_Reg ObjectRef::methods[] = { luamethod(ObjectRef, is_player), luamethod(ObjectRef, is_player_connected), luamethod(ObjectRef, get_player_name), - luamethod(ObjectRef, get_player_velocity), - luamethod(ObjectRef, add_player_velocity), + luamethod(ObjectRef, get_look_dir), luamethod(ObjectRef, get_look_pitch), luamethod(ObjectRef, get_look_yaw), diff --git a/src/script/lua_api/l_object.h b/src/script/lua_api/l_object.h index a75c59fd9..126719b1f 100644 --- a/src/script/lua_api/l_object.h +++ b/src/script/lua_api/l_object.h @@ -209,12 +209,6 @@ private: // get_player_name(self) static int l_get_player_name(lua_State *L); - // get_player_velocity(self) - static int l_get_player_velocity(lua_State *L); - - // add_player_velocity(self, {x=num, y=num, z=num}) - static int l_add_player_velocity(lua_State *L); - // get_fov(self) static int l_get_fov(lua_State *L); From 0f98b54aa4b2361575002d92b29fe222703ba557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= <34514239+appgurueu@users.noreply.github.com> Date: Sun, 4 Oct 2020 15:09:12 +0200 Subject: [PATCH 213/624] Fix short 180 degree rotation when using set_bone_position (#10405) --- src/client/content_cao.cpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 71a9d4b54..c1715a289 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -1460,24 +1460,17 @@ void GenericCAO::updateBonePosition() if (!bone) continue; - //If bone is manually positioned there is no need to perform the bug check - bool skip = false; - for (auto &it : m_bone_position) { - if (it.first == bone->getName()) { - skip = true; - break; - } - } - if (skip) - continue; - // Workaround for Irrlicht bug // We check each bone to see if it has been rotated ~180deg from its expected position due to a bug in Irricht // when using EJUOR_CONTROL joint control. If the bug is detected we update the bone to the proper position // and update the bones transformation. v3f bone_rot = bone->getRelativeTransformation().getRotationDegrees(); - float offset = fabsf(bone_rot.X - bone->getRotation().X); - if (offset > 179.9f && offset < 180.1f) { + float offset_X = fabsf(bone_rot.X - bone->getRotation().X); + float offset_Y = fabsf(bone_rot.Y - bone->getRotation().Y); + float offset_Z = fabsf(bone_rot.Z - bone->getRotation().Z); + if ((offset_X > 179.9f && offset_X < 180.1f) + || (offset_Y > 179.9f && offset_Y < 180.1f) + || (offset_Z > 179.9f && offset_Z < 180.1f)) { bone->setRotation(bone_rot); bone->updateAbsolutePosition(); } From 3068853e8a58ccc7370a5ce977c08223601c497a Mon Sep 17 00:00:00 2001 From: Jordan Snelling Date: Sun, 4 Oct 2020 14:10:34 +0100 Subject: [PATCH 214/624] Add First Person Attachments (#10360) Fixes some other third person camera specific attachments. Implements a single new flag for entities to be forced visible in first person mode. Old mods do not need to be updated to use the new flag and are fully backwards compatible. --- doc/lua_api.txt | 8 +++-- src/activeobject.h | 4 +-- src/client/content_cao.cpp | 56 +++++++++++++++++++++++++++++---- src/client/content_cao.h | 8 +++++ src/client/game.cpp | 3 +- src/clientiface.cpp | 5 +-- src/script/lua_api/l_camera.cpp | 3 +- src/script/lua_api/l_object.cpp | 14 ++++++--- src/server/luaentity_sao.cpp | 4 +-- src/server/player_sao.cpp | 9 +++--- src/server/unit_sao.cpp | 17 +++++----- src/server/unit_sao.h | 5 +-- 12 files changed, 101 insertions(+), 35 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index c21da1871..77fb4a654 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6167,12 +6167,14 @@ object you are working with still exists. `frame_loop`. * `set_animation_frame_speed(frame_speed)` * `frame_speed`: number, default: `15.0` -* `set_attach(parent, bone, position, rotation)` +* `set_attach(parent, bone, position, rotation, forced_visible)` * `bone`: string * `position`: `{x=num, y=num, z=num}` (relative) * `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees -* `get_attach()`: returns parent, bone, position, rotation or nil if it isn't - attached. + * `forced_visible`: Boolean to control whether the attached entity + should appear in first person. +* `get_attach()`: returns parent, bone, position, rotation, forced_visible, + or nil if it isn't attached. * `set_detach()` * `set_bone_position(bone, position, rotation)` * `bone`: string diff --git a/src/activeobject.h b/src/activeobject.h index 85e160d10..0829858ad 100644 --- a/src/activeobject.h +++ b/src/activeobject.h @@ -120,9 +120,9 @@ public: virtual void setAttachment(int parent_id, const std::string &bone, v3f position, - v3f rotation) {} + v3f rotation, bool force_visible) {} virtual void getAttachment(int *parent_id, std::string *bone, v3f *position, - v3f *rotation) const {} + v3f *rotation, bool *force_visible) const {} virtual void clearChildAttachments() {} virtual void clearParentAttachment() {} virtual void addAttachmentChild(int child_id) {} diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index c1715a289..fae06554a 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -456,7 +456,8 @@ void GenericCAO::setChildrenVisible(bool toset) for (u16 cao_id : m_attachment_child_ids) { GenericCAO *obj = m_env->getGenericCAO(cao_id); if (obj) { - obj->setVisible(toset); + // Check if the entity is forced to appear in first person. + obj->setVisible(obj->isForcedVisible() ? true : toset); } } } @@ -477,8 +478,6 @@ void GenericCAO::setAttachment(int parent_id, const std::string &bone, v3f posit if (parent) parent->addAttachmentChild(m_id); } - - updateAttachments(); } @@ -498,7 +497,7 @@ void GenericCAO::clearChildAttachments() int child_id = *m_attachment_child_ids.begin(); if (ClientActiveObject *child = m_env->getActiveObject(child_id)) - child->setAttachment(0, "", v3f(), v3f()); + child->setAttachment(0, "", v3f(), v3f(), false); removeAttachmentChild(child_id); } @@ -800,6 +799,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc) updateBonePosition(); updateAttachments(); setNodeLight(m_last_light); + updateMeshCulling(); } void GenericCAO::updateLight(u32 day_night_ratio) @@ -1411,6 +1411,9 @@ void GenericCAO::updateTextures(std::string mod) setMeshColor(mesh, m_prop.colors[0]); } } + // Prevent showing the player after changing texture + if (m_is_local_player) + updateMeshCulling(); } void GenericCAO::updateAnimation() @@ -1739,12 +1742,25 @@ void GenericCAO::processMessage(const std::string &data) std::string bone = deSerializeString16(is); v3f position = readV3F32(is); v3f rotation = readV3F32(is); + m_force_visible = readU8(is); // Returns false for EOF setAttachment(parent_id, bone, position, rotation); + // Forcibly show attachments if required by set_attach + if (m_force_visible) + m_is_visible = true; // localplayer itself can't be attached to localplayer - if (!m_is_local_player) - m_is_visible = !m_attached_to_local; + else if (!m_is_local_player) { + // Objects attached to the local player should be hidden in first + // person provided the forced boolean isn't set. + m_is_visible = !m_attached_to_local || + m_client->getCamera()->getCameraMode() != CAMERA_MODE_FIRST; + m_force_visible = false; + } else { + // Local players need to have this set, + // otherwise first person attachments fail. + m_is_visible = true; + } } else if (cmd == AO_CMD_PUNCHED) { u16 result_hp = readU16(is); @@ -1858,5 +1874,33 @@ std::string GenericCAO::debugInfoText() return os.str(); } +void GenericCAO::updateMeshCulling() +{ + if (!m_is_local_player) + return; + + // Grab the active player scene node so we know there's + // at least a mesh to occlude from the camera. + irr::scene::ISceneNode *node = getSceneNode(); + if (!node) + return; + + if (m_client->getCamera()->getCameraMode() == CAMERA_MODE_FIRST) { + // Hide the mesh by culling both front and + // back faces. Serious hackyness but it works for our + // purposes. This also preserves the skeletal armature. + node->setMaterialFlag(video::EMF_BACK_FACE_CULLING, + true); + node->setMaterialFlag(video::EMF_FRONT_FACE_CULLING, + true); + } else { + // Restore mesh visibility. + node->setMaterialFlag(video::EMF_BACK_FACE_CULLING, + m_prop.backface_culling); + node->setMaterialFlag(video::EMF_FRONT_FACE_CULLING, + false); + } +} + // Prototype GenericCAO proto_GenericCAO(NULL, NULL); diff --git a/src/client/content_cao.h b/src/client/content_cao.h index 974ff9a1e..daf697767 100644 --- a/src/client/content_cao.h +++ b/src/client/content_cao.h @@ -124,6 +124,7 @@ private: float m_step_distance_counter = 0.0f; u8 m_last_light = 255; bool m_is_visible = false; + bool m_force_visible = false; s8 m_glow = 0; // Material video::E_MATERIAL_TYPE m_material_type; @@ -215,6 +216,11 @@ public: m_is_visible = toset; } + inline bool isForcedVisible() const + { + return m_force_visible; + } + void setChildrenVisible(bool toset); void setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation); void getAttachment(int *parent_id, std::string *bone, v3f *position, @@ -275,4 +281,6 @@ public: { return m_prop.infotext; } + + void updateMeshCulling(); }; diff --git a/src/client/game.cpp b/src/client/game.cpp index 8f9d51417..366464467 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -2950,7 +2950,8 @@ void Game::updateCamera(u32 busy_time, f32 dtime) camera->toggleCameraMode(); - playercao->setVisible(camera->getCameraMode() > CAMERA_MODE_FIRST); + // Make the player visible depending on camera mode. + playercao->updateMeshCulling(); playercao->setChildrenVisible(camera->getCameraMode() > CAMERA_MODE_FIRST); } diff --git a/src/clientiface.cpp b/src/clientiface.cpp index 602a44c90..28a0ee770 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -80,10 +80,11 @@ LuaEntitySAO *getAttachedObject(PlayerSAO *sao, ServerEnvironment *env) int id; std::string bone; v3f dummy; - sao->getAttachment(&id, &bone, &dummy, &dummy); + bool force_visible; + sao->getAttachment(&id, &bone, &dummy, &dummy, &force_visible); ServerActiveObject *ao = env->getActiveObject(id); while (id && ao) { - ao->getAttachment(&id, &bone, &dummy, &dummy); + ao->getAttachment(&id, &bone, &dummy, &dummy, &force_visible); if (id) ao = env->getActiveObject(id); } diff --git a/src/script/lua_api/l_camera.cpp b/src/script/lua_api/l_camera.cpp index bfa60be67..40251154c 100644 --- a/src/script/lua_api/l_camera.cpp +++ b/src/script/lua_api/l_camera.cpp @@ -63,7 +63,8 @@ int LuaCamera::l_set_camera_mode(lua_State *L) return 0; camera->setCameraMode((CameraMode)((int)lua_tonumber(L, 2))); - playercao->setVisible(camera->getCameraMode() > CAMERA_MODE_FIRST); + // Make the player visible depending on camera mode. + playercao->updateMeshCulling(); playercao->setChildrenVisible(camera->getCameraMode() > CAMERA_MODE_FIRST); return 0; } diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 303b1175b..fead4e849 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -664,7 +664,7 @@ int ObjectRef::l_get_bone_position(lua_State *L) return 2; } -// set_attach(self, parent, bone, position, rotation) +// set_attach(self, parent, bone, position, rotation, force_visible) int ObjectRef::l_set_attach(lua_State *L) { GET_ENV_PTR; @@ -687,7 +687,8 @@ int ObjectRef::l_set_attach(lua_State *L) std::string bone; v3f position = v3f(0, 0, 0); v3f rotation = v3f(0, 0, 0); - co->getAttachment(&parent_id, &bone, &position, &rotation); + bool force_visible; + co->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); if (parent_id) { ServerActiveObject *old_parent = env->getActiveObject(parent_id); old_parent->removeAttachmentChild(co->getId()); @@ -702,7 +703,8 @@ int ObjectRef::l_set_attach(lua_State *L) rotation = v3f(0, 0, 0); if (!lua_isnil(L, 5)) rotation = read_v3f(L, 5); - co->setAttachment(parent->getId(), bone, position, rotation); + force_visible = readParam(L, 6, false); + co->setAttachment(parent->getId(), bone, position, rotation, force_visible); parent->addAttachmentChild(co->getId()); return 0; } @@ -722,7 +724,8 @@ int ObjectRef::l_get_attach(lua_State *L) std::string bone; v3f position = v3f(0, 0, 0); v3f rotation = v3f(0, 0, 0); - co->getAttachment(&parent_id, &bone, &position, &rotation); + bool force_visible; + co->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); if (!parent_id) return 0; ServerActiveObject *parent = env->getActiveObject(parent_id); @@ -731,7 +734,8 @@ int ObjectRef::l_get_attach(lua_State *L) lua_pushlstring(L, bone.c_str(), bone.size()); push_v3f(L, position); push_v3f(L, rotation); - return 4; + lua_pushboolean(L, force_visible); + return 5; } // set_detach(self) diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp index f20914f7f..b39797531 100644 --- a/src/server/luaentity_sao.cpp +++ b/src/server/luaentity_sao.cpp @@ -238,9 +238,9 @@ std::string LuaEntitySAO::getClientInitializationData(u16 protocol_version) msg_os << serializeString32(generateUpdateAnimationCommand()); // 3 for (const auto &bone_pos : m_bone_position) { msg_os << serializeString32(generateUpdateBonePositionCommand( - bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // m_bone_position.size + bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // 3 + N } - msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 + msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 + m_bone_position.size int message_count = 4 + m_bone_position.size(); diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index 8d4938c3c..344d18a20 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -122,10 +122,10 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version) msg_os << serializeString32(generateUpdateAnimationCommand()); // 3 for (const auto &bone_pos : m_bone_position) { msg_os << serializeString32(generateUpdateBonePositionCommand( - bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // m_bone_position.size + bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // 3 + N } - msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 - msg_os << serializeString32(generateUpdatePhysicsOverrideCommand()); // 5 + msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 + m_bone_position.size + msg_os << serializeString32(generateUpdatePhysicsOverrideCommand()); // 5 + m_bone_position.size int message_count = 5 + m_bone_position.size(); @@ -569,7 +569,8 @@ bool PlayerSAO::checkMovementCheat() int parent_id; std::string bone; v3f attachment_rot; - getAttachment(&parent_id, &bone, &attachment_pos, &attachment_rot); + bool force_visible; + getAttachment(&parent_id, &bone, &attachment_pos, &attachment_rot, &force_visible); } v3f parent_pos = parent->getBasePosition(); diff --git a/src/server/unit_sao.cpp b/src/server/unit_sao.cpp index d906e885e..2371640ca 100644 --- a/src/server/unit_sao.cpp +++ b/src/server/unit_sao.cpp @@ -121,8 +121,8 @@ void UnitSAO::sendOutdatedData() } // clang-format on -void UnitSAO::setAttachment( - int parent_id, const std::string &bone, v3f position, v3f rotation) +void UnitSAO::setAttachment(int parent_id, const std::string &bone, v3f position, + v3f rotation, bool force_visible) { // Attachments need to be handled on both the server and client. // If we just attach on the server, we can only copy the position of the parent. @@ -137,6 +137,7 @@ void UnitSAO::setAttachment( m_attachment_bone = bone; m_attachment_position = position; m_attachment_rotation = rotation; + m_force_visible = force_visible; m_attachment_sent = false; if (parent_id != old_parent) { @@ -145,13 +146,14 @@ void UnitSAO::setAttachment( } } -void UnitSAO::getAttachment( - int *parent_id, std::string *bone, v3f *position, v3f *rotation) const +void UnitSAO::getAttachment(int *parent_id, std::string *bone, v3f *position, + v3f *rotation, bool *force_visible) const { *parent_id = m_attachment_parent_id; *bone = m_attachment_bone; *position = m_attachment_position; *rotation = m_attachment_rotation; + *force_visible = m_force_visible; } void UnitSAO::clearChildAttachments() @@ -159,7 +161,7 @@ void UnitSAO::clearChildAttachments() for (int child_id : m_attachment_child_ids) { // Child can be NULL if it was deleted earlier if (ServerActiveObject *child = m_env->getActiveObject(child_id)) - child->setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0)); + child->setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0), false); } m_attachment_child_ids.clear(); } @@ -169,9 +171,9 @@ void UnitSAO::clearParentAttachment() ServerActiveObject *parent = nullptr; if (m_attachment_parent_id) { parent = m_env->getActiveObject(m_attachment_parent_id); - setAttachment(0, "", m_attachment_position, m_attachment_rotation); + setAttachment(0, "", m_attachment_position, m_attachment_rotation, false); } else { - setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0)); + setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0), false); } // Do it if (parent) @@ -245,6 +247,7 @@ std::string UnitSAO::generateUpdateAttachmentCommand() const os << serializeString16(m_attachment_bone); writeV3F32(os, m_attachment_position); writeV3F32(os, m_attachment_rotation); + writeU8(os, m_force_visible); return os.str(); } diff --git a/src/server/unit_sao.h b/src/server/unit_sao.h index 3cb7f0ad5..a21e055c5 100644 --- a/src/server/unit_sao.h +++ b/src/server/unit_sao.h @@ -64,9 +64,9 @@ public: ServerActiveObject *getParent() const; inline bool isAttached() const { return getParent(); } void setAttachment(int parent_id, const std::string &bone, v3f position, - v3f rotation); + v3f rotation, bool force_visible); void getAttachment(int *parent_id, std::string *bone, v3f *position, - v3f *rotation) const; + v3f *rotation, bool *force_visible) const; void clearChildAttachments(); void clearParentAttachment(); void addAttachmentChild(int child_id); @@ -133,4 +133,5 @@ private: v3f m_attachment_position; v3f m_attachment_rotation; bool m_attachment_sent = false; + bool m_force_visible = false; }; From 81c66d6efb9fb0ab8a03b40e2bc22aa49eff9a04 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Sun, 4 Oct 2020 15:24:29 +0200 Subject: [PATCH 215/624] Minimap as HUD element with API control Features: * Define Minimap available modes (surface/radar, scale) from Lua, using player:set_minimap_modes() * New HUD elements for displaying minimap with custom size and placing * New minimap mode for displaying a texture instead of the map --- doc/lua_api.txt | 33 +++- src/client/client.cpp | 1 + src/client/client.h | 1 + src/client/game.cpp | 75 ++++----- src/client/hud.cpp | 30 +++- src/client/hud.h | 2 + src/client/mapblock_mesh.cpp | 2 +- src/client/minimap.cpp | 237 +++++++++++++++++++++------- src/client/minimap.h | 41 ++--- src/hud.cpp | 1 + src/hud.h | 13 +- src/network/clientopcodes.cpp | 1 + src/network/clientpackethandler.cpp | 44 +++++- src/network/networkprotocol.h | 14 +- src/network/serveropcodes.cpp | 1 + src/script/lua_api/l_minimap.cpp | 24 +-- src/script/lua_api/l_object.cpp | 62 ++++++++ src/script/lua_api/l_object.h | 3 + src/server.cpp | 17 ++ src/server.h | 12 ++ 20 files changed, 470 insertions(+), 144 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 77fb4a654..9e9af20da 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -1484,6 +1484,15 @@ Displays an image oriented or translated according to current heading direction. If translation is chosen, texture is repeated horizontally to fill the whole element. +### `minimap` + +Displays a minimap on the HUD. + +* `size`: Size of the minimap to display. Minimap should be a square to avoid + distortion. +* `alignment`: The alignment of the minimap. +* `offset`: offset in pixels from position. + Representations of simple things ================================ @@ -6366,6 +6375,27 @@ object you are working with still exists. * `hud_set_hotbar_selected_image(texturename)` * sets image for selected item of hotbar * `hud_get_hotbar_selected_image`: returns texturename +* `set_minimap_modes({mode, mode, ...}, selected_mode)` + * Overrides the available minimap modes (and toggle order), and changes the + selected mode. + * `mode` is a table consisting of up to four fields: + * `type`: Available type: + * `off`: Minimap off + * `surface`: Minimap in surface mode + * `radar`: Minimap in radar mode + * `texture`: Texture to be displayed instead of terrain map + (texture is centered around 0,0 and can be scaled). + Texture size is limited to 512 x 512 pixel. + * `label`: Optional label to display on minimap mode toggle + The translation must be handled within the mod. + * `size`: Sidelength or diameter, in number of nodes, of the terrain + displayed in minimap + * `texture`: Only for texture type, name of the texture to display + * `scale`: Only for texture type, scale of the texture map in nodes per + pixel (for example a `scale` of 2 means each pixel represents a 2x2 + nodes square) + * `selected_mode` is the mode index to be selected after modes have been changed + (0 is the first mode). * `set_sky(parameters)` * `parameters` is a table with the following optional fields: * `base_color`: ColorSpec, changes fog in "skybox" and "plain". @@ -8047,7 +8077,8 @@ Used by `Player:hud_add`. Returned by `Player:hud_get`. { hud_elem_type = "image", -- See HUD element types - -- Type of element, can be "image", "text", "statbar", "inventory" or "compass" + -- Type of element, can be "image", "text", "statbar", "inventory", + -- "compass" or "minimap" position = {x=0.5, y=0.5}, -- Left corner position of element diff --git a/src/client/client.cpp b/src/client/client.cpp index d6e529c40..7fafe0da9 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -129,6 +129,7 @@ Client::Client( if (g_settings->getBool("enable_minimap")) { m_minimap = new Minimap(this); } + m_cache_save_interval = g_settings->getU16("server_map_save_interval"); } diff --git a/src/client/client.h b/src/client/client.h index 733634db1..8f4aac6e3 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -223,6 +223,7 @@ public: void handleCommand_CSMRestrictionFlags(NetworkPacket *pkt); void handleCommand_PlayerSpeed(NetworkPacket *pkt); void handleCommand_MediaPush(NetworkPacket *pkt); + void handleCommand_MinimapModes(NetworkPacket *pkt); void ProcessData(NetworkPacket *pkt); diff --git a/src/client/game.cpp b/src/client/game.cpp index 366464467..54e0c9f20 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -1416,11 +1416,9 @@ bool Game::createClient(const GameStartData &start_data) } mapper = client->getMinimap(); - if (mapper) { - mapper->setMinimapMode(MINIMAP_MODE_OFF); - if (client->modsLoaded()) - client->getScript()->on_minimap_ready(mapper); - } + + if (mapper && client->modsLoaded()) + client->getScript()->on_minimap_ready(mapper); return true; } @@ -2222,52 +2220,37 @@ void Game::toggleMinimap(bool shift_pressed) if (!mapper || !m_game_ui->m_flags.show_hud || !g_settings->getBool("enable_minimap")) return; - if (shift_pressed) { + if (shift_pressed) mapper->toggleMinimapShape(); - return; - } + else + mapper->nextMode(); + // TODO: When legacy minimap is deprecated, keep only HUD minimap stuff here + + // Not so satisying code to keep compatibility with old fixed mode system + // --> u32 hud_flags = client->getEnv().getLocalPlayer()->hud_flags; - MinimapMode mode = MINIMAP_MODE_OFF; - if (hud_flags & HUD_FLAG_MINIMAP_VISIBLE) { - mode = mapper->getMinimapMode(); - mode = (MinimapMode)((int)mode + 1); - // If radar is disabled and in, or switching to, radar mode - if (!(hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE) && mode > 3) - mode = MINIMAP_MODE_OFF; - } + if (!(hud_flags & HUD_FLAG_MINIMAP_VISIBLE)) { + m_game_ui->m_flags.show_minimap = false; + } else { - m_game_ui->m_flags.show_minimap = true; - switch (mode) { - case MINIMAP_MODE_SURFACEx1: - m_game_ui->showTranslatedStatusText("Minimap in surface mode, Zoom x1"); - break; - case MINIMAP_MODE_SURFACEx2: - m_game_ui->showTranslatedStatusText("Minimap in surface mode, Zoom x2"); - break; - case MINIMAP_MODE_SURFACEx4: - m_game_ui->showTranslatedStatusText("Minimap in surface mode, Zoom x4"); - break; - case MINIMAP_MODE_RADARx1: - m_game_ui->showTranslatedStatusText("Minimap in radar mode, Zoom x1"); - break; - case MINIMAP_MODE_RADARx2: - m_game_ui->showTranslatedStatusText("Minimap in radar mode, Zoom x2"); - break; - case MINIMAP_MODE_RADARx4: - m_game_ui->showTranslatedStatusText("Minimap in radar mode, Zoom x4"); - break; - default: - mode = MINIMAP_MODE_OFF; - m_game_ui->m_flags.show_minimap = false; - if (hud_flags & HUD_FLAG_MINIMAP_VISIBLE) - m_game_ui->showTranslatedStatusText("Minimap hidden"); - else - m_game_ui->showTranslatedStatusText("Minimap currently disabled by game or mod"); - } + // If radar is disabled, try to find a non radar mode or fall back to 0 + if (!(hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE)) + while (mapper->getModeIndex() && + mapper->getModeDef().type == MINIMAP_TYPE_RADAR) + mapper->nextMode(); - mapper->setMinimapMode(mode); + m_game_ui->m_flags.show_minimap = mapper->getModeDef().type != + MINIMAP_TYPE_OFF; + } + // <-- + // End of 'not so satifying code' + if ((hud_flags & HUD_FLAG_MINIMAP_VISIBLE) || + (hud && hud->hasElementOfType(HUD_ELEM_MINIMAP))) + m_game_ui->showStatusText(utf8_to_wide(mapper->getModeDef().label)); + else + m_game_ui->showTranslatedStatusText("Minimap currently disabled by game or mod"); } void Game::toggleFog() @@ -3954,7 +3937,7 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime, /* Update minimap pos and rotation */ - if (mapper && m_game_ui->m_flags.show_minimap && m_game_ui->m_flags.show_hud) { + if (mapper && m_game_ui->m_flags.show_hud) { mapper->setPos(floatToInt(player->getPosition(), BS)); mapper->setAngle(player->getYaw()); } diff --git a/src/client/hud.cpp b/src/client/hud.cpp index d3038230c..f6497fe25 100644 --- a/src/client/hud.cpp +++ b/src/client/hud.cpp @@ -36,6 +36,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mesh.h" #include "wieldmesh.h" #include "client/renderingengine.h" +#include "client/minimap.h" #ifdef HAVE_TOUCHSCREENGUI #include "gui/touchscreengui.h" @@ -297,6 +298,18 @@ void Hud::drawItems(v2s32 upperleftpos, v2s32 screen_offset, s32 itemcount, } } +bool Hud::hasElementOfType(HudElementType type) +{ + for (size_t i = 0; i != player->maxHudId(); i++) { + HudElement *e = player->getHud(i); + if (!e) + continue; + if (e->type == type) + return true; + } + return false; +} + // Calculates screen position of waypoint. Returns true if waypoint is visible (in front of the player), else false. bool Hud::calculateScreenPos(const v3s16 &camera_offset, HudElement *e, v2s32 *pos) { @@ -491,7 +504,22 @@ void Hud::drawLuaElements(const v3s16 &camera_offset) default: break; } - + break; } + case HUD_ELEM_MINIMAP: { + if (e->size.X <= 0 || e->size.Y <= 0) + break; + if (!client->getMinimap()) + break; + // Draw a minimap of size "size" + v2s32 dstsize(e->size.X * m_scale_factor, + e->size.Y * m_scale_factor); + // (no percent size as minimap would likely be anamorphosed) + v2s32 offset((e->align.X - 1.0) * dstsize.X / 2, + (e->align.Y - 1.0) * dstsize.Y / 2); + core::rect rect(0, 0, dstsize.X, dstsize.Y); + rect += pos + offset + v2s32(e->offset.X * m_scale_factor, + e->offset.Y * m_scale_factor); + client->getMinimap()->drawMinimap(rect); break; } default: infostream << "Hud::drawLuaElements: ignoring drawform " << e->type << diff --git a/src/client/hud.h b/src/client/hud.h index cf83cb16e..d46545d71 100644 --- a/src/client/hud.h +++ b/src/client/hud.h @@ -81,6 +81,8 @@ public: m_selected_face_normal = face_normal; } + bool hasElementOfType(HudElementType type); + void drawLuaElements(const v3s16 &camera_offset); private: diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index 2f96ca61f..b59679523 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -1044,7 +1044,7 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): m_use_tangent_vertices = data->m_use_tangent_vertices; m_enable_vbo = g_settings->getBool("enable_vbo"); - if (g_settings->getBool("enable_minimap")) { + if (data->m_client->getMinimap()) { m_minimap_mapblock = new MinimapMapblock; m_minimap_mapblock->getMinimapNodes( &data->m_vmanip, data->m_blockpos * MAP_BLOCKSIZE); diff --git a/src/client/minimap.cpp b/src/client/minimap.cpp index 68770ec19..6bae408b4 100644 --- a/src/client/minimap.cpp +++ b/src/client/minimap.cpp @@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "shader.h" #include "mapblock.h" #include "client/renderingengine.h" - +#include "gettext.h" //// //// MinimapUpdateThread @@ -108,8 +108,11 @@ void MinimapUpdateThread::doUpdate() } } - if (data->map_invalidated && data->mode != MINIMAP_MODE_OFF) { - getMap(data->pos, data->map_size, data->scan_height); + + if (data->map_invalidated && ( + data->mode.type == MINIMAP_TYPE_RADAR || + data->mode.type == MINIMAP_TYPE_SURFACE)) { + getMap(data->pos, data->mode.map_size, data->mode.scan_height); data->map_invalidated = false; } } @@ -181,19 +184,26 @@ Minimap::Minimap(Client *client) this->m_ndef = client->getNodeDefManager(); m_angle = 0.f; + m_current_mode_index = 0; // Initialize static settings m_enable_shaders = g_settings->getBool("enable_shaders"); m_surface_mode_scan_height = g_settings->getBool("minimap_double_scan_height") ? 256 : 128; + // Initialize minimap modes + addMode(MINIMAP_TYPE_OFF); + addMode(MINIMAP_TYPE_SURFACE, 256); + addMode(MINIMAP_TYPE_SURFACE, 128); + addMode(MINIMAP_TYPE_SURFACE, 64); + addMode(MINIMAP_TYPE_RADAR, 512); + addMode(MINIMAP_TYPE_RADAR, 256); + addMode(MINIMAP_TYPE_RADAR, 128); + // Initialize minimap data data = new MinimapData; - data->mode = MINIMAP_MODE_OFF; - data->is_radar = false; - data->map_invalidated = true; - data->texture = NULL; - data->heightmap_texture = NULL; + data->map_invalidated = true; + data->minimap_shape_round = g_settings->getBool("minimap_shape_round"); // Get round minimap textures @@ -215,6 +225,8 @@ Minimap::Minimap(Client *client) // Create object marker texture data->object_marker_red = m_tsrc->getTexture("object_marker_red.png"); + setModeIndex(0); + // Create mesh buffer for minimap m_meshbuffer = getMinimapMeshBuffer(); @@ -280,29 +292,101 @@ MinimapShape Minimap::getMinimapShape() return MINIMAP_SHAPE_SQUARE; } -void Minimap::setMinimapMode(MinimapMode mode) +void Minimap::setModeIndex(size_t index) { - static const MinimapModeDef modedefs[MINIMAP_MODE_COUNT] = { - {false, 0, 0}, - {false, m_surface_mode_scan_height, 256}, - {false, m_surface_mode_scan_height, 128}, - {false, m_surface_mode_scan_height, 64}, - {true, 32, 128}, - {true, 32, 64}, - {true, 32, 32} - }; - - if (mode >= MINIMAP_MODE_COUNT) - return; - MutexAutoLock lock(m_mutex); - data->is_radar = modedefs[mode].is_radar; - data->scan_height = modedefs[mode].scan_height; - data->map_size = modedefs[mode].map_size; - data->mode = mode; + if (index < m_modes.size()) { + data->mode = m_modes[index]; + m_current_mode_index = index; + } else { + data->mode = MinimapModeDef{MINIMAP_TYPE_OFF, N_("Minimap hidden"), 0, 0, ""}; + m_current_mode_index = 0; + } - m_minimap_update_thread->deferUpdate(); + data->map_invalidated = true; + + if (m_minimap_update_thread) + m_minimap_update_thread->deferUpdate(); +} + +void Minimap::addMode(MinimapModeDef mode) +{ + // Check validity + if (mode.type == MINIMAP_TYPE_TEXTURE) { + if (mode.texture.empty()) + return; + if (mode.scale < 1) + mode.scale = 1; + } + + int zoom = -1; + + // Build a default standard label + if (mode.label == "") { + switch (mode.type) { + case MINIMAP_TYPE_OFF: + mode.label = N_("Minimap hidden"); + break; + case MINIMAP_TYPE_SURFACE: + mode.label = N_("Minimap in surface mode, Zoom x%d"); + if (mode.map_size > 0) + zoom = 256 / mode.map_size; + break; + case MINIMAP_TYPE_RADAR: + mode.label = N_("Minimap in radar mode, Zoom x%d"); + if (mode.map_size > 0) + zoom = 512 / mode.map_size; + break; + case MINIMAP_TYPE_TEXTURE: + mode.label = N_("Minimap in texture mode"); + break; + default: + break; + } + } + + if (zoom >= 0) { + char label_buf[1024]; + porting::mt_snprintf(label_buf, sizeof(label_buf), + mode.label.c_str(), zoom); + mode.label = label_buf; + } + + m_modes.push_back(mode); +} + +void Minimap::addMode(MinimapType type, u16 size, std::string label, + std::string texture, u16 scale) +{ + MinimapModeDef mode; + mode.type = type; + mode.label = label; + mode.map_size = size; + mode.texture = texture; + mode.scale = scale; + switch (type) { + case MINIMAP_TYPE_SURFACE: + mode.scan_height = m_surface_mode_scan_height; + break; + case MINIMAP_TYPE_RADAR: + mode.scan_height = 32; + break; + default: + mode.scan_height = 0; + } + addMode(mode); +} + +void Minimap::nextMode() +{ + if (m_modes.empty()) + return; + m_current_mode_index++; + if (m_current_mode_index >= m_modes.size()) + m_current_mode_index = 0; + + setModeIndex(m_current_mode_index); } void Minimap::setPos(v3s16 pos) @@ -331,16 +415,16 @@ void Minimap::setAngle(f32 angle) void Minimap::blitMinimapPixelsToImageRadar(video::IImage *map_image) { video::SColor c(240, 0, 0, 0); - for (s16 x = 0; x < data->map_size; x++) - for (s16 z = 0; z < data->map_size; z++) { - MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->map_size]; + for (s16 x = 0; x < data->mode.map_size; x++) + for (s16 z = 0; z < data->mode.map_size; z++) { + MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->mode.map_size]; if (mmpixel->air_count > 0) c.setGreen(core::clamp(core::round32(32 + mmpixel->air_count * 8), 0, 255)); else c.setGreen(0); - map_image->setPixel(x, data->map_size - z - 1, c); + map_image->setPixel(x, data->mode.map_size - z - 1, c); } } @@ -349,9 +433,9 @@ void Minimap::blitMinimapPixelsToImageSurface( { // This variable creation/destruction has a 1% cost on rendering minimap video::SColor tilecolor; - for (s16 x = 0; x < data->map_size; x++) - for (s16 z = 0; z < data->map_size; z++) { - MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->map_size]; + for (s16 x = 0; x < data->mode.map_size; x++) + for (s16 z = 0; z < data->mode.map_size; z++) { + MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->mode.map_size]; const ContentFeatures &f = m_ndef->get(mmpixel->n); const TileDef *tile = &f.tiledef[0]; @@ -367,10 +451,10 @@ void Minimap::blitMinimapPixelsToImageSurface( tilecolor.setBlue(tilecolor.getBlue() * f.minimap_color.getBlue() / 255); tilecolor.setAlpha(240); - map_image->setPixel(x, data->map_size - z - 1, tilecolor); + map_image->setPixel(x, data->mode.map_size - z - 1, tilecolor); u32 h = mmpixel->height; - heightmap_image->setPixel(x,data->map_size - z - 1, + heightmap_image->setPixel(x,data->mode.map_size - z - 1, video::SColor(255, h, h, h)); } } @@ -378,21 +462,46 @@ void Minimap::blitMinimapPixelsToImageSurface( video::ITexture *Minimap::getMinimapTexture() { // update minimap textures when new scan is ready - if (data->map_invalidated) + if (data->map_invalidated && data->mode.type != MINIMAP_TYPE_TEXTURE) return data->texture; // create minimap and heightmap images in memory - core::dimension2d dim(data->map_size, data->map_size); + core::dimension2d dim(data->mode.map_size, data->mode.map_size); video::IImage *map_image = driver->createImage(video::ECF_A8R8G8B8, dim); video::IImage *heightmap_image = driver->createImage(video::ECF_A8R8G8B8, dim); video::IImage *minimap_image = driver->createImage(video::ECF_A8R8G8B8, core::dimension2d(MINIMAP_MAX_SX, MINIMAP_MAX_SY)); // Blit MinimapPixels to images - if (data->is_radar) - blitMinimapPixelsToImageRadar(map_image); - else + switch(data->mode.type) { + case MINIMAP_TYPE_OFF: + break; + case MINIMAP_TYPE_SURFACE: blitMinimapPixelsToImageSurface(map_image, heightmap_image); + break; + case MINIMAP_TYPE_RADAR: + blitMinimapPixelsToImageRadar(map_image); + break; + case MINIMAP_TYPE_TEXTURE: + // Want to use texture source, to : 1 find texture, 2 cache it + video::ITexture* texture = m_tsrc->getTexture(data->mode.texture); + video::IImage* image = driver->createImageFromData( + texture->getColorFormat(), texture->getSize(), texture->lock(), true, false); + texture->unlock(); + + auto dim = image->getDimension(); + + map_image->fill(video::SColor(255, 0, 0, 0)); + + image->copyTo(map_image, + irr::core::vector2d { + ((data->mode.map_size - (static_cast(dim.Width))) >> 1) + - data->pos.X / data->mode.scale, + ((data->mode.map_size - (static_cast(dim.Height))) >> 1) + + data->pos.Z / data->mode.scale + }); + image->drop(); + } map_image->copyToScaling(minimap_image); map_image->drop(); @@ -461,21 +570,31 @@ scene::SMeshBuffer *Minimap::getMinimapMeshBuffer() void Minimap::drawMinimap() { + // Non hud managed minimap drawing (legacy minimap) + v2u32 screensize = RenderingEngine::get_instance()->getWindowSize(); + const u32 size = 0.25 * screensize.Y; + + drawMinimap(core::rect( + screensize.X - size - 10, 10, + screensize.X - 10, size + 10)); +} + +void Minimap::drawMinimap(core::rect rect) { + video::ITexture *minimap_texture = getMinimapTexture(); if (!minimap_texture) return; + if (data->mode.type == MINIMAP_TYPE_OFF) + return; + updateActiveMarkers(); - v2u32 screensize = RenderingEngine::get_instance()->getWindowSize(); - const u32 size = 0.25 * screensize.Y; core::rect oldViewPort = driver->getViewPort(); core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION); core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW); - driver->setViewPort(core::rect( - screensize.X - size - 10, 10, - screensize.X - 10, size + 10)); + driver->setViewPort(rect); driver->setTransform(video::ETS_PROJECTION, core::matrix4()); driver->setTransform(video::ETS_VIEW, core::matrix4()); @@ -488,7 +607,7 @@ void Minimap::drawMinimap() material.TextureLayer[0].Texture = minimap_texture; material.TextureLayer[1].Texture = data->heightmap_texture; - if (m_enable_shaders && !data->is_radar) { + if (m_enable_shaders && data->mode.type == MINIMAP_TYPE_SURFACE) { u16 sid = m_shdrsrc->getShader("minimap_shader", 1, 1); material.MaterialType = m_shdrsrc->getShaderInfo(sid).material; } else { @@ -529,14 +648,14 @@ void Minimap::drawMinimap() driver->setViewPort(oldViewPort); // Draw player markers - v2s32 s_pos(screensize.X - size - 10, 10); + v2s32 s_pos(rect.UpperLeftCorner.X, rect.UpperLeftCorner.Y); core::dimension2di imgsize(data->object_marker_red->getOriginalSize()); core::rect img_rect(0, 0, imgsize.Width, imgsize.Height); static const video::SColor col(255, 255, 255, 255); static const video::SColor c[4] = {col, col, col, col}; f32 sin_angle = std::sin(m_angle * core::DEGTORAD); f32 cos_angle = std::cos(m_angle * core::DEGTORAD); - s32 marker_size2 = 0.025 * (float)size; + s32 marker_size2 = 0.025 * (float)rect.getWidth();; for (std::list::const_iterator i = m_active_markers.begin(); i != m_active_markers.end(); ++i) { @@ -547,8 +666,8 @@ void Minimap::drawMinimap() posf.X = t1; posf.Y = t2; } - posf.X = (posf.X + 0.5) * (float)size; - posf.Y = (posf.Y + 0.5) * (float)size; + posf.X = (posf.X + 0.5) * (float)rect.getWidth(); + posf.Y = (posf.Y + 0.5) * (float)rect.getHeight(); core::rect dest_rect( s_pos.X + posf.X - marker_size2, s_pos.Y + posf.Y - marker_size2, @@ -571,16 +690,16 @@ void Minimap::updateActiveMarkers() for (Nametag *nametag : nametags) { v3s16 pos = floatToInt(nametag->parent_node->getAbsolutePosition() + intToFloat(client->getCamera()->getOffset(), BS), BS); - pos -= data->pos - v3s16(data->map_size / 2, - data->scan_height / 2, - data->map_size / 2); - if (pos.X < 0 || pos.X > data->map_size || - pos.Y < 0 || pos.Y > data->scan_height || - pos.Z < 0 || pos.Z > data->map_size) { + pos -= data->pos - v3s16(data->mode.map_size / 2, + data->mode.scan_height / 2, + data->mode.map_size / 2); + if (pos.X < 0 || pos.X > data->mode.map_size || + pos.Y < 0 || pos.Y > data->mode.scan_height || + pos.Z < 0 || pos.Z > data->mode.map_size) { continue; } - pos.X = ((float)pos.X / data->map_size) * MINIMAP_MAX_SX; - pos.Z = ((float)pos.Z / data->map_size) * MINIMAP_MAX_SY; + pos.X = ((float)pos.X / data->mode.map_size) * MINIMAP_MAX_SX; + pos.Z = ((float)pos.Z / data->mode.map_size) * MINIMAP_MAX_SY; const video::SColor &mask_col = minimap_mask->getPixel(pos.X, pos.Z); if (!mask_col.getAlpha()) { continue; diff --git a/src/client/minimap.h b/src/client/minimap.h index 258d5330d..11374b116 100644 --- a/src/client/minimap.h +++ b/src/client/minimap.h @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include "../hud.h" #include "irrlichttypes_extrabloated.h" #include "util/thread.h" #include "voxel.h" @@ -33,26 +34,18 @@ class IShaderSource; #define MINIMAP_MAX_SX 512 #define MINIMAP_MAX_SY 512 -enum MinimapMode { - MINIMAP_MODE_OFF, - MINIMAP_MODE_SURFACEx1, - MINIMAP_MODE_SURFACEx2, - MINIMAP_MODE_SURFACEx4, - MINIMAP_MODE_RADARx1, - MINIMAP_MODE_RADARx2, - MINIMAP_MODE_RADARx4, - MINIMAP_MODE_COUNT, -}; - enum MinimapShape { MINIMAP_SHAPE_SQUARE, MINIMAP_SHAPE_ROUND, }; struct MinimapModeDef { - bool is_radar; + MinimapType type; + std::string label; u16 scan_height; u16 map_size; + std::string texture; + u16 scale; }; struct MinimapPixel { @@ -69,12 +62,9 @@ struct MinimapMapblock { }; struct MinimapData { - bool is_radar; - MinimapMode mode; + MinimapModeDef mode; v3s16 pos; v3s16 old_pos; - u16 scan_height; - u16 map_size; MinimapPixel minimap_scan[MINIMAP_MAX_SX * MINIMAP_MAX_SY]; bool map_invalidated; bool minimap_shape_round; @@ -127,12 +117,22 @@ public: v3s16 getPos() const { return data->pos; } void setAngle(f32 angle); f32 getAngle() const { return m_angle; } - void setMinimapMode(MinimapMode mode); - MinimapMode getMinimapMode() const { return data->mode; } void toggleMinimapShape(); void setMinimapShape(MinimapShape shape); MinimapShape getMinimapShape(); + void clearModes() { m_modes.clear(); }; + void addMode(MinimapModeDef mode); + void addMode(MinimapType type, u16 size = 0, std::string label = "", + std::string texture = "", u16 scale = 1); + + void setModeIndex(size_t index); + size_t getModeIndex() const { return m_current_mode_index; }; + size_t getMaxModeIndex() const { return m_modes.size() - 1; }; + void nextMode(); + + void setModesFromString(std::string modes_string); + MinimapModeDef getModeDef() const { return data->mode; } video::ITexture *getMinimapTexture(); @@ -144,6 +144,7 @@ public: void updateActiveMarkers(); void drawMinimap(); + void drawMinimap(core::rect rect); video::IVideoDriver *driver; Client* client; @@ -153,9 +154,11 @@ private: ITextureSource *m_tsrc; IShaderSource *m_shdrsrc; const NodeDefManager *m_ndef; - MinimapUpdateThread *m_minimap_update_thread; + MinimapUpdateThread *m_minimap_update_thread = nullptr; scene::SMeshBuffer *m_meshbuffer; bool m_enable_shaders; + std::vector m_modes; + size_t m_current_mode_index; u16 m_surface_mode_scan_height; f32 m_angle; std::mutex m_mutex; diff --git a/src/hud.cpp b/src/hud.cpp index 175701342..1791e04df 100644 --- a/src/hud.cpp +++ b/src/hud.cpp @@ -29,6 +29,7 @@ const struct EnumString es_HudElementType[] = {HUD_ELEM_WAYPOINT, "waypoint"}, {HUD_ELEM_IMAGE_WAYPOINT, "image_waypoint"}, {HUD_ELEM_COMPASS, "compass"}, + {HUD_ELEM_MINIMAP, "minimap"}, {0, NULL}, }; diff --git a/src/hud.h b/src/hud.h index 0a6993c1b..a0613ae98 100644 --- a/src/hud.h +++ b/src/hud.h @@ -51,7 +51,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #define HUD_HOTBAR_ITEMCOUNT_DEFAULT 8 #define HUD_HOTBAR_ITEMCOUNT_MAX 32 - #define HOTBAR_IMAGE_SIZE 48 enum HudElementType { @@ -61,7 +60,8 @@ enum HudElementType { HUD_ELEM_INVENTORY = 3, HUD_ELEM_WAYPOINT = 4, HUD_ELEM_IMAGE_WAYPOINT = 5, - HUD_ELEM_COMPASS = 6 + HUD_ELEM_COMPASS = 6, + HUD_ELEM_MINIMAP = 7 }; enum HudElementStat { @@ -108,3 +108,12 @@ extern const EnumString es_HudElementType[]; extern const EnumString es_HudElementStat[]; extern const EnumString es_HudBuiltinElement[]; +// Minimap stuff + +enum MinimapType { + MINIMAP_TYPE_OFF, + MINIMAP_TYPE_SURFACE, + MINIMAP_TYPE_RADAR, + MINIMAP_TYPE_TEXTURE, +}; + diff --git a/src/network/clientopcodes.cpp b/src/network/clientopcodes.cpp index f812a08a1..55cfdd4dc 100644 --- a/src/network/clientopcodes.cpp +++ b/src/network/clientopcodes.cpp @@ -122,6 +122,7 @@ const ToClientCommandHandler toClientCommandTable[TOCLIENT_NUM_MSG_TYPES] = null_command_handler, { "TOCLIENT_SRP_BYTES_S_B", TOCLIENT_STATE_NOT_CONNECTED, &Client::handleCommand_SrpBytesSandB }, // 0x60 { "TOCLIENT_FORMSPEC_PREPEND", TOCLIENT_STATE_CONNECTED, &Client::handleCommand_FormspecPrepend }, // 0x61, + { "TOCLIENT_MINIMAP_MODES", TOCLIENT_STATE_CONNECTED, &Client::handleCommand_MinimapModes }, // 0x62, }; const static ServerCommandFactory null_command_factory = { "TOSERVER_NULL", 0, false }; diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index 5683564a0..65db02300 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -1164,15 +1164,24 @@ void Client::handleCommand_HudSetFlags(NetworkPacket* pkt) m_minimap_disabled_by_server = !(player->hud_flags & HUD_FLAG_MINIMAP_VISIBLE); bool m_minimap_radar_disabled_by_server = !(player->hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE); + // Not so satisying code to keep compatibility with old fixed mode system + // --> + // Hide minimap if it has been disabled by the server if (m_minimap && m_minimap_disabled_by_server && was_minimap_visible) // defers a minimap update, therefore only call it if really // needed, by checking that minimap was visible before - m_minimap->setMinimapMode(MINIMAP_MODE_OFF); + m_minimap->setModeIndex(0); - // Switch to surface mode if radar disabled by server - if (m_minimap && m_minimap_radar_disabled_by_server && was_minimap_radar_visible) - m_minimap->setMinimapMode(MINIMAP_MODE_SURFACEx1); + // If radar has been disabled, try to find a non radar mode or fall back to 0 + if (m_minimap && m_minimap_radar_disabled_by_server + && was_minimap_radar_visible) { + while (m_minimap->getModeIndex() > 0 && + m_minimap->getModeDef().type == MINIMAP_TYPE_RADAR) + m_minimap->nextMode(); + } + // <-- + // End of 'not so satifying code' } void Client::handleCommand_HudSetParam(NetworkPacket* pkt) @@ -1611,3 +1620,30 @@ void Client::handleCommand_ModChannelSignal(NetworkPacket *pkt) if (valid_signal) m_script->on_modchannel_signal(channel, signal); } + +void Client::handleCommand_MinimapModes(NetworkPacket *pkt) +{ + u16 count; // modes + u16 mode; // wanted current mode index after change + + *pkt >> count >> mode; + + if (m_minimap) + m_minimap->clearModes(); + + for (size_t index = 0; index < count; index++) { + u16 type; + std::string label; + u16 size; + std::string texture; + u16 scale; + + *pkt >> type >> label >> size >> texture >> scale; + + if (m_minimap) + m_minimap->addMode(MinimapType(type), size, label, texture, scale); + } + + if (m_minimap) + m_minimap->setModeIndex(mode); +} diff --git a/src/network/networkprotocol.h b/src/network/networkprotocol.h index 05600cda9..666e75e45 100644 --- a/src/network/networkprotocol.h +++ b/src/network/networkprotocol.h @@ -204,6 +204,7 @@ with this program; if not, write to the Free Software Foundation, Inc., PROTOCOL VERSION 39: Updated set_sky packet Adds new sun, moon and stars packets + Minimap modes */ #define LATEST_PROTOCOL_VERSION 39 @@ -764,7 +765,18 @@ enum ToClientCommand u8[len] formspec */ - TOCLIENT_NUM_MSG_TYPES = 0x62, + TOCLIENT_MINIMAP_MODES = 0x62, + /* + u16 count // modes + u16 mode // wanted current mode index after change + for each mode + u16 type + std::string label + u16 size + std::string extra + */ + + TOCLIENT_NUM_MSG_TYPES = 0x63, }; enum ToServerCommand diff --git a/src/network/serveropcodes.cpp b/src/network/serveropcodes.cpp index 2fc3197c2..aea5d7174 100644 --- a/src/network/serveropcodes.cpp +++ b/src/network/serveropcodes.cpp @@ -221,4 +221,5 @@ const ClientCommandFactory clientCommandFactoryTable[TOCLIENT_NUM_MSG_TYPES] = null_command_factory, // 0x5f { "TOSERVER_SRP_BYTES_S_B", 0, true }, // 0x60 { "TOCLIENT_FORMSPEC_PREPEND", 0, true }, // 0x61 + { "TOCLIENT_MINIMAP_MODES", 0, true }, // 0x62 }; diff --git a/src/script/lua_api/l_minimap.cpp b/src/script/lua_api/l_minimap.cpp index 5fba76eb8..3bbb6e5e3 100644 --- a/src/script/lua_api/l_minimap.cpp +++ b/src/script/lua_api/l_minimap.cpp @@ -89,7 +89,7 @@ int LuaMinimap::l_get_mode(lua_State *L) LuaMinimap *ref = checkobject(L, 1); Minimap *m = getobject(ref); - lua_pushinteger(L, m->getMinimapMode()); + lua_pushinteger(L, m->getModeIndex()); return 1; } @@ -98,13 +98,11 @@ int LuaMinimap::l_set_mode(lua_State *L) LuaMinimap *ref = checkobject(L, 1); Minimap *m = getobject(ref); - s32 mode = lua_tointeger(L, 2); - if (mode < MINIMAP_MODE_OFF || - mode >= MINIMAP_MODE_COUNT) { + u32 mode = lua_tointeger(L, 2); + if (mode >= m->getMaxModeIndex()) return 0; - } - m->setMinimapMode((MinimapMode) mode); + m->setModeIndex(mode); return 1; } @@ -140,8 +138,11 @@ int LuaMinimap::l_show(lua_State *L) LuaMinimap *ref = checkobject(L, 1); Minimap *m = getobject(ref); - if (m->getMinimapMode() == MINIMAP_MODE_OFF) - m->setMinimapMode(MINIMAP_MODE_SURFACEx1); + // This is not very adapted to new minimap mode management. Btw, tried + // to do something compatible. + + if (m->getModeIndex() == 0 && m->getMaxModeIndex() > 0) + m->setModeIndex(1); client->showMinimap(true); return 1; @@ -155,8 +156,11 @@ int LuaMinimap::l_hide(lua_State *L) LuaMinimap *ref = checkobject(L, 1); Minimap *m = getobject(ref); - if (m->getMinimapMode() != MINIMAP_MODE_OFF) - m->setMinimapMode(MINIMAP_MODE_OFF); + // This is not very adapted to new minimap mode management. Btw, tried + // to do something compatible. + + if (m->getModeIndex() != 0) + m->setModeIndex(0); client->showMinimap(false); return 1; diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index fead4e849..57ed7e2cd 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -2199,6 +2199,67 @@ int ObjectRef::l_get_day_night_ratio(lua_State *L) return 1; } +// set_minimap_modes(self, modes, modeindex) +int ObjectRef::l_set_minimap_modes(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + + // Arg 1 should be a player + ObjectRef *ref = checkobject(L, 1); + RemotePlayer *player = getplayer(ref); + if (player == NULL) + return 0; + + // Arg 2 should be a table (of tables) + if (!lua_istable(L, 2)) { + return 0; + } + + // Arg 3 should be a number + s16 wantedmode = lua_tonumber(L, 3); + + std::vector modes; + + lua_pushnil(L); + while (lua_next(L, 2) != 0) { + /* key is at index -2, value is at index -1 */ + if (lua_istable(L, -1)) { + bool ok = true; + MinimapMode mode; + std::string type = getstringfield_default(L, -1, "type", ""); + if (type == "off") + mode.type = MINIMAP_TYPE_OFF; + else if (type == "surface") + mode.type = MINIMAP_TYPE_SURFACE; + else if (type == "radar") + mode.type = MINIMAP_TYPE_RADAR; + else if (type == "texture") { + mode.type = MINIMAP_TYPE_TEXTURE; + mode.texture = getstringfield_default(L, -1, "texture", ""); + mode.scale = getintfield_default(L, -1, "scale", 1); + } else { + warningstream << "Minimap mode of unknown type \"" << type.c_str() + << "\" ignored.\n" << std::endl; + ok = false; + } + + if (ok) { + mode.label = getstringfield_default(L, -1, "label", ""); + // Size is limited to 512. Performance gets poor if size too large, and + // segfaults have been experienced. + mode.size = rangelim(getintfield_default(L, -1, "size", 0), 1, 512); + modes.push_back(mode); + } + } + /* removes 'value'; keeps 'key' for next iteration */ + lua_pop(L, 1); + } + lua_pop(L, 1); // Remove key + + getServer(L)->SendMinimapModes(player->getPeerId(), modes, wantedmode); + return 0; +} + ObjectRef::ObjectRef(ServerActiveObject *object): m_object(object) { @@ -2359,5 +2420,6 @@ luaL_Reg ObjectRef::methods[] = { luamethod(ObjectRef, set_eye_offset), luamethod(ObjectRef, get_eye_offset), luamethod(ObjectRef, send_mapblock), + luamethod(ObjectRef, set_minimap_modes), {0,0} }; diff --git a/src/script/lua_api/l_object.h b/src/script/lua_api/l_object.h index 126719b1f..ca03dfa2e 100644 --- a/src/script/lua_api/l_object.h +++ b/src/script/lua_api/l_object.h @@ -377,4 +377,7 @@ private: // send_mapblock(pos) static int l_send_mapblock(lua_State *L); + + // set_minimap_modes(self, modes, wanted_mode) + static int l_set_minimap_modes(lua_State *L); }; diff --git a/src/server.cpp b/src/server.cpp index 982f904f4..8f6257afe 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2662,6 +2662,23 @@ void Server::sendRequestedMedia(session_t peer_id, } } +void Server::SendMinimapModes(session_t peer_id, + std::vector &modes, size_t wanted_mode) +{ + RemotePlayer *player = m_env->getPlayer(peer_id); + assert(player); + if (player->getPeerId() == PEER_ID_INEXISTENT) + return; + + NetworkPacket pkt(TOCLIENT_MINIMAP_MODES, 0, peer_id); + pkt << (u16)modes.size() << (u16)wanted_mode; + + for (auto &mode : modes) + pkt << (u16)mode.type << mode.label << mode.size << mode.texture << mode.scale; + + Send(&pkt); +} + void Server::sendDetachedInventory(Inventory *inventory, const std::string &name, session_t peer_id) { NetworkPacket pkt(TOCLIENT_DETACHED_INVENTORY, 0, peer_id); diff --git a/src/server.h b/src/server.h index 258d75eaf..4b3ac5cf7 100644 --- a/src/server.h +++ b/src/server.h @@ -118,6 +118,14 @@ struct ServerPlayingSound std::unordered_set clients; // peer ids }; +struct MinimapMode { + MinimapType type = MINIMAP_TYPE_OFF; + std::string label; + u16 size = 0; + std::string texture; + u16 scale = 1; +}; + class Server : public con::PeerHandler, public MapEventReceiver, public IGameDef { @@ -331,6 +339,10 @@ public: void SendPlayerSpeed(session_t peer_id, const v3f &added_vel); void SendPlayerFov(session_t peer_id); + void SendMinimapModes(session_t peer_id, + std::vector &modes, + size_t wanted_mode); + void sendDetachedInventories(session_t peer_id, bool incremental); virtual bool registerModStorage(ModMetadata *storage); From f46509d5e2c681b6da2abdeb27779be3c36a6916 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Mon, 5 Oct 2020 09:07:33 +0200 Subject: [PATCH 216/624] Remove unused functions reported by cppcheck (#10463) Run unused functions reported by cppcheck This change removes a few (but not all) unused functions. Some unused helper functions were not removed due to their complexity and potential of future use. --- src/chat.cpp | 15 ++--- src/chat.h | 2 - src/client/client.cpp | 5 -- src/client/client.h | 1 - src/client/clientenvironment.cpp | 15 ----- src/client/clientmap.cpp | 2 +- src/client/mapblock_mesh.cpp | 27 --------- src/client/mapblock_mesh.h | 5 -- src/content/CMakeLists.txt | 1 - src/content/packages.cpp | 69 ---------------------- src/content/packages.h | 52 ---------------- src/gui/guiChatConsole.cpp | 5 -- src/gui/guiChatConsole.h | 4 -- src/log.cpp | 11 +--- src/log.h | 10 ---- src/map.cpp | 63 +------------------- src/map.h | 21 +------ src/mapgen/mapgen.cpp | 33 ----------- src/mapgen/mapgen.h | 7 +-- src/mapgen/mapgen_v6.cpp | 6 -- src/mapgen/mapgen_v6.h | 1 - src/mapgen/treegen.cpp | 13 ---- src/mapgen/treegen.h | 2 - src/network/networkpacket.cpp | 7 --- src/network/networkpacket.h | 1 - src/script/common/c_converter.cpp | 45 -------------- src/script/common/c_converter.h | 2 - src/script/lua_api/l_mainmenu.cpp | 1 - src/unittest/test_map_settings_manager.cpp | 28 +-------- 29 files changed, 14 insertions(+), 440 deletions(-) delete mode 100644 src/content/packages.cpp delete mode 100644 src/content/packages.h diff --git a/src/chat.cpp b/src/chat.cpp index c3ed59804..2f65e68b3 100644 --- a/src/chat.cpp +++ b/src/chat.cpp @@ -123,16 +123,16 @@ void ChatBuffer::deleteByAge(f32 maxAge) deleteOldest(count); } -u32 ChatBuffer::getColumns() const -{ - return m_cols; -} - u32 ChatBuffer::getRows() const { return m_rows; } +void ChatBuffer::scrollTop() +{ + m_scroll = getTopScrollPos(); +} + void ChatBuffer::reformat(u32 cols, u32 rows) { if (cols == 0 || rows == 0) @@ -220,11 +220,6 @@ void ChatBuffer::scrollBottom() m_scroll = getBottomScrollPos(); } -void ChatBuffer::scrollTop() -{ - m_scroll = getTopScrollPos(); -} - u32 ChatBuffer::formatChatLine(const ChatLine& line, u32 cols, std::vector& destination) const { diff --git a/src/chat.h b/src/chat.h index f84ece206..0b98e4d3c 100644 --- a/src/chat.h +++ b/src/chat.h @@ -94,8 +94,6 @@ public: // Delete lines older than maxAge. void deleteByAge(f32 maxAge); - // Get number of columns, 0 if reformat has not been called yet. - u32 getColumns() const; // Get number of rows, 0 if reformat has not been called yet. u32 getRows() const; // Update console size and reformat all formatted lines. diff --git a/src/client/client.cpp b/src/client/client.cpp index 7fafe0da9..0bd98b256 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -1665,11 +1665,6 @@ ClientEvent *Client::getClientEvent() return event; } -bool Client::connectedToServer() -{ - return m_con->Connected(); -} - const Address Client::getServerAddress() { return m_con->GetPeerAddress(PEER_ID_SERVER); diff --git a/src/client/client.h b/src/client/client.h index 8f4aac6e3..bffdc7ec6 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -338,7 +338,6 @@ public: u16 getProtoVersion() { return m_proto_ver; } - bool connectedToServer(); void confirmRegistration(); bool m_is_registration_confirmation_state = false; bool m_simple_singleplayer_mode; diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp index 0b7e92325..f831978a8 100644 --- a/src/client/clientenvironment.cpp +++ b/src/client/clientenvironment.cpp @@ -368,21 +368,6 @@ bool isFreeClientActiveObjectId(const u16 id, } -u16 getFreeClientActiveObjectId(ClientActiveObjectMap &objects) -{ - // try to reuse id's as late as possible - static u16 last_used_id = 0; - u16 startid = last_used_id; - for(;;) { - last_used_id ++; - if (isFreeClientActiveObjectId(last_used_id, objects)) - return last_used_id; - - if (last_used_id == startid) - return 0; - } -} - u16 ClientEnvironment::addActiveObject(ClientActiveObject *object) { // Register object. If failed return zero id diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index 3e4ab2e94..3124313e7 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -36,7 +36,7 @@ ClientMap::ClientMap( MapDrawControl &control, s32 id ): - Map(dout_client, client), + Map(client), scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), RenderingEngine::get_scene_manager(), id), m_client(client), diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index b59679523..f9332e399 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -81,33 +81,6 @@ void MeshMakeData::fill(MapBlock *block) } } -void MeshMakeData::fillSingleNode(MapNode *node) -{ - m_blockpos = v3s16(0,0,0); - - v3s16 blockpos_nodes = v3s16(0,0,0); - VoxelArea area(blockpos_nodes-v3s16(1,1,1)*MAP_BLOCKSIZE, - blockpos_nodes+v3s16(1,1,1)*MAP_BLOCKSIZE*2-v3s16(1,1,1)); - s32 volume = area.getVolume(); - s32 our_node_index = area.index(1,1,1); - - // Allocate this block + neighbors - m_vmanip.clear(); - m_vmanip.addArea(area); - - // Fill in data - MapNode *data = new MapNode[volume]; - for(s32 i = 0; i < volume; i++) - { - if (i == our_node_index) - data[i] = *node; - else - data[i] = MapNode(CONTENT_AIR, LIGHT_MAX, 0); - } - m_vmanip.copyFrom(data, area, area.MinEdge, area.MinEdge, area.getExtent()); - delete[] data; -} - void MeshMakeData::setCrack(int crack_level, v3s16 crack_pos) { if (crack_level >= 0) diff --git a/src/client/mapblock_mesh.h b/src/client/mapblock_mesh.h index 6af23a656..f8aed40dc 100644 --- a/src/client/mapblock_mesh.h +++ b/src/client/mapblock_mesh.h @@ -62,11 +62,6 @@ struct MeshMakeData */ void fill(MapBlock *block); - /* - Set up with only a single node at (1,1,1) - */ - void fillSingleNode(MapNode *node); - /* Set the (node) position of a crack */ diff --git a/src/content/CMakeLists.txt b/src/content/CMakeLists.txt index 5adcf6b1e..6dd049418 100644 --- a/src/content/CMakeLists.txt +++ b/src/content/CMakeLists.txt @@ -1,6 +1,5 @@ set(content_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/content.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/packages.cpp ${CMAKE_CURRENT_SOURCE_DIR}/mods.cpp ${CMAKE_CURRENT_SOURCE_DIR}/subgames.cpp PARENT_SCOPE diff --git a/src/content/packages.cpp b/src/content/packages.cpp deleted file mode 100644 index 2d488eb76..000000000 --- a/src/content/packages.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* -Minetest -Copyright (C) 2018 rubenwardy - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -#include "content/packages.h" -#include "log.h" -#include "filesys.h" -#include "porting.h" -#include "settings.h" -#include "content/mods.h" -#include "content/subgames.h" - -std::string Package::getDownloadURL(const std::string &baseURL) const -{ - return baseURL + "/packages/" + author + "/" + name + "/releases/" + - std::to_string(release) + "/download/"; -} - -#if USE_CURL -std::vector getPackagesFromURL(const std::string &url) -{ - std::vector extra_headers; - extra_headers.emplace_back("Accept: application/json"); - - Json::Value json = fetchJsonValue(url, &extra_headers); - if (!json.isArray()) { - errorstream << "Invalid JSON download " << std::endl; - return std::vector(); - } - - std::vector packages; - - // Note: `unsigned int` is required to index JSON - for (unsigned int i = 0; i < json.size(); ++i) { - Package package; - - package.author = json[i]["author"].asString(); - package.name = json[i]["name"].asString(); - package.title = json[i]["title"].asString(); - package.type = json[i]["type"].asString(); - package.shortDesc = json[i]["shortDesc"].asString(); - package.release = json[i]["release"].asInt(); - if (json[i].isMember("thumbnail")) - package.thumbnail = json[i]["thumbnail"].asString(); - - if (package.valid()) - packages.push_back(package); - else - errorstream << "Invalid package at " << i << std::endl; - } - - return packages; -} -#endif diff --git a/src/content/packages.h b/src/content/packages.h deleted file mode 100644 index 9029475ef..000000000 --- a/src/content/packages.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -Minetest -Copyright (C) 2018 rubenwardy - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -#pragma once -#include "config.h" -#include "convert_json.h" -#include "irrlichttypes.h" - -struct Package -{ - std::string author; - std::string name; // Technical name - std::string title; - std::string type; // One of "mod", "game", or "txp" - - std::string shortDesc; - u32 release; - std::string thumbnail; - - bool valid() const - { - return !(author.empty() || name.empty() || title.empty() || - type.empty() || release <= 0); - } - - std::string getDownloadURL(const std::string &baseURL) const; -}; - -#if USE_CURL -std::vector getPackagesFromURL(const std::string &url); -#else -inline std::vector getPackagesFromURL(const std::string &url) -{ - return std::vector(); -} -#endif diff --git a/src/gui/guiChatConsole.cpp b/src/gui/guiChatConsole.cpp index 575c6ab25..ef471106d 100644 --- a/src/gui/guiChatConsole.cpp +++ b/src/gui/guiChatConsole.cpp @@ -136,11 +136,6 @@ void GUIChatConsole::closeConsoleAtOnce() recalculateConsolePosition(); } -f32 GUIChatConsole::getDesiredHeight() const -{ - return m_desired_height_fraction; -} - void GUIChatConsole::replaceAndAddToHistory(const std::wstring &line) { ChatPrompt& prompt = m_chat_backend->getPrompt(); diff --git a/src/gui/guiChatConsole.h b/src/gui/guiChatConsole.h index 7be40e27c..204f9f9cc 100644 --- a/src/gui/guiChatConsole.h +++ b/src/gui/guiChatConsole.h @@ -55,10 +55,6 @@ public: // Set whether to close the console after the user presses enter. void setCloseOnEnter(bool close) { m_close_on_enter = close; } - // Return the desired height (fraction of screen size) - // Zero if the console is closed or getting closed - f32 getDesiredHeight() const; - // Replace actual line when adding the actual to the history (if there is any) void replaceAndAddToHistory(const std::wstring &line); diff --git a/src/log.cpp b/src/log.cpp index 54442c39b..3c61414e9 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -97,16 +97,7 @@ LogBuffer verbose_buf(g_logger, LL_VERBOSE); std::ostream *dout_con_ptr = &null_stream; std::ostream *derr_con_ptr = &verbosestream; -// Server -std::ostream *dout_server_ptr = &infostream; -std::ostream *derr_server_ptr = &errorstream; - -#ifndef SERVER -// Client -std::ostream *dout_client_ptr = &infostream; -std::ostream *derr_client_ptr = &errorstream; -#endif - +// Common streams std::ostream rawstream(&raw_buf); std::ostream dstream(&none_buf); std::ostream errorstream(&error_buf); diff --git a/src/log.h b/src/log.h index 856d3479b..6ed6b1fb7 100644 --- a/src/log.h +++ b/src/log.h @@ -192,14 +192,8 @@ extern std::ostream null_stream; extern std::ostream *dout_con_ptr; extern std::ostream *derr_con_ptr; -extern std::ostream *dout_server_ptr; extern std::ostream *derr_server_ptr; -#ifndef SERVER -extern std::ostream *dout_client_ptr; -extern std::ostream *derr_client_ptr; -#endif - extern Logger g_logger; // Writes directly to all LL_NONE log outputs for g_logger with no prefix. @@ -222,8 +216,4 @@ extern std::ostream dstream; #define dout_con (*dout_con_ptr) #define derr_con (*derr_con_ptr) -#define dout_server (*dout_server_ptr) -#ifndef SERVER - #define dout_client (*dout_client_ptr) -#endif diff --git a/src/map.cpp b/src/map.cpp index b9ab7c066..ef7eddb39 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -62,8 +62,7 @@ with this program; if not, write to the Free Software Foundation, Inc., Map */ -Map::Map(std::ostream &dout, IGameDef *gamedef): - m_dout(dout), +Map::Map(IGameDef *gamedef): m_gamedef(gamedef), m_nodedef(gamedef->ndef()) { @@ -1201,7 +1200,7 @@ bool Map::isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes) */ ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef, EmergeManager *emerge, MetricsBackend *mb): - Map(dout_server, gamedef), + Map(gamedef), settings_mgr(g_settings, savedir + DIR_DELIM + "map_meta.txt"), m_emerge(emerge) { @@ -1327,11 +1326,6 @@ u64 ServerMap::getSeed() return getMapgenParams()->seed; } -s16 ServerMap::getWaterLevel() -{ - return getMapgenParams()->water_level; -} - bool ServerMap::blockpos_over_mapgen_limit(v3s16 p) { const s16 mapgen_limit_bp = rangelim( @@ -1732,59 +1726,6 @@ void ServerMap::updateVManip(v3s16 pos) vm->m_is_dirty = true; } -s16 ServerMap::findGroundLevel(v2s16 p2d) -{ -#if 0 - /* - Uh, just do something random... - */ - // Find existing map from top to down - s16 max=63; - s16 min=-64; - v3s16 p(p2d.X, max, p2d.Y); - for(; p.Y>min; p.Y--) - { - MapNode n = getNodeNoEx(p); - if(n.getContent() != CONTENT_IGNORE) - break; - } - if(p.Y == min) - goto plan_b; - // If this node is not air, go to plan b - if(getNodeNoEx(p).getContent() != CONTENT_AIR) - goto plan_b; - // Search existing walkable and return it - for(; p.Y>min; p.Y--) - { - MapNode n = getNodeNoEx(p); - if(content_walkable(n.d) && n.getContent() != CONTENT_IGNORE) - return p.Y; - } - - // Move to plan b -plan_b: -#endif - - /* - Determine from map generator noise functions - */ - - s16 level = m_emerge->getGroundLevelAtPoint(p2d); - return level; - - //double level = base_rock_level_2d(m_seed, p2d) + AVERAGE_MUD_AMOUNT; - //return (s16)level; -} - -void ServerMap::createDirs(const std::string &path) -{ - if (!fs::CreateAllDirs(path)) { - m_dout<<"ServerMap: Failed to create directory " - <<"\""< *getSectorsPtr(){return &m_sectors;} - /* Variables */ @@ -283,8 +276,6 @@ public: protected: friend class LuaVoxelManip; - std::ostream &m_dout; // A bit deprecated, could be removed - IGameDef *m_gamedef; std::set m_event_receivers; @@ -374,15 +365,6 @@ public: */ MapBlock *getBlockOrEmerge(v3s16 p3d); - // Helper for placing objects on ground level - s16 findGroundLevel(v2s16 p2d); - - /* - Misc. helper functions for fiddling with directory and file - names when saving - */ - void createDirs(const std::string &path); - /* Database functions */ @@ -414,7 +396,6 @@ public: bool isSavingEnabled(){ return m_map_saving_enabled; } u64 getSeed(); - s16 getWaterLevel(); /*! * Fixes lighting in one map block. diff --git a/src/mapgen/mapgen.cpp b/src/mapgen/mapgen.cpp index 52ef64e7e..e0dfd2d71 100644 --- a/src/mapgen/mapgen.cpp +++ b/src/mapgen/mapgen.cpp @@ -244,26 +244,6 @@ u32 Mapgen::getBlockSeed2(v3s16 p, s32 seed) } -// Returns Y one under area minimum if not found -s16 Mapgen::findGroundLevelFull(v2s16 p2d) -{ - const v3s16 &em = vm->m_area.getExtent(); - s16 y_nodes_max = vm->m_area.MaxEdge.Y; - s16 y_nodes_min = vm->m_area.MinEdge.Y; - u32 i = vm->m_area.index(p2d.X, y_nodes_max, p2d.Y); - s16 y; - - for (y = y_nodes_max; y >= y_nodes_min; y--) { - MapNode &n = vm->m_data[i]; - if (ndef->get(n).walkable) - break; - - VoxelArea::add_y(em, i, -1); - } - return (y >= y_nodes_min) ? y : y_nodes_min - 1; -} - - // Returns -MAX_MAP_GENERATION_LIMIT if not found s16 Mapgen::findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax) { @@ -984,19 +964,6 @@ GenerateNotifier::GenerateNotifier(u32 notify_on, } -void GenerateNotifier::setNotifyOn(u32 notify_on) -{ - m_notify_on = notify_on; -} - - -void GenerateNotifier::setNotifyOnDecoIds( - const std::set *notify_on_deco_ids) -{ - m_notify_on_deco_ids = notify_on_deco_ids; -} - - bool GenerateNotifier::addEvent(GenNotifyType type, v3s16 pos, u32 id) { if (!(m_notify_on & (1 << type))) diff --git a/src/mapgen/mapgen.h b/src/mapgen/mapgen.h index 0f2977c4c..1487731e2 100644 --- a/src/mapgen/mapgen.h +++ b/src/mapgen/mapgen.h @@ -88,19 +88,17 @@ struct GenNotifyEvent { class GenerateNotifier { public: + // Use only for temporary Mapgen objects with no map generation! GenerateNotifier() = default; GenerateNotifier(u32 notify_on, const std::set *notify_on_deco_ids); - void setNotifyOn(u32 notify_on); - void setNotifyOnDecoIds(const std::set *notify_on_deco_ids); - bool addEvent(GenNotifyType type, v3s16 pos, u32 id=0); void getEvents(std::map > &event_map); void clearEvents(); private: u32 m_notify_on = 0; - const std::set *m_notify_on_deco_ids; + const std::set *m_notify_on_deco_ids = nullptr; std::list m_notify_events; }; @@ -186,7 +184,6 @@ public: static u32 getBlockSeed(v3s16 p, s32 seed); static u32 getBlockSeed2(v3s16 p, s32 seed); - s16 findGroundLevelFull(v2s16 p2d); s16 findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax); s16 findLiquidSurface(v2s16 p2d, s16 ymin, s16 ymax); void updateHeightmap(v3s16 nmin, v3s16 nmax); diff --git a/src/mapgen/mapgen_v6.cpp b/src/mapgen/mapgen_v6.cpp index 8bea5eb69..90a52e031 100644 --- a/src/mapgen/mapgen_v6.cpp +++ b/src/mapgen/mapgen_v6.cpp @@ -341,12 +341,6 @@ float MapgenV6::baseTerrainLevelFromMap(int index) } -s16 MapgenV6::find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision) -{ - return baseTerrainLevelFromNoise(p2d) + MGV6_AVERAGE_MUD_AMOUNT; -} - - int MapgenV6::getGroundLevelAtPoint(v2s16 p) { return baseTerrainLevelFromNoise(p) + MGV6_AVERAGE_MUD_AMOUNT; diff --git a/src/mapgen/mapgen_v6.h b/src/mapgen/mapgen_v6.h index ff565edec..a6e6da8c6 100644 --- a/src/mapgen/mapgen_v6.h +++ b/src/mapgen/mapgen_v6.h @@ -150,7 +150,6 @@ public: s16 find_stone_level(v2s16 p2d); bool block_is_underground(u64 seed, v3s16 blockpos); - s16 find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision); float getHumidity(v2s16 p); float getTreeAmount(v2s16 p); diff --git a/src/mapgen/treegen.cpp b/src/mapgen/treegen.cpp index e7e30c880..e633d800a 100644 --- a/src/mapgen/treegen.cpp +++ b/src/mapgen/treegen.cpp @@ -527,19 +527,6 @@ treegen::error make_ltree(MMVManip &vmanip, v3s16 p0, } -void tree_node_placement(MMVManip &vmanip, v3f p0, MapNode node) -{ - v3s16 p1 = v3s16(myround(p0.X), myround(p0.Y), myround(p0.Z)); - if (!vmanip.m_area.contains(p1)) - return; - u32 vi = vmanip.m_area.index(p1); - if (vmanip.m_data[vi].getContent() != CONTENT_AIR - && vmanip.m_data[vi].getContent() != CONTENT_IGNORE) - return; - vmanip.m_data[vmanip.m_area.index(p1)] = node; -} - - void tree_trunk_placement(MMVManip &vmanip, v3f p0, TreeDef &tree_definition) { v3s16 p1 = v3s16(myround(p0.X), myround(p0.Y), myround(p0.Z)); diff --git a/src/mapgen/treegen.h b/src/mapgen/treegen.h index 447baabb3..59a418824 100644 --- a/src/mapgen/treegen.h +++ b/src/mapgen/treegen.h @@ -76,8 +76,6 @@ namespace treegen { const NodeDefManager *ndef, const TreeDef &tree_definition); // L-System tree gen helper functions - void tree_node_placement(MMVManip &vmanip, v3f p0, - MapNode node); void tree_trunk_placement(MMVManip &vmanip, v3f p0, TreeDef &tree_definition); void tree_leaves_placement(MMVManip &vmanip, v3f p0, diff --git a/src/network/networkpacket.cpp b/src/network/networkpacket.cpp index 4d531b611..6d0abb12c 100644 --- a/src/network/networkpacket.cpp +++ b/src/network/networkpacket.cpp @@ -223,13 +223,6 @@ NetworkPacket& NetworkPacket::operator>>(char& dst) return *this; } -char NetworkPacket::getChar(u32 offset) -{ - checkReadOffset(offset, 1); - - return readU8(&m_data[offset]); -} - NetworkPacket& NetworkPacket::operator<<(char src) { checkDataSize(1); diff --git a/src/network/networkpacket.h b/src/network/networkpacket.h index fc8617651..e77bfb744 100644 --- a/src/network/networkpacket.h +++ b/src/network/networkpacket.h @@ -64,7 +64,6 @@ public: std::string readLongString(); - char getChar(u32 offset); NetworkPacket &operator>>(char &dst); NetworkPacket &operator<<(char src); diff --git a/src/script/common/c_converter.cpp b/src/script/common/c_converter.cpp index eb6ab5331..c00401b58 100644 --- a/src/script/common/c_converter.cpp +++ b/src/script/common/c_converter.cpp @@ -679,48 +679,3 @@ size_t write_array_slice_float( return elem_index - 1; } - - -size_t write_array_slice_u16( - lua_State *L, - int table_index, - u16 *data, - v3u16 data_size, - v3u16 slice_offset, - v3u16 slice_size) -{ - v3u16 pmin, pmax(data_size); - - if (slice_offset.X > 0) { - slice_offset.X--; - pmin.X = slice_offset.X; - pmax.X = MYMIN(slice_offset.X + slice_size.X, data_size.X); - } - - if (slice_offset.Y > 0) { - slice_offset.Y--; - pmin.Y = slice_offset.Y; - pmax.Y = MYMIN(slice_offset.Y + slice_size.Y, data_size.Y); - } - - if (slice_offset.Z > 0) { - slice_offset.Z--; - pmin.Z = slice_offset.Z; - pmax.Z = MYMIN(slice_offset.Z + slice_size.Z, data_size.Z); - } - - const u32 ystride = data_size.X; - const u32 zstride = data_size.X * data_size.Y; - - u32 elem_index = 1; - for (u32 z = pmin.Z; z != pmax.Z; z++) - for (u32 y = pmin.Y; y != pmax.Y; y++) - for (u32 x = pmin.X; x != pmax.X; x++) { - u32 i = z * zstride + y * ystride + x; - lua_pushinteger(L, data[i]); - lua_rawseti(L, table_index, elem_index); - elem_index++; - } - - return elem_index - 1; -} diff --git a/src/script/common/c_converter.h b/src/script/common/c_converter.h index a4a7079fd..6ad6f3212 100644 --- a/src/script/common/c_converter.h +++ b/src/script/common/c_converter.h @@ -136,5 +136,3 @@ void warn_if_field_exists(lua_State *L, int table, size_t write_array_slice_float(lua_State *L, int table_index, float *data, v3u16 data_size, v3u16 slice_offset, v3u16 slice_size); -size_t write_array_slice_u16(lua_State *L, int table_index, u16 *data, - v3u16 data_size, v3u16 slice_offset, v3u16 slice_size); diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index e49ec4052..0aa2760e9 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -29,7 +29,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "porting.h" #include "filesys.h" #include "convert_json.h" -#include "content/packages.h" #include "content/content.h" #include "content/subgames.h" #include "serverlist.h" diff --git a/src/unittest/test_map_settings_manager.cpp b/src/unittest/test_map_settings_manager.cpp index 0a5c971b9..3d642a9b4 100644 --- a/src/unittest/test_map_settings_manager.cpp +++ b/src/unittest/test_map_settings_manager.cpp @@ -65,31 +65,6 @@ void check_noise_params(const NoiseParams *np1, const NoiseParams *np2) } -std::string read_file_to_string(const std::string &filepath) -{ - std::string buf; - FILE *f = fopen(filepath.c_str(), "rb"); - if (!f) - return ""; - - fseek(f, 0, SEEK_END); - - long filesize = ftell(f); - if (filesize == -1) { - fclose(f); - return ""; - } - rewind(f); - - buf.resize(filesize); - - UASSERTEQ(size_t, fread(&buf[0], 1, filesize, f), 1); - - fclose(f); - return buf; -} - - void TestMapSettingsManager::makeUserConfig(Settings *conf) { conf->set("mg_name", "v7"); @@ -199,7 +174,8 @@ void TestMapSettingsManager::testMapSettingsManager() }; SHA1 ctx; - std::string metafile_contents = read_file_to_string(test_mapmeta_path); + std::string metafile_contents; + UASSERT(fs::ReadFile(test_mapmeta_path, metafile_contents)); ctx.addBytes(&metafile_contents[0], metafile_contents.size()); unsigned char *sha1_result = ctx.getDigest(); int resultdiff = memcmp(sha1_result, expected_contents_hash, 20); From e80fc22dd996e5b0efd8c4f67700c0920e323e46 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 6 Oct 2020 12:10:37 +0100 Subject: [PATCH 217/624] Prevent games from setting secure settings (#10460) --- src/content/subgames.cpp | 8 ++++++++ src/content/subgames.h | 3 --- src/settings.cpp | 13 +++++++++++++ src/settings.h | 2 ++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp index 695ba431f..c6350f2dd 100644 --- a/src/content/subgames.cpp +++ b/src/content/subgames.cpp @@ -34,12 +34,17 @@ with this program; if not, write to the Free Software Foundation, Inc., // The maximum number of identical world names allowed #define MAX_WORLD_NAMES 100 +namespace +{ + bool getGameMinetestConfig(const std::string &game_path, Settings &conf) { std::string conf_path = game_path + DIR_DELIM + "minetest.conf"; return conf.readConfigFile(conf_path.c_str()); } +} + struct GameFindPath { std::string path; @@ -330,8 +335,11 @@ void loadGameConfAndInitWorld(const std::string &path, const std::string &name, // files that were loaded before. g_settings->clearDefaults(); set_default_settings(g_settings); + Settings game_defaults; getGameMinetestConfig(gamespec.path, game_defaults); + game_defaults.removeSecureSettings(); + g_settings->overrideDefaults(&game_defaults); infostream << "Initializing world at " << final_path << std::endl; diff --git a/src/content/subgames.h b/src/content/subgames.h index 35b619aaf..60392639b 100644 --- a/src/content/subgames.h +++ b/src/content/subgames.h @@ -53,9 +53,6 @@ struct SubgameSpec bool isValid() const { return (!id.empty() && !path.empty()); } }; -// minetest.conf -bool getGameMinetestConfig(const std::string &game_path, Settings &conf); - SubgameSpec findSubgame(const std::string &id); SubgameSpec findWorldSubgame(const std::string &world_path); diff --git a/src/settings.cpp b/src/settings.cpp index 56ab9e12b..f30ef34e9 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1039,6 +1039,19 @@ void Settings::deregisterChangedCallback(const std::string &name, } } +void Settings::removeSecureSettings() +{ + for (const auto &name : getNames()) { + if (name.compare(0, 7, "secure.") != 0) + continue; + + errorstream << "Secure setting " << name + << " isn't allowed, so was ignored." + << std::endl; + remove(name); + } +} + void Settings::doCallbacks(const std::string &name) const { MutexAutoLock lock(m_callback_mutex); diff --git a/src/settings.h b/src/settings.h index 7db5539b2..6db2f9481 100644 --- a/src/settings.h +++ b/src/settings.h @@ -207,6 +207,8 @@ public: void deregisterChangedCallback(const std::string &name, SettingsChangedCallback cbf, void *userdata = NULL); + void removeSecureSettings(); + private: /*********************** * Reading and writing * From 2f4037752b023f87ca1f8859a8dce4f833353967 Mon Sep 17 00:00:00 2001 From: HybridDog <3192173+HybridDog@users.noreply.github.com> Date: Tue, 6 Oct 2020 20:49:46 +0200 Subject: [PATCH 218/624] Add minetest.get_artificial_light and minetest.get_natural_light (#5680) Add more detailed light detection functions, a function to get the artificial light (torches) and a function to get the sunlight as seen by the player (you can specify timeofday). Co-authored-by: rubenwardy --- builtin/game/misc.lua | 6 ++ doc/lua_api.txt | 16 ++++ games/devtest/mods/testtools/init.lua | 2 + games/devtest/mods/testtools/light.lua | 22 +++++ .../textures/testtools_lighttool.png | Bin 0 -> 1659 bytes src/script/lua_api/l_env.cpp | 41 +++++++++ src/script/lua_api/l_env.h | 5 ++ src/serverenvironment.cpp | 85 ++++++++++++++++++ src/serverenvironment.h | 3 + 9 files changed, 180 insertions(+) create mode 100644 games/devtest/mods/testtools/light.lua create mode 100644 games/devtest/mods/testtools/textures/testtools_lighttool.png diff --git a/builtin/game/misc.lua b/builtin/game/misc.lua index 341e613c2..96a0a2dda 100644 --- a/builtin/game/misc.lua +++ b/builtin/game/misc.lua @@ -151,6 +151,12 @@ function core.setting_get_pos(name) end +-- See l_env.cpp for the other functions +function core.get_artificial_light(param1) + return math.floor(param1 / 16) +end + + -- To be overriden by protection mods function core.is_protected(pos, name) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 9e9af20da..c4eb56374 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -4824,6 +4824,22 @@ Environment access * `pos`: The position where to measure the light. * `timeofday`: `nil` for current time, `0` for night, `0.5` for day * Returns a number between `0` and `15` or `nil` + * `nil` is returned e.g. when the map isn't loaded at `pos` +* `minetest.get_natural_light(pos[, timeofday])` + * Figures out the sunlight (or moonlight) value at pos at the given time of + day. + * `pos`: The position of the node + * `timeofday`: `nil` for current time, `0` for night, `0.5` for day + * Returns a number between `0` and `15` or `nil` + * This function tests 203 nodes in the worst case, which happens very + unlikely +* `minetest.get_artificial_light(param1)` + * Calculates the artificial light (light from e.g. torches) value from the + `param1` value. + * `param1`: The param1 value of a `paramtype = "light"` node. + * Returns a number between `0` and `15` + * Currently it's the same as `math.floor(param1 / 16)`, except that it + ensures compatibility. * `minetest.place_node(pos, node)` * Place node with the same effects that a player would cause * `minetest.dig_node(pos)` diff --git a/games/devtest/mods/testtools/init.lua b/games/devtest/mods/testtools/init.lua index df5bc8e55..d578b264a 100644 --- a/games/devtest/mods/testtools/init.lua +++ b/games/devtest/mods/testtools/init.lua @@ -1,6 +1,8 @@ local S = minetest.get_translator("testtools") local F = minetest.formspec_escape +dofile(minetest.get_modpath("testtools") .. "/light.lua") + -- TODO: Add a Node Metadata tool minetest.register_tool("testtools:param2tool", { diff --git a/games/devtest/mods/testtools/light.lua b/games/devtest/mods/testtools/light.lua new file mode 100644 index 000000000..a9458ca6b --- /dev/null +++ b/games/devtest/mods/testtools/light.lua @@ -0,0 +1,22 @@ + +local S = minetest.get_translator("testtools") + +minetest.register_tool("testtools:lighttool", { + description = S("Light tool"), + inventory_image = "testtools_lighttool.png", + groups = { testtool = 1, disable_repair = 1 }, + on_use = function(itemstack, user, pointed_thing) + local pos = pointed_thing.above + if pointed_thing.type ~= "node" or not pos then + return + end + + local node = minetest.get_node(pos) + local time = minetest.get_timeofday() + local sunlight = minetest.get_natural_light(pos) + local artificial = minetest.get_artificial_light(node.param1) + local message = ("param1 0x%02x | time %.5f | sunlight %d | artificial %d") + :format(node.param1, time, sunlight, artificial) + minetest.chat_send_player(user:get_player_name(), message) + end +}) diff --git a/games/devtest/mods/testtools/textures/testtools_lighttool.png b/games/devtest/mods/testtools/textures/testtools_lighttool.png new file mode 100644 index 0000000000000000000000000000000000000000..6f744b7fa46d8a00e6a59c0929a591ea93add744 GIT binary patch literal 1659 zcmV->288*EP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+SOKDvg0ZY{MRaG2_OLy%fURVW(RlqBQWu?bDY?j zGe0+!4HiObx@8=w|NU<8OMi$c;5ELw2`g8IJ#k<6`A;RMXSHs`7Gq2W)v{u*MB^Q*@Fe}Qy zgPp!c9T%mX#4Q6%8%LeZzKWWff?i5)g z8&`@8d*v#Ou3W#XmkMIr)XfiqA8pEScJ-sBstWo+v*-qsS=JDXw_mkILuXPyul@Q~ zSl}`PC`FpvD;P_vfC*atHdw=mY_0MrDo|47NDdcOzdT zZq~C&h42)JRhvjj#d6MT{jd|Qq2$Rs?|ty>1$^`=P;kMA5IFQhE-|rV&w-hRBPSto z;w1=+NR$*YlAeJ+hR9K3j42@`O_VfNQvalu1s7V};+L@SB1>FS*7C_N`y4W7$uXyb zg^C^%B@`}FVoB9P)sv#S>T9T6rN)|?)>@VCYb zrdD8ngs}ZM@m(`j44qZQxhtRrja@S%);a9TbP=kic&eG5CMhV<>z`6>xe)T1paNYY`;ORkx! z4gCq1<_$^4G56jLZu;%qp8Itfe7x>OTKJo7oTY*HdG2oye$4W8gW<<^wbx*ZdzsbL z=@oO9=UKqd_V#ib&i8)A*jVP1m-2!q=#Y83C6`}p;0cHsE@F0g;T+J#{!Z}1d%$Ou zpW}x!1#So3A%lBVUL%7&wJ#{W>Ia2z!QpM7aKYhi3gLpo+sNRix+fGKs|zlx@uZ56 zC&P*#KH9(=ydXb&{WrXD_XxZ?vf#~`)t3IjI*%*QCNTeoYlI`#&nj^Txq;mMa9w;* z;DXNg5OgfL$XkRdL|6u#EY9D`%^q*yfKYo2-0#3ysHUIzt zglR)VP)S2WAaHVTW@&6?004NLeUUv#!$2IxUsH=xst$G#aR^eKS`Za+)G8FALZ}s5 zbuhVpLX(Ch#l=x@EjakGSaoo5*44pP5ClI!oE)7LU8KbSC509-9vt`M-Mz=%J3weu zm}+*71FB{jsYG1NWLL%RR|FA2A4U+BnW@i7QWBoy>mEM7-o<#9_qjhuZ!T{#z$X&V zGTpF@)hJ)cxSZp>#aXS?SnHnrg`vE*vdndw!$@EeOOPN!K@DY8U?E1UMv93P?Z-X* zLylh}mqM;G7&#VDg$mj6ga5(rZq35vgqswK1A!OY{ul+icY$Wzw!e>UyLkfmpMfi_ z?XNa~nNQN|Z7p&H^lt+f*KJMN11@)f!6#idWJmJT6bc34{fxdT3k=)>!8NzH);>-j zfHZZLya5glfw3ZGuY0_^r?an0U60WO;~d-o7e1-RLBt&={?ZX#e6zRbe%kztQDBP)|5LF^%}=d-j{iRZi~l5np8R>8|NGV^2O|3kaNXYA6WtrQzNscirN002ovPDHLk FV1hb0459!4 literal 0 HcmV?d00001 diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index 138e88ae8..8d50d664d 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -407,6 +407,46 @@ int ModApiEnvMod::l_get_node_light(lua_State *L) return 1; } + +// get_natural_light(pos, timeofday) +// pos = {x=num, y=num, z=num} +// timeofday: nil = current time, 0 = night, 0.5 = day +int ModApiEnvMod::l_get_natural_light(lua_State *L) +{ + GET_ENV_PTR; + + v3s16 pos = read_v3s16(L, 1); + + bool is_position_ok; + MapNode n = env->getMap().getNode(pos, &is_position_ok); + if (!is_position_ok) + return 0; + + // If the daylight is 0, nothing needs to be calculated + u8 daylight = n.param1 & 0x0f; + if (daylight == 0) { + lua_pushinteger(L, 0); + return 1; + } + + u32 time_of_day; + if (lua_isnumber(L, 2)) { + time_of_day = 24000.0 * lua_tonumber(L, 2); + time_of_day %= 24000; + } else { + time_of_day = env->getTimeOfDay(); + } + u32 dnr = time_to_daynight_ratio(time_of_day, true); + + // If it's the same as the artificial light, the sunlight needs to be + // searched for because the value may not emanate from the sun + if (daylight == n.param1 >> 4) + daylight = env->findSunlight(pos); + + lua_pushinteger(L, dnr * daylight / 1000); + return 1; +} + // place_node(pos, node) // pos = {x=num, y=num, z=num} int ModApiEnvMod::l_place_node(lua_State *L) @@ -1358,6 +1398,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top) API_FCT(get_node); API_FCT(get_node_or_nil); API_FCT(get_node_light); + API_FCT(get_natural_light); API_FCT(place_node); API_FCT(dig_node); API_FCT(punch_node); diff --git a/src/script/lua_api/l_env.h b/src/script/lua_api/l_env.h index 07d4d2438..7f212b5fc 100644 --- a/src/script/lua_api/l_env.h +++ b/src/script/lua_api/l_env.h @@ -56,6 +56,11 @@ private: // timeofday: nil = current time, 0 = night, 0.5 = day static int l_get_node_light(lua_State *L); + // get_natural_light(pos, timeofday) + // pos = {x=num, y=num, z=num} + // timeofday: nil = current time, 0 = night, 0.5 = day + static int l_get_natural_light(lua_State *L); + // place_node(pos, node) // pos = {x=num, y=num, z=num} static int l_place_node(lua_State *L); diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp index 320042e19..6ef56efc8 100644 --- a/src/serverenvironment.cpp +++ b/src/serverenvironment.cpp @@ -1066,6 +1066,91 @@ bool ServerEnvironment::swapNode(v3s16 p, const MapNode &n) return true; } +u8 ServerEnvironment::findSunlight(v3s16 pos) const +{ + // Directions for neighbouring nodes with specified order + static const v3s16 dirs[] = { + v3s16(-1, 0, 0), v3s16(1, 0, 0), v3s16(0, 0, -1), v3s16(0, 0, 1), + v3s16(0, -1, 0), v3s16(0, 1, 0) + }; + + const NodeDefManager *ndef = m_server->ndef(); + + // found_light remembers the highest known sunlight value at pos + u8 found_light = 0; + + struct stack_entry { + v3s16 pos; + s16 dist; + }; + std::stack stack; + stack.push({pos, 0}); + + std::unordered_map dists; + dists[MapDatabase::getBlockAsInteger(pos)] = 0; + + while (!stack.empty()) { + struct stack_entry e = stack.top(); + stack.pop(); + + v3s16 currentPos = e.pos; + s8 dist = e.dist + 1; + + for (const v3s16& off : dirs) { + v3s16 neighborPos = currentPos + off; + s64 neighborHash = MapDatabase::getBlockAsInteger(neighborPos); + + // Do not walk neighborPos multiple times unless the distance to the start + // position is shorter + auto it = dists.find(neighborHash); + if (it != dists.end() && dist >= it->second) + continue; + + // Position to walk + bool is_position_ok; + MapNode node = m_map->getNode(neighborPos, &is_position_ok); + if (!is_position_ok) { + // This happens very rarely because the map at currentPos is loaded + m_map->emergeBlock(neighborPos, false); + node = m_map->getNode(neighborPos, &is_position_ok); + if (!is_position_ok) + continue; // not generated + } + + const ContentFeatures &def = ndef->get(node); + if (!def.sunlight_propagates) { + // Do not test propagation here again + dists[neighborHash] = -1; + continue; + } + + // Sunlight could have come from here + dists[neighborHash] = dist; + u8 daylight = node.param1 & 0x0f; + + // In the special case where sunlight shines from above and thus + // does not decrease with upwards distance, daylight is always + // bigger than nightlight, which never reaches 15 + int possible_finlight = daylight - dist; + if (possible_finlight <= found_light) { + // Light from here cannot make a brighter light at currentPos than + // found_light + continue; + } + + u8 nightlight = node.param1 >> 4; + if (daylight > nightlight) { + // Found a valid daylight + found_light = possible_finlight; + } else { + // Sunlight may be darker, so walk the neighbours + stack.push({neighborPos, dist}); + } + } + } + return found_light; +} + void ServerEnvironment::clearObjects(ClearObjectsMode mode) { infostream << "ServerEnvironment::clearObjects(): " diff --git a/src/serverenvironment.h b/src/serverenvironment.h index af742e290..cfd5b8f3e 100644 --- a/src/serverenvironment.h +++ b/src/serverenvironment.h @@ -322,6 +322,9 @@ public: bool removeNode(v3s16 p); bool swapNode(v3s16 p, const MapNode &n); + // Find the daylight value at pos with a Depth First Search + u8 findSunlight(v3s16 pos) const; + // Find all active objects inside a radius around a point void getObjectsInsideRadius(std::vector &objects, const v3f &pos, float radius, std::function include_obj_cb) From aae7d4ff8e4e2433b13225269de28e7dc10efe2c Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Tue, 6 Oct 2020 20:50:20 +0200 Subject: [PATCH 219/624] Improve the `fsaa` setting description (#10279) See https://github.com/minetest/minetest/issues/8459. --- builtin/settingtypes.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 7f2d12be5..1c28470d5 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -513,8 +513,13 @@ texture_clean_transparent (Clean transparent textures) bool false # texture autoscaling. texture_min_size (Minimum texture size) int 64 -# Experimental option, might cause visible spaces between blocks -# when set to higher number than 0. +# Use multi-sample antialiasing (MSAA) to smooth out block edges. +# This algorithm smooths out the 3D viewport while keeping the image sharp, +# but it doesn't affect the insides of textures +# (which is especially noticeable with transparent textures). +# This option is experimental and might cause visible spaces between blocks +# when set above 0. +# A restart is required after changing this option. fsaa (FSAA) enum 0 0,1,2,4,8,16 # Undersampling is similar to using a lower screen resolution, but it applies From a37e96eefc646f01f34d0c6d8948d4a9c4062cae Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Tue, 6 Oct 2020 20:51:27 +0200 Subject: [PATCH 220/624] -Wmem-access only called when GCC > 7 (#10453) --- src/client/mapblock_mesh.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index f9332e399..c7790f1e4 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -394,7 +394,9 @@ static void getNodeVertexDirs(const v3s16 &dir, v3s16 *vertex_dirs) #if defined(__GNUC__) && !defined(__clang__) #pragma GCC diagnostic push +#if __GNUC__ > 7 #pragma GCC diagnostic ignored "-Wclass-memaccess" +#endif #endif memcpy(vertex_dirs, &vertex_dirs_table[idx], 4 * sizeof(v3s16)); #if defined(__GNUC__) && !defined(__clang__) From f0b6f7909a6a760d946209891c3667799874b80a Mon Sep 17 00:00:00 2001 From: HybridDog <3192173+HybridDog@users.noreply.github.com> Date: Thu, 8 Oct 2020 19:44:27 +0200 Subject: [PATCH 221/624] Mention texture modifier colorspace (#10112) --- doc/lua_api.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index c4eb56374..60fea3817 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -434,7 +434,9 @@ Texture modifiers ----------------- There are various texture modifiers that can be used -to generate textures on-the-fly. +to let the client generate textures on-the-fly. +The modifiers are applied directly in sRGB colorspace, +i.e. without gamma-correction. ### Texture overlaying From b2f3f663858e6d2a2174066e425bb6f2edea910b Mon Sep 17 00:00:00 2001 From: DS Date: Thu, 8 Oct 2020 19:44:47 +0200 Subject: [PATCH 222/624] Fix box[]es not being clipped (#10473) Fixes a regression of #8676. --- src/gui/guiBox.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/guiBox.cpp b/src/gui/guiBox.cpp index 99a115daf..443f1064f 100644 --- a/src/gui/guiBox.cpp +++ b/src/gui/guiBox.cpp @@ -107,10 +107,11 @@ void GUIBox::draw() video::IVideoDriver *driver = Environment->getVideoDriver(); driver->draw2DRectangle(main_rect, m_colors[0], m_colors[1], m_colors[3], - m_colors[2], nullptr); + m_colors[2], &AbsoluteClippingRect); for (size_t i = 0; i <= 3; i++) - driver->draw2DRectangle(m_bordercolors[i], border_rects[i], nullptr); + driver->draw2DRectangle(m_bordercolors[i], border_rects[i], + &AbsoluteClippingRect); IGUIElement::draw(); } From f3ae45b2b245dd0aeb4a7d9b76afaf078871104c Mon Sep 17 00:00:00 2001 From: DS Date: Fri, 9 Oct 2020 20:11:21 +0200 Subject: [PATCH 223/624] Add a short_description to be used by mods (#8980) --- builtin/game/register.lua | 6 +++ doc/lua_api.txt | 10 +++++ games/devtest/mods/unittests/init.lua | 2 + .../mods/unittests/itemdescription.lua | 44 +++++++++++++++++++ src/inventory.cpp | 14 ++++++ src/inventory.h | 1 + src/itemdef.cpp | 9 +++- src/itemdef.h | 1 + src/script/common/c_content.cpp | 3 ++ src/script/lua_api/l_item.cpp | 11 +++++ src/script/lua_api/l_item.h | 3 ++ 11 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 games/devtest/mods/unittests/itemdescription.lua diff --git a/builtin/game/register.lua b/builtin/game/register.lua index 3de67c04b..f00b76494 100644 --- a/builtin/game/register.lua +++ b/builtin/game/register.lua @@ -118,6 +118,12 @@ function core.register_item(name, itemdef) end itemdef.name = name + -- default description to item name + itemdef.description = itemdef.description or name + -- default short_description to first line of description + itemdef.short_description = itemdef.short_description or + itemdef.description:gsub("\n.*","") + -- Apply defaults and add to registered_* table if itemdef.type == "node" then -- Use the nodebox as selection box if it's not set manually diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 60fea3817..c8b294149 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2054,6 +2054,8 @@ Some of the values in the key-value store are handled specially: * `description`: Set the item stack's description. Defaults to `idef.description`. +* `short_description`: Set the item stack's short description. Defaults + to `idef.short_description`. * `color`: A `ColorString`, which sets the stack's color. * `palette_index`: If the item has a palette, this is used to get the current color from the palette. @@ -5994,6 +5996,8 @@ an itemstring, a table or `nil`. stack). * `set_metadata(metadata)`: (DEPRECATED) Returns true. * `get_description()`: returns the description shown in inventory list tooltips. +* `get_short_description()`: returns the short description. + * Unlike the description, this does not include new lines. * `clear()`: removes all items from the stack, making it empty. * `replace(item)`: replace the contents of this stack. * `item` can also be an itemstring or table. @@ -7096,6 +7100,12 @@ Used by `minetest.register_node`, `minetest.register_craftitem`, and { description = "Steel Axe", + -- Can contain new lines. "\n" has to be used as new line character. + -- Defaults to the item's name. + + short_description = "Steel Axe", + -- Must not contain new lines. + -- Defaults to the first line of description. groups = {}, -- key = name, value = rating; rating = 1..3. diff --git a/games/devtest/mods/unittests/init.lua b/games/devtest/mods/unittests/init.lua index 6c1728420..12c67f78b 100644 --- a/games/devtest/mods/unittests/init.lua +++ b/games/devtest/mods/unittests/init.lua @@ -5,10 +5,12 @@ dofile(modpath .. "/random.lua") dofile(modpath .. "/player.lua") dofile(modpath .. "/crafting_prepare.lua") dofile(modpath .. "/crafting.lua") +dofile(modpath .. "/itemdescription.lua") if minetest.settings:get_bool("devtest_unittests_autostart", false) then unittests.test_random() unittests.test_crafting() + unittests.test_short_desc() minetest.register_on_joinplayer(function(player) unittests.test_player(player) end) diff --git a/games/devtest/mods/unittests/itemdescription.lua b/games/devtest/mods/unittests/itemdescription.lua new file mode 100644 index 000000000..1d0826545 --- /dev/null +++ b/games/devtest/mods/unittests/itemdescription.lua @@ -0,0 +1,44 @@ +local full_description = "Colorful Pickaxe\nThe best pick." +minetest.register_tool("unittests:colorful_pick", { + description = full_description, + inventory_image = "basetools_mesepick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + groupcaps={ + cracky={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3}, + crumbly={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3}, + snappy={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3} + }, + damage_groups = {fleshy=4}, + }, +}) + +minetest.register_chatcommand("item_description", { + param = "", + description = "Show the short and full description of the wielded item.", + func = function(name) + local player = minetest.get_player_by_name(name) + local item = player:get_wielded_item() + return true, string.format("short_description: %s\ndescription: %s", + item:get_short_description(), item:get_description()) + end +}) + +function unittests.test_short_desc() + local stack = ItemStack("unittests:colorful_pick") + assert(stack:get_short_description() == "Colorful Pickaxe") + assert(stack:get_short_description() == minetest.registered_items["unittests:colorful_pick"].short_description) + assert(stack:get_description() == full_description) + assert(stack:get_description() == minetest.registered_items["unittests:colorful_pick"].description) + + stack:get_meta():set_string("description", "Hello World") + assert(stack:get_short_description() == "Colorful Pickaxe") + assert(stack:get_description() == "Hello World") + + stack:get_meta():set_string("short_description", "Foo Bar") + assert(stack:get_short_description() == "Foo Bar") + assert(stack:get_description() == "Hello World") + + return true +end diff --git a/src/inventory.cpp b/src/inventory.cpp index cf72cb005..1ef9b13cd 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -258,6 +258,20 @@ std::string ItemStack::getDescription(IItemDefManager *itemdef) const return desc.empty() ? name : desc; } +std::string ItemStack::getShortDescription(IItemDefManager *itemdef) const +{ + std::string desc = metadata.getString("short_description"); + if (desc.empty()) + desc = getDefinition(itemdef).short_description; + if (!desc.empty()) + return desc; + // no short_description because of old server version or modified builtin + // return first line of description + std::stringstream sstr(getDescription(itemdef)); + std::getline(sstr, desc, '\n'); + return desc; +} + ItemStack ItemStack::addItem(ItemStack newitem, IItemDefManager *itemdef) { diff --git a/src/inventory.h b/src/inventory.h index 67a7859ed..f36bc57cf 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -49,6 +49,7 @@ struct ItemStack std::string getItemString(bool include_meta = true) const; // Returns the tooltip std::string getDescription(IItemDefManager *itemdef) const; + std::string getShortDescription(IItemDefManager *itemdef) const; /* Quantity methods diff --git a/src/itemdef.cpp b/src/itemdef.cpp index df20bdf15..5fb1e4c47 100644 --- a/src/itemdef.cpp +++ b/src/itemdef.cpp @@ -62,6 +62,7 @@ ItemDefinition& ItemDefinition::operator=(const ItemDefinition &def) type = def.type; name = def.name; description = def.description; + short_description = def.short_description; inventory_image = def.inventory_image; inventory_overlay = def.inventory_overlay; wield_image = def.wield_image; @@ -102,6 +103,7 @@ void ItemDefinition::reset() type = ITEM_NONE; name = ""; description = ""; + short_description = ""; inventory_image = ""; inventory_overlay = ""; wield_image = ""; @@ -162,6 +164,8 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const writeARGB8(os, color); os << serializeString16(inventory_overlay); os << serializeString16(wield_overlay); + + os << serializeString16(short_description); } void ItemDefinition::deSerialize(std::istream &is) @@ -213,8 +217,9 @@ void ItemDefinition::deSerialize(std::istream &is) // If you add anything here, insert it primarily inside the try-catch // block to not need to increase the version. - //try { - //} catch(SerializationError &e) {}; + try { + short_description = deSerializeString16(is); + } catch(SerializationError &e) {}; } diff --git a/src/itemdef.h b/src/itemdef.h index f47e6cbe7..ebf0d3527 100644 --- a/src/itemdef.h +++ b/src/itemdef.h @@ -56,6 +56,7 @@ struct ItemDefinition ItemType type; std::string name; // "" = hand std::string description; // Shown in tooltip. + std::string short_description; /* Visual properties diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 774b6a326..147f6e3ed 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -56,6 +56,7 @@ void read_item_definition(lua_State* L, int index, es_ItemType, ITEM_NONE); getstringfield(L, index, "name", def.name); getstringfield(L, index, "description", def.description); + getstringfield(L, index, "short_description", def.short_description); getstringfield(L, index, "inventory_image", def.inventory_image); getstringfield(L, index, "inventory_overlay", def.inventory_overlay); getstringfield(L, index, "wield_image", def.wield_image); @@ -142,6 +143,8 @@ void push_item_definition_full(lua_State *L, const ItemDefinition &i) lua_setfield(L, -2, "name"); lua_pushstring(L, i.description.c_str()); lua_setfield(L, -2, "description"); + lua_pushstring(L, i.short_description.c_str()); + lua_setfield(L, -2, "short_description"); lua_pushstring(L, type.c_str()); lua_setfield(L, -2, "type"); lua_pushstring(L, i.inventory_image.c_str()); diff --git a/src/script/lua_api/l_item.cpp b/src/script/lua_api/l_item.cpp index d67cab76f..2d1124a4d 100644 --- a/src/script/lua_api/l_item.cpp +++ b/src/script/lua_api/l_item.cpp @@ -193,6 +193,16 @@ int LuaItemStack::l_get_description(lua_State *L) return 1; } +// get_short_description(self) +int LuaItemStack::l_get_short_description(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + LuaItemStack *o = checkobject(L, 1); + std::string desc = o->m_stack.getShortDescription(getGameDef(L)->idef()); + lua_pushstring(L, desc.c_str()); + return 1; +} + // clear(self) -> true int LuaItemStack::l_clear(lua_State *L) { @@ -493,6 +503,7 @@ const luaL_Reg LuaItemStack::methods[] = { luamethod(LuaItemStack, get_metadata), luamethod(LuaItemStack, set_metadata), luamethod(LuaItemStack, get_description), + luamethod(LuaItemStack, get_short_description), luamethod(LuaItemStack, clear), luamethod(LuaItemStack, replace), luamethod(LuaItemStack, to_string), diff --git a/src/script/lua_api/l_item.h b/src/script/lua_api/l_item.h index 98744c071..16878c101 100644 --- a/src/script/lua_api/l_item.h +++ b/src/script/lua_api/l_item.h @@ -72,6 +72,9 @@ private: // get_description(self) static int l_get_description(lua_State *L); + // get_short_description(self) + static int l_get_short_description(lua_State *L); + // clear(self) -> true static int l_clear(lua_State *L); From c61c175e9c648b6e40b85c12940e9b91a52757d7 Mon Sep 17 00:00:00 2001 From: HybridDog <3192173+HybridDog@users.noreply.github.com> Date: Fri, 9 Oct 2020 20:13:42 +0200 Subject: [PATCH 224/624] Add bumpmapping and parallax occlusion testing nodes to devtest (#9242) --- games/devtest/mods/testnodes/mod.conf | 1 + games/devtest/mods/testnodes/textures.lua | 49 ++++++++++++++++++ .../textures/testnodes_height_pyramid.png | Bin 0 -> 90 bytes .../testnodes_height_pyramid_normal.png | Bin 0 -> 239 bytes .../textures/testnodes_parallax_extruded.png | Bin 0 -> 591 bytes .../testnodes_parallax_extruded_normal.png | Bin 0 -> 143 bytes 6 files changed, 50 insertions(+) create mode 100644 games/devtest/mods/testnodes/textures/testnodes_height_pyramid.png create mode 100644 games/devtest/mods/testnodes/textures/testnodes_height_pyramid_normal.png create mode 100644 games/devtest/mods/testnodes/textures/testnodes_parallax_extruded.png create mode 100644 games/devtest/mods/testnodes/textures/testnodes_parallax_extruded_normal.png diff --git a/games/devtest/mods/testnodes/mod.conf b/games/devtest/mods/testnodes/mod.conf index 4824c6ed0..d894c3452 100644 --- a/games/devtest/mods/testnodes/mod.conf +++ b/games/devtest/mods/testnodes/mod.conf @@ -1,2 +1,3 @@ name = testnodes description = Contains a bunch of basic example nodes for demonstrative purposes, development and testing +depends = stairs diff --git a/games/devtest/mods/testnodes/textures.lua b/games/devtest/mods/testnodes/textures.lua index 6ffef8fe9..e0724c229 100644 --- a/games/devtest/mods/testnodes/textures.lua +++ b/games/devtest/mods/testnodes/textures.lua @@ -71,3 +71,52 @@ for a=1,#alphas do groups = { dig_immediate = 3 }, }) end + + +-- Bumpmapping and Parallax Occlusion + +-- This node has a normal map which corresponds to a pyramid with sides tilted +-- by an angle of 45°, i.e. the normal map contains four vectors which point +-- diagonally away from the surface (e.g. (0.7, 0.7, 0)), +-- and the heights in the height map linearly increase towards the centre, +-- so that the surface corresponds to a simple pyramid. +-- The node can help to determine if e.g. tangent space transformations work +-- correctly. +-- If, for example, the light comes from above, then the (tilted) pyramids +-- should look like they're lit from this light direction on all node faces. +-- The white albedo texture has small black indicators which can be used to see +-- how it is transformed ingame (and thus see if there's rotation around the +-- normal vector). +minetest.register_node("testnodes:height_pyramid", { + description = "Bumpmapping and Parallax Occlusion Tester (height pyramid)", + tiles = {"testnodes_height_pyramid.png"}, + groups = {dig_immediate = 3}, +}) + +-- The stairs nodes should help to validate if shading works correctly for +-- rotated nodes (which have rotated textures). +stairs.register_stair_and_slab("height_pyramid", "experimantal:height_pyramid", + {dig_immediate = 3}, + {"testnodes_height_pyramid.png"}, + "Bumpmapping and Parallax Occlusion Tester Stair (height pyramid)", + "Bumpmapping and Parallax Occlusion Tester Slab (height pyramid)") + +-- This node has a simple heightmap for parallax occlusion testing and flat +-- normalmap. +-- When parallax occlusion is enabled, the yellow scrawl should stick out of +-- the texture when viewed at an angle. +minetest.register_node("testnodes:parallax_extruded", { + description = "Parallax Occlusion Tester", + tiles = {"testnodes_parallax_extruded.png"}, + groups = {dig_immediate = 3}, +}) + +-- Analogously to the height pyramid stairs nodes, +-- these nodes should help to validate if parallax occlusion works correctly for +-- rotated nodes (which have rotated textures). +stairs.register_stair_and_slab("parallax_extruded", + "experimantal:parallax_extruded", + {dig_immediate = 3}, + {"testnodes_parallax_extruded.png"}, + "Parallax Occlusion Tester Stair", + "Parallax Occlusion Tester Slab") diff --git a/games/devtest/mods/testnodes/textures/testnodes_height_pyramid.png b/games/devtest/mods/testnodes/textures/testnodes_height_pyramid.png new file mode 100644 index 0000000000000000000000000000000000000000..8c787b7401e1dd936e6e89bf132b9f187cf1d1b7 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx*Bp9q_EZ7UA6g^!WLnJOI|2h9-KBJ_8k%7S< l_h&{)D;%BznT9;_j11Q|ut~+NeZ2vs$~~oxG9vh=Ksi-Ja-z zF6Uhfc!H`Hh$XG#`4Y}!e@IZs$-&^{X6x;I|F{;~J-lZ8BChUq+zxrhT}cw zf(=X36e=`Ma6IrxXz>ro?Z~NPnl5~lZ`vBp9Wt6ci6>(Yr1}?dc^_lavu5(%utdDz m=BEv;-gb_^tyj-;{LVim+=bh?|GX^F2MnIBelF{r5}E+pj#X#? literal 0 HcmV?d00001 diff --git a/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded.png b/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded.png new file mode 100644 index 0000000000000000000000000000000000000000..7e1c323987597e8555e4a74bb637d4705dd2d88c GIT binary patch literal 591 zcmV-V0}3b3I7v6KL@mH@Gv0J4(+ zvY!gFpboR10JM`7w50>JnEaTizT*oMt54M&9ww4jLmKe5|6SkNDwwN2XnFF?&54M>YwwW5XngF(% z0k)bBwwn*OoB+0+0JfbNww?gCpB}cM1mNJ{;^N}t=;-R|>g((4 z?Ck9A?d|XH@AC5U^Yiod_4W4l_V@Sq`uh6&`}_X>{{R2~TWLV^0002qNkl^sfqHC|*%qp+DVE=OwVRQ){8H6qCzBsS8yv zPRFw}Lh#+euxuqHJ@M{BSj%s0U5{ImH6K%b5WcLPhH}i6bL6b*zS!G)=k53BV?k;A zhA%NScwb}y(Q7v+LYiT3v*4umb5tc)Ny6*)Do9HP*a)$tQh_ZQFmV{{z(k#HXqvCy dU*zKm`454QOBEGnk`Vv^002ovPDHLkV1i>NAjALw literal 0 HcmV?d00001 diff --git a/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded_normal.png b/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..b134699d0c82621f7ba10fcbf177f93a74ce7456 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9YeU0-AX089Hv)< Date: Sun, 11 Oct 2020 13:36:13 +0200 Subject: [PATCH 225/624] Add missing type check to InvRef:set_lists() (#10476) --- src/script/lua_api/l_inventory.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/script/lua_api/l_inventory.cpp b/src/script/lua_api/l_inventory.cpp index e41b5cb41..434d0a76c 100644 --- a/src/script/lua_api/l_inventory.cpp +++ b/src/script/lua_api/l_inventory.cpp @@ -280,6 +280,7 @@ int InvRef::l_set_lists(lua_State *L) Server *server = getServer(L); lua_pushnil(L); + luaL_checktype(L, 2, LUA_TTABLE); while (lua_next(L, 2)) { const char *listname = lua_tostring(L, -2); read_inventory_list(L, -1, tempInv, listname, server); From d6711025461b00d8c244b28d77abd09ccd7cd4b4 Mon Sep 17 00:00:00 2001 From: Paramat Date: Tue, 13 Oct 2020 00:52:53 +0100 Subject: [PATCH 226/624] Give unnamed world names incrementing numbers. Format 'world' (#10247) Code created with help from GitHub users sirrobzeroone and pauloue, thank you. --- builtin/mainmenu/dlg_create_world.lua | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/builtin/mainmenu/dlg_create_world.lua b/builtin/mainmenu/dlg_create_world.lua index b2e706b6b..7566d2409 100644 --- a/builtin/mainmenu/dlg_create_world.lua +++ b/builtin/mainmenu/dlg_create_world.lua @@ -363,10 +363,18 @@ local function create_world_buttonhandler(this, fields) local gameindex = core.get_textlist_index("games") if gameindex ~= nil then + -- For unnamed worlds use the generated name 'world', + -- where the number increments: it is set to 1 larger than the largest + -- generated name number found. if worldname == "" then - local random_number = math.random(10000, 99999) - local random_world_name = "Unnamed" .. random_number - worldname = random_world_name + local worldnum_max = 0 + for _, world in ipairs(menudata.worldlist:get_list()) do + if world.name:match("^world%d+$") then + local worldnum = tonumber(world.name:sub(6)) + worldnum_max = math.max(worldnum_max, worldnum) + end + end + worldname = "world" .. worldnum_max + 1 end core.settings:set("fixed_map_seed", fields["te_seed"]) From 11f3deb9c4512b918de8f5e778bc8b9535bd62c7 Mon Sep 17 00:00:00 2001 From: JosiahWI <41302989+JosiahWI@users.noreply.github.com> Date: Tue, 13 Oct 2020 10:36:01 -0500 Subject: [PATCH 227/624] Pass ContentFeatures as reference to read_content_features (#10464) --- src/script/common/c_content.cpp | 5 +---- src/script/common/c_content.h | 3 ++- src/script/lua_api/l_item.cpp | 3 ++- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 147f6e3ed..a95cf94a1 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -491,13 +491,11 @@ TileDef read_tiledef(lua_State *L, int index, u8 drawtype) } /******************************************************************************/ -ContentFeatures read_content_features(lua_State *L, int index) +void read_content_features(lua_State *L, ContentFeatures &f, int index) { if(index < 0) index = lua_gettop(L) + 1 + index; - ContentFeatures f; - /* Cache existence of some callbacks */ lua_getfield(L, index, "on_construct"); if(!lua_isnil(L, -1)) f.has_on_construct = true; @@ -800,7 +798,6 @@ ContentFeatures read_content_features(lua_State *L, int index) getstringfield(L, index, "node_dig_prediction", f.node_dig_prediction); - return f; } void push_content_features(lua_State *L, const ContentFeatures &c) diff --git a/src/script/common/c_content.h b/src/script/common/c_content.h index 8f32e58eb..29d576355 100644 --- a/src/script/common/c_content.h +++ b/src/script/common/c_content.h @@ -67,7 +67,8 @@ struct collisionMoveResult; extern struct EnumString es_TileAnimationType[]; -ContentFeatures read_content_features (lua_State *L, int index); +void read_content_features (lua_State *L, ContentFeatures &f, + int index); void push_content_features (lua_State *L, const ContentFeatures &c); diff --git a/src/script/lua_api/l_item.cpp b/src/script/lua_api/l_item.cpp index 2d1124a4d..9e0da4034 100644 --- a/src/script/lua_api/l_item.cpp +++ b/src/script/lua_api/l_item.cpp @@ -570,7 +570,8 @@ int ModApiItemMod::l_register_item_raw(lua_State *L) // Read the node definition (content features) and register it if (def.type == ITEM_NODE) { - ContentFeatures f = read_content_features(L, table); + ContentFeatures f; + read_content_features(L, f, table); // when a mod reregisters ignore, only texture changes and such should // be done if (f.name == "ignore") From 521a04222a71325ef217d1214febf5591919e169 Mon Sep 17 00:00:00 2001 From: Lars Date: Mon, 12 Oct 2020 19:47:04 -0700 Subject: [PATCH 228/624] Avoid drawing invisible blocks on the client. --- src/client/clientmap.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index 3124313e7..d372a8e46 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -124,12 +124,6 @@ void ClientMap::updateDrawList() v3f camera_position = m_camera_position; v3f camera_direction = m_camera_direction; - f32 camera_fov = m_camera_fov; - - // Use a higher fov to accomodate faster camera movements. - // Blocks are cropped better when they are drawn. - // Or maybe they aren't? Well whatever. - camera_fov *= 1.2; v3s16 cam_pos_nodes = floatToInt(camera_position, BS); v3s16 p_blocks_min; @@ -190,7 +184,7 @@ void ClientMap::updateDrawList() float d = 0.0; if (!isBlockInSight(block->getPos(), camera_position, - camera_direction, camera_fov, range, &d)) + camera_direction, m_camera_fov, range, &d)) continue; From 2341a4aff1242e978d6fad3772d4d4fb015c040d Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Tue, 13 Oct 2020 21:27:52 +0200 Subject: [PATCH 229/624] Add ObjectRef:get_children() (#10480) Co-authored-by: Zughy <4279489-marco_a@users.noreply.gitlab.com> --- doc/lua_api.txt | 2 ++ src/script/lua_api/l_object.cpp | 22 ++++++++++++++++++++++ src/script/lua_api/l_object.h | 3 +++ 3 files changed, 27 insertions(+) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index c8b294149..1631d564c 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6206,6 +6206,8 @@ object you are working with still exists. should appear in first person. * `get_attach()`: returns parent, bone, position, rotation, forced_visible, or nil if it isn't attached. +* `get_children()`: returns a list of ObjectRefs that are attached to the + object. * `set_detach()` * `set_bone_position(bone, position, rotation)` * `bone`: string diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 57ed7e2cd..96c8c687c 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -738,6 +738,27 @@ int ObjectRef::l_get_attach(lua_State *L) return 5; } +// get_children(self) +int ObjectRef::l_get_children(lua_State *L) +{ + GET_ENV_PTR; + + ObjectRef *ref = checkobject(L, 1); + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + const std::unordered_set child_ids = sao->getAttachmentChildIds(); + int i = 0; + lua_createtable(L, child_ids.size(), 0); + for (const int id : child_ids) { + ServerActiveObject *child = env->getActiveObject(id); + getScriptApiBase(L)->objectrefGetOrCreate(L, child); + lua_rawseti(L, -2, ++i); + } + return 1; +} + // set_detach(self) int ObjectRef::l_set_detach(lua_State *L) { @@ -2337,6 +2358,7 @@ luaL_Reg ObjectRef::methods[] = { luamethod(ObjectRef, get_bone_position), luamethod(ObjectRef, set_attach), luamethod(ObjectRef, get_attach), + luamethod(ObjectRef, get_children), luamethod(ObjectRef, set_detach), luamethod(ObjectRef, set_properties), luamethod(ObjectRef, get_properties), diff --git a/src/script/lua_api/l_object.h b/src/script/lua_api/l_object.h index ca03dfa2e..097a74cae 100644 --- a/src/script/lua_api/l_object.h +++ b/src/script/lua_api/l_object.h @@ -143,6 +143,9 @@ private: // get_attach(self) static int l_get_attach(lua_State *L); + // get_children(self) + static int l_get_children(lua_State *L); + // set_detach(self) static int l_set_detach(lua_State *L); From 05436fb551bb22b0a9c1d9f176a6891aa82d9cb2 Mon Sep 17 00:00:00 2001 From: Maksim Date: Sun, 24 May 2020 12:55:48 +0200 Subject: [PATCH 230/624] Android: get deps as a zip archive and sqlite3 from official source --- build/android/app/build.gradle | 2 +- build/android/build.gradle | 5 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- build/android/native/build.gradle | 63 +++++++++++++++---- 4 files changed, 57 insertions(+), 17 deletions(-) diff --git a/build/android/app/build.gradle b/build/android/app/build.gradle index e3619af17..8e87424b5 100644 --- a/build/android/app/build.gradle +++ b/build/android/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 buildToolsVersion '29.0.3' - ndkVersion '21.1.6352462' + ndkVersion '21.2.6472646' defaultConfig { applicationId 'net.minetest.minetest' minSdkVersion 16 diff --git a/build/android/build.gradle b/build/android/build.gradle index 8707b563c..4cde1c3d6 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -15,8 +15,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.3' - classpath 'org.ajoberstar.grgit:grgit-gradle:4.0.2' + classpath 'com.android.tools.build:gradle:4.0.0' + classpath 'de.undercouch:gradle-download-task:4.0.4' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -31,4 +31,5 @@ allprojects { task clean(type: Delete) { delete rootProject.buildDir + delete 'native/deps' } diff --git a/build/android/gradle/wrapper/gradle-wrapper.properties b/build/android/gradle/wrapper/gradle-wrapper.properties index d612cf333..59a00ebac 100644 --- a/build/android/gradle/wrapper/gradle-wrapper.properties +++ b/build/android/gradle/wrapper/gradle-wrapper.properties @@ -1,2 +1,2 @@ -#Mon Apr 06 00:06:16 CEST 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +#Fri Jun 05 19:18:07 CEST 2020 +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip diff --git a/build/android/native/build.gradle b/build/android/native/build.gradle index cbd50db6a..b072766b0 100644 --- a/build/android/native/build.gradle +++ b/build/android/native/build.gradle @@ -1,16 +1,16 @@ apply plugin: 'com.android.library' -import org.ajoberstar.grgit.Grgit +apply plugin: 'de.undercouch.download' android { compileSdkVersion 29 buildToolsVersion '29.0.3' - ndkVersion '21.1.6352462' + ndkVersion '21.2.6472646' defaultConfig { minSdkVersion 16 targetSdkVersion 29 externalNativeBuild { ndkBuild { - arguments '-j8', + arguments '-j' + Runtime.getRuntime().availableProcessors(), "versionMajor=${versionMajor}", "versionMinor=${versionMinor}", "versionPatch=${versionPatch}", @@ -45,15 +45,54 @@ android { } } -task cloneGitRepo() { - def destination = file('deps') - if(!destination.exists()) { - def grgit = Grgit.clone( - dir: destination, - uri: 'https://github.com/minetest/minetest_android_deps_binaries' - ) - grgit.close() +// get precompiled deps +def folder = 'minetest_android_deps_binaries' + +task downloadDeps(type: Download) { + src 'https://github.com/minetest/' + folder + '/archive/master.zip' + dest new File(buildDir, 'deps.zip') + overwrite false +} + +task getDeps(dependsOn: downloadDeps, type: Copy) { + def deps = file('deps') + def f = file("$buildDir/" + folder + "-master") + + if (!deps.exists() && !f.exists()) { + from zipTree(downloadDeps.dest) + into buildDir + } + + doLast { + if (!deps.exists()) { + file(f).renameTo(file(deps)) + } } } -preBuild.dependsOn cloneGitRepo +// get sqlite +def sqlite_ver = '3320200' +task downloadSqlite(dependsOn: getDeps, type: Download) { + src 'https://www.sqlite.org/2020/sqlite-amalgamation-' + sqlite_ver + '.zip' + dest new File(buildDir, 'sqlite.zip') + overwrite false +} + +task getSqlite(dependsOn: downloadSqlite, type: Copy) { + def sqlite = file('deps/Android/sqlite') + def f = file("$buildDir/sqlite-amalgamation-" + sqlite_ver) + + if (!sqlite.exists() && !f.exists()) { + from zipTree(downloadSqlite.dest) + into buildDir + } + + doLast { + if (!sqlite.exists()) { + file(f).renameTo(file(sqlite)) + } + } +} + +preBuild.dependsOn getDeps +preBuild.dependsOn getSqlite From e831ebd63bd8d173cc3ef10cb7d2ff2ed9f9090d Mon Sep 17 00:00:00 2001 From: Maksim Date: Sun, 24 May 2020 12:57:05 +0200 Subject: [PATCH 231/624] Android: add ci with saving artifacts --- .github/workflows/android.yml | 42 ++++++++++++++++++++++++++++++++++ build/android/app/build.gradle | 5 +++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/android.yml diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 000000000..0fcfe2390 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,42 @@ +name: android + +# build on c/cpp changes or workflow changes +on: + push: + paths: + - 'lib/**.[ch]' + - 'lib/**.cpp' + - 'src/**.[ch]' + - 'src/**.cpp' + - 'build/android/**' + - '.github/workflows/android.yml' + pull_request: + paths: + - 'lib/**.[ch]' + - 'lib/**.cpp' + - 'src/**.[ch]' + - 'src/**.cpp' + - 'build/android/**' + - '.github/workflows/android.yml' + +jobs: + build: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Build with Gradle + run: cd build/android; ./gradlew assemblerelease + - name: Save armeabi artifact + uses: actions/upload-artifact@v2 + with: + name: Minetest-armeabi-v7a.apk + path: build/android/app/build/outputs/apk/release/app-armeabi-v7a-release-unsigned.apk + - name: Save arm64 artifact + uses: actions/upload-artifact@v2 + with: + name: Minetest-arm64-v8a.apk + path: build/android/app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk diff --git a/build/android/app/build.gradle b/build/android/app/build.gradle index 8e87424b5..2c0a02b7f 100644 --- a/build/android/app/build.gradle +++ b/build/android/app/build.gradle @@ -11,8 +11,11 @@ android { versionCode project.versionCode } + // load properties Properties props = new Properties() - props.load(new FileInputStream(file('../local.properties'))) + def propfile = file('../local.properties') + if (propfile.exists()) + props.load(new FileInputStream(propfile)) if (props.getProperty('keystore') != null) { signingConfigs { From 2ca81d679f92ff1f0effccff5d3ee5672871324f Mon Sep 17 00:00:00 2001 From: Maksim Date: Mon, 7 Sep 2020 22:12:31 +0200 Subject: [PATCH 232/624] Android: update gradle, NDK and built tools version --- build/android/app/build.gradle | 6 +++--- build/android/build.gradle | 4 ++-- build/android/gradle/wrapper/gradle-wrapper.properties | 8 ++++++-- build/android/native/build.gradle | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/build/android/app/build.gradle b/build/android/app/build.gradle index 2c0a02b7f..812726030 100644 --- a/build/android/app/build.gradle +++ b/build/android/app/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 - buildToolsVersion '29.0.3' - ndkVersion '21.2.6472646' + buildToolsVersion '30.0.2' + ndkVersion '21.3.6528147' defaultConfig { applicationId 'net.minetest.minetest' minSdkVersion 16 @@ -110,5 +110,5 @@ android.applicationVariants.all { variant -> dependencies { implementation project(':native') - implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.appcompat:appcompat:1.2.0' } diff --git a/build/android/build.gradle b/build/android/build.gradle index 4cde1c3d6..111a506e1 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -15,8 +15,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.0' - classpath 'de.undercouch:gradle-download-task:4.0.4' + classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'de.undercouch:gradle-download-task:4.1.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/build/android/gradle/wrapper/gradle-wrapper.properties b/build/android/gradle/wrapper/gradle-wrapper.properties index 59a00ebac..ed85703f3 100644 --- a/build/android/gradle/wrapper/gradle-wrapper.properties +++ b/build/android/gradle/wrapper/gradle-wrapper.properties @@ -1,2 +1,6 @@ -#Fri Jun 05 19:18:07 CEST 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip +#Mon Sep 07 22:11:10 CEST 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip diff --git a/build/android/native/build.gradle b/build/android/native/build.gradle index b072766b0..69e1cf461 100644 --- a/build/android/native/build.gradle +++ b/build/android/native/build.gradle @@ -3,8 +3,8 @@ apply plugin: 'de.undercouch.download' android { compileSdkVersion 29 - buildToolsVersion '29.0.3' - ndkVersion '21.2.6472646' + buildToolsVersion '30.0.2' + ndkVersion '21.3.6528147' defaultConfig { minSdkVersion 16 targetSdkVersion 29 From 7499ebe46af072e911fa4902faf0a7343559d2c3 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Tue, 13 Oct 2020 21:28:53 +0200 Subject: [PATCH 233/624] Fix float argument check in minetest.set_timeofday() (#10483) Co-authored-by: Zughy <4279489-marco_a@users.noreply.gitlab.com> --- src/script/lua_api/l_env.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index 8d50d664d..021ef2ea7 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -751,8 +751,9 @@ int ModApiEnvMod::l_set_timeofday(lua_State *L) // Do it float timeofday_f = readParam(L, 1); - sanity_check(timeofday_f >= 0.0 && timeofday_f <= 1.0); - int timeofday_mh = (int)(timeofday_f * 24000.0); + luaL_argcheck(L, timeofday_f >= 0.0f && timeofday_f <= 1.0f, 1, + "value must be between 0 and 1"); + int timeofday_mh = (int)(timeofday_f * 24000.0f); // This should be set directly in the environment but currently // such changes aren't immediately sent to the clients, so call // the server instead. From fc2e120b03e65feb9ccfb92f9d3b68fda230bc7b Mon Sep 17 00:00:00 2001 From: Paramat Date: Tue, 13 Oct 2020 23:57:46 +0100 Subject: [PATCH 234/624] Document how to work with ClangFormat (#10468) To avoid the common misunderstanding where a contributor thinks they must apply the unsuitable formatting requests ClangFormat makes. --- .github/CONTRIBUTING.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b234fb283..e57ea9f83 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -43,6 +43,14 @@ Contributions are welcome! Here's how you can help: 4. The code's interfaces are well designed, regardless of other aspects that might need more work in the future. 5. It uses protocols and formats which include the required compatibility. +### Important note about automated GitHub checks + +When you submit a pull request, GitHub automatically runs checks on the Minetest Engine combined with your changes. One of these checks is called 'cpp lint / clang format', which checks code formatting. +Because formatting for readability requires human judgement this check often fails and often makes unsuitable formatting requests which make code readability worse. + +If this check fails, look at the details to check for any clear mistakes and correct those. However you should not apply everything ClangFormat requests, ignore requests that make code readability worse and any other clearly unsuitable requests. +Discuss with a core developer if in any doubt and for how to progress. + ## Issues If you experience an issue, we would like to know the details - especially when a stable release is on the way. From 2f871e3b49d87b0ae0e7b52f7ead6d3512727f0f Mon Sep 17 00:00:00 2001 From: Paramat Date: Tue, 13 Oct 2020 23:59:47 +0100 Subject: [PATCH 235/624] Devtest hand tool: Update capabilities, add creative mode capabilities (#10484) --- games/devtest/mods/basetools/init.lua | 60 ++++++++++++++++++++------- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/games/devtest/mods/basetools/init.lua b/games/devtest/mods/basetools/init.lua index e4a36ca46..bd7480030 100644 --- a/games/devtest/mods/basetools/init.lua +++ b/games/devtest/mods/basetools/init.lua @@ -6,7 +6,7 @@ Tool types: -* Hand: basic tool/weapon (just for convenience, not optimized for testing) +* Hand: basic tool/weapon (special capabilities in creative mode) * Pickaxe: dig cracky * Axe: dig choppy * Shovel: dig crumbly @@ -24,21 +24,49 @@ Tool materials: ]] -- The hand -minetest.register_item(":", { - type = "none", - wield_image = "wieldhand.png", - wield_scale = {x=1,y=1,z=2.5}, - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level = 0, - groupcaps = { - crumbly = {times={[3]=1.50}, uses=0, maxlevel=0}, - snappy = {times={[3]=1.50}, uses=0, maxlevel=0}, - oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=2.00}, uses=0, maxlevel=0}, - }, - damage_groups = {fleshy=1}, - } -}) +if minetest.settings:get_bool("creative_mode") then + local digtime = 42 + local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256} + + minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x = 1, y = 1, z = 2.5}, + range = 10, + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 3, + groupcaps = { + crumbly = caps, + cracky = caps, + snappy = caps, + choppy = caps, + oddly_breakable_by_hand = caps, + -- dig_immediate group doesn't use value 1. Value 3 is instant dig + dig_immediate = + {times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256}, + }, + damage_groups = {fleshy = 10}, + } + }) +else + minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x = 1, y = 1, z = 2.5}, + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + crumbly = {times = {[2] = 3.00, [3] = 0.70}, uses = 0, maxlevel = 1}, + snappy = {times = {[3] = 0.40}, uses = 0, maxlevel = 1}, + oddly_breakable_by_hand = + {times = {[1] = 3.50, [2] = 2.00, [3] = 0.70}, uses = 0} + }, + damage_groups = {fleshy = 1}, + } + }) +end -- Mese Pickaxe: special tool that digs "everything" instantly minetest.register_tool("basetools:pick_mese", { From f43d1cfa81aa496174af6cdfa648dab9dd17288c Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 13 Oct 2020 12:38:34 -0700 Subject: [PATCH 236/624] Rely on max_simultaneous_block_sends_per_client to limit blocks sent to the client. --- src/clientiface.cpp | 18 +----------------- src/clientiface.h | 1 - 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/src/clientiface.cpp b/src/clientiface.cpp index 28a0ee770..a01cba7e0 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -99,7 +99,6 @@ void RemoteClient::GetNextBlocks ( { // Increment timers m_nothing_to_send_pause_timer -= dtime; - m_nearest_unsent_reset_timer += dtime; if (m_nothing_to_send_pause_timer >= 0) return; @@ -154,14 +153,6 @@ void RemoteClient::GetNextBlocks ( /*infostream<<"m_nearest_unsent_reset_timer=" < 20.0f) { - m_nearest_unsent_reset_timer = 0.0f; - m_nearest_unsent_d = 0; - //infostream<<"Resetting m_nearest_unsent_d for " - // <getPlayerName(peer_id)< d_start + max_d_increment_at_time) - d_max = d_start + max_d_increment_at_time; - // cos(angle between velocity and camera) * |velocity| // Limit to 0.0f in case player moves backwards. f32 dot = rangelim(camera_dir.dotProduct(playerspeed), 0.0f, 300.0f); @@ -238,7 +222,7 @@ void RemoteClient::GetNextBlocks ( const v3s16 cam_pos_nodes = floatToInt(camera_pos, BS); s16 d; - for (d = d_start; d <= d_max; d++) { + for (d = d_start; d <= full_d_max; d++) { /* Get the border/face dot coordinates of a "d-radiused" box diff --git a/src/clientiface.h b/src/clientiface.h index 83fa6fe99..ca2af65fe 100644 --- a/src/clientiface.h +++ b/src/clientiface.h @@ -364,7 +364,6 @@ private: std::set m_blocks_sent; s16 m_nearest_unsent_d = 0; v3s16 m_last_center; - float m_nearest_unsent_reset_timer = 0.0f; const u16 m_max_simul_sends; const float m_min_time_from_building; From ed22260822086f84016aa8384c3174bfc6d1739d Mon Sep 17 00:00:00 2001 From: Lars Date: Mon, 12 Oct 2020 13:29:31 -0700 Subject: [PATCH 237/624] Remove all bump mapping and parallax occlusion related code. --- builtin/mainmenu/tab_settings.lua | 30 ++---- builtin/settingtypes.txt | 25 ----- .../shaders/nodes_shader/opengl_fragment.glsl | 99 ------------------- .../shaders/nodes_shader/opengl_vertex.glsl | 45 +-------- .../object_shader/opengl_fragment.glsl | 54 ---------- .../shaders/object_shader/opengl_vertex.glsl | 5 - doc/lua_api.txt | 40 +------- src/client/game.cpp | 10 +- src/client/mapblock_mesh.cpp | 41 ++------ src/client/mapblock_mesh.h | 5 +- src/client/mesh_generator_thread.cpp | 6 +- src/client/mesh_generator_thread.h | 1 - src/client/shader.cpp | 29 ------ src/client/wieldmesh.cpp | 2 +- src/defaultsettings.cpp | 6 -- src/nodedef.cpp | 9 -- src/nodedef.h | 1 - 17 files changed, 24 insertions(+), 384 deletions(-) diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua index 510346f8d..8a7445394 100644 --- a/builtin/mainmenu/tab_settings.lua +++ b/builtin/mainmenu/tab_settings.lua @@ -187,31 +187,23 @@ local function formspec(tabview, name, tabdata) if shaders_enabled then tab_string = tab_string .. - "checkbox[8.25,0.5;cb_bumpmapping;" .. fgettext("Bump Mapping") .. ";" - .. dump(core.settings:get_bool("enable_bumpmapping")) .. "]" .. - "checkbox[8.25,1;cb_tonemapping;" .. fgettext("Tone Mapping") .. ";" + "checkbox[8.25,0.5;cb_tonemapping;" .. fgettext("Tone Mapping") .. ";" .. dump(core.settings:get_bool("tone_mapping")) .. "]" .. - "checkbox[8.25,1.5;cb_parallax;" .. fgettext("Parallax Occlusion") .. ";" - .. dump(core.settings:get_bool("enable_parallax_occlusion")) .. "]" .. - "checkbox[8.25,2;cb_waving_water;" .. fgettext("Waving Liquids") .. ";" + "checkbox[8.25,1;cb_waving_water;" .. fgettext("Waving Liquids") .. ";" .. dump(core.settings:get_bool("enable_waving_water")) .. "]" .. - "checkbox[8.25,2.5;cb_waving_leaves;" .. fgettext("Waving Leaves") .. ";" + "checkbox[8.25,1.5;cb_waving_leaves;" .. fgettext("Waving Leaves") .. ";" .. dump(core.settings:get_bool("enable_waving_leaves")) .. "]" .. - "checkbox[8.25,3;cb_waving_plants;" .. fgettext("Waving Plants") .. ";" + "checkbox[8.25,2;cb_waving_plants;" .. fgettext("Waving Plants") .. ";" .. dump(core.settings:get_bool("enable_waving_plants")) .. "]" else tab_string = tab_string .. "label[8.38,0.7;" .. core.colorize("#888888", - fgettext("Bump Mapping")) .. "]" .. - "label[8.38,1.2;" .. core.colorize("#888888", fgettext("Tone Mapping")) .. "]" .. - "label[8.38,1.7;" .. core.colorize("#888888", - fgettext("Parallax Occlusion")) .. "]" .. - "label[8.38,2.2;" .. core.colorize("#888888", + "label[8.38,1.2;" .. core.colorize("#888888", fgettext("Waving Liquids")) .. "]" .. - "label[8.38,2.7;" .. core.colorize("#888888", + "label[8.38,1.7;" .. core.colorize("#888888", fgettext("Waving Leaves")) .. "]" .. - "label[8.38,3.2;" .. core.colorize("#888888", + "label[8.38,2.2;" .. core.colorize("#888888", fgettext("Waving Plants")) .. "]" end @@ -263,18 +255,10 @@ local function handle_settings_buttons(this, fields, tabname, tabdata) end return true end - if fields["cb_bumpmapping"] then - core.settings:set("enable_bumpmapping", fields["cb_bumpmapping"]) - return true - end if fields["cb_tonemapping"] then core.settings:set("tone_mapping", fields["cb_tonemapping"]) return true end - if fields["cb_parallax"] then - core.settings:set("enable_parallax_occlusion", fields["cb_parallax"]) - return true - end if fields["cb_waving_water"] then core.settings:set("enable_waving_water", fields["cb_waving_water"]) return true diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 1c28470d5..27f375693 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -546,31 +546,6 @@ shader_path (Shader path) path # enhanced, highlights and shadows are gradually compressed. tone_mapping (Filmic tone mapping) bool false -[***Bumpmapping] - -# Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack. -# Requires shaders to be enabled. -enable_bumpmapping (Bumpmapping) bool false - -[***Parallax Occlusion] - -# Enables parallax occlusion mapping. -# Requires shaders to be enabled. -enable_parallax_occlusion (Parallax occlusion) bool false - -# 0 = parallax occlusion with slope information (faster). -# 1 = relief mapping (slower, more accurate). -parallax_occlusion_mode (Parallax occlusion mode) int 1 0 1 - -# Number of parallax occlusion iterations. -parallax_occlusion_iterations (Parallax occlusion iterations) int 4 - -# Overall scale of parallax occlusion effect. -parallax_occlusion_scale (Parallax occlusion scale) float 0.08 - -# Overall bias of parallax occlusion effect, usually scale/2. -parallax_occlusion_bias (Parallax occlusion bias) float 0.04 - [***Waving Nodes] # Set to true to enable waving liquids (like water). diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl index 437b325d3..36d47d1f5 100644 --- a/client/shaders/nodes_shader/opengl_fragment.glsl +++ b/client/shaders/nodes_shader/opengl_fragment.glsl @@ -1,6 +1,4 @@ uniform sampler2D baseTexture; -uniform sampler2D normalTexture; -uniform sampler2D textureFlags; uniform vec4 skyBgColor; uniform float fogDistance; @@ -17,17 +15,9 @@ varying vec3 vPosition; // cameraOffset + worldPosition (for large coordinates the limits of float // precision must be considered). varying vec3 worldPosition; -varying float area_enable_parallax; varying vec3 eyeVec; -varying vec3 tsEyeVec; -varying vec3 lightVec; -varying vec3 tsLightVec; -bool normalTexturePresent = false; - -const float e = 2.718281828459; -const float BS = 10.0; const float fogStart = FOG_START; const float fogShadingParameter = 1 / ( 1 - fogStart); @@ -63,87 +53,10 @@ vec4 applyToneMapping(vec4 color) } #endif -void get_texture_flags() -{ - vec4 flags = texture2D(textureFlags, vec2(0.0, 0.0)); - if (flags.r > 0.5) { - normalTexturePresent = true; - } -} - -vec4 get_normal_map(vec2 uv) -{ - vec4 bump = texture2D(normalTexture, uv).rgba; - bump.xyz = normalize(bump.xyz * 2.0 - 1.0); - return bump; -} - -float find_intersection(vec2 dp, vec2 ds) -{ - float depth = 1.0; - float best_depth = 0.0; - float size = 0.0625; - for (int i = 0; i < 15; i++) { - depth -= size; - float h = texture2D(normalTexture, dp + ds * depth).a; - if (depth <= h) { - best_depth = depth; - break; - } - } - depth = best_depth; - for (int i = 0; i < 4; i++) { - size *= 0.5; - float h = texture2D(normalTexture,dp + ds * depth).a; - if (depth <= h) { - best_depth = depth; - depth += size; - } else { - depth -= size; - } - } - return best_depth; -} - void main(void) { vec3 color; - vec4 bump; vec2 uv = gl_TexCoord[0].st; - bool use_normalmap = false; - get_texture_flags(); - -#ifdef ENABLE_PARALLAX_OCCLUSION - vec2 eyeRay = vec2 (tsEyeVec.x, -tsEyeVec.y); - const float scale = PARALLAX_OCCLUSION_SCALE / PARALLAX_OCCLUSION_ITERATIONS; - const float bias = PARALLAX_OCCLUSION_BIAS / PARALLAX_OCCLUSION_ITERATIONS; - -#if PARALLAX_OCCLUSION_MODE == 0 - // Parallax occlusion with slope information - if (normalTexturePresent && area_enable_parallax > 0.0) { - for (int i = 0; i < PARALLAX_OCCLUSION_ITERATIONS; i++) { - vec4 normal = texture2D(normalTexture, uv.xy); - float h = normal.a * scale - bias; - uv += h * normal.z * eyeRay; - } - } -#endif -#if PARALLAX_OCCLUSION_MODE == 1 - // Relief mapping - if (normalTexturePresent && area_enable_parallax > 0.0) { - vec2 ds = eyeRay * PARALLAX_OCCLUSION_SCALE; - float dist = find_intersection(uv, ds); - uv += dist * ds; - } -#endif -#endif - -#if USE_NORMALMAPS == 1 - if (normalTexturePresent) { - bump = get_normal_map(uv); - use_normalmap = true; - } -#endif vec4 base = texture2D(baseTexture, uv).rgba; @@ -155,19 +68,7 @@ void main(void) } #endif -#ifdef ENABLE_BUMPMAPPING - if (use_normalmap) { - vec3 L = normalize(lightVec); - vec3 E = normalize(eyeVec); - float specular = pow(clamp(dot(reflect(L, bump.xyz), E), 0.0, 1.0), 1.0); - float diffuse = dot(-E,bump.xyz); - color = (diffuse + 0.1 * specular) * base.rgb; - } else { - color = base.rgb; - } -#else color = base.rgb; -#endif vec4 col = vec4(color.rgb * gl_Color.rgb, 1.0); diff --git a/client/shaders/nodes_shader/opengl_vertex.glsl b/client/shaders/nodes_shader/opengl_vertex.glsl index 0d8d0a2a5..56bff09a8 100644 --- a/client/shaders/nodes_shader/opengl_vertex.glsl +++ b/client/shaders/nodes_shader/opengl_vertex.glsl @@ -18,10 +18,6 @@ varying vec3 vPosition; varying vec3 worldPosition; varying vec3 eyeVec; -varying vec3 lightVec; -varying vec3 tsEyeVec; -varying vec3 tsLightVec; -varying float area_enable_parallax; // Color of the light emitted by the light sources. const vec3 artificialLight = vec3(1.04, 1.04, 1.04); @@ -86,21 +82,9 @@ float snoise(vec3 p) void main(void) { gl_TexCoord[0] = gl_MultiTexCoord0; - //TODO: make offset depending on view angle and parallax uv displacement - //thats for textures that doesnt align vertically, like dirt with grass - //gl_TexCoord[0].y += 0.008; - //Allow parallax/relief mapping only for certain kind of nodes - //Variable is also used to control area of the effect -#if (DRAW_TYPE == NDT_NORMAL || DRAW_TYPE == NDT_LIQUID || DRAW_TYPE == NDT_FLOWINGLIQUID) - area_enable_parallax = 1.0; -#else - area_enable_parallax = 0.0; -#endif - - -float disp_x; -float disp_z; + float disp_x; + float disp_z; // OpenGL < 4.3 does not support continued preprocessor lines #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES && ENABLE_WAVING_LEAVES) || (MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS) vec4 pos2 = mWorld * gl_Vertex; @@ -148,32 +132,7 @@ float disp_z; vPosition = gl_Position.xyz; - // Don't generate heightmaps when too far from the eye - float dist = distance (vec3(0.0, 0.0, 0.0), vPosition); - if (dist > 150.0) { - area_enable_parallax = 0.0; - } - - vec3 sunPosition = vec3 (0.0, eyePosition.y * BS + 900.0, 0.0); - - vec3 normal, tangent, binormal; - normal = normalize(gl_NormalMatrix * gl_Normal); - tangent = normalize(gl_NormalMatrix * gl_MultiTexCoord1.xyz); - binormal = normalize(gl_NormalMatrix * gl_MultiTexCoord2.xyz); - - vec3 v; - - lightVec = sunPosition - worldPosition; - v.x = dot(lightVec, tangent); - v.y = dot(lightVec, binormal); - v.z = dot(lightVec, normal); - tsLightVec = normalize (v); - eyeVec = -(gl_ModelViewMatrix * gl_Vertex).xyz; - v.x = dot(eyeVec, tangent); - v.y = dot(eyeVec, binormal); - v.z = dot(eyeVec, normal); - tsEyeVec = normalize (v); // Calculate color. // Red, green and blue components are pre-multiplied with diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl index a8a43e1e2..86d5c1c92 100644 --- a/client/shaders/object_shader/opengl_fragment.glsl +++ b/client/shaders/object_shader/opengl_fragment.glsl @@ -1,6 +1,4 @@ uniform sampler2D baseTexture; -uniform sampler2D normalTexture; -uniform sampler2D textureFlags; uniform vec4 emissiveColor; uniform vec4 skyBgColor; @@ -12,14 +10,8 @@ varying vec3 vPosition; varying vec3 worldPosition; varying vec3 eyeVec; -varying vec3 lightVec; varying float vIDiff; -bool normalTexturePresent = false; -bool texTileableHorizontal = false; -bool texTileableVertical = false; -bool texSeamless = false; - const float e = 2.718281828459; const float BS = 10.0; const float fogStart = FOG_START; @@ -57,44 +49,10 @@ vec4 applyToneMapping(vec4 color) } #endif -void get_texture_flags() -{ - vec4 flags = texture2D(textureFlags, vec2(0.0, 0.0)); - if (flags.r > 0.5) { - normalTexturePresent = true; - } - if (flags.g > 0.5) { - texTileableHorizontal = true; - } - if (flags.b > 0.5) { - texTileableVertical = true; - } - if (texTileableHorizontal && texTileableVertical) { - texSeamless = true; - } -} - -vec4 get_normal_map(vec2 uv) -{ - vec4 bump = texture2D(normalTexture, uv).rgba; - bump.xyz = normalize(bump.xyz * 2.0 - 1.0); - return bump; -} - void main(void) { vec3 color; - vec4 bump; vec2 uv = gl_TexCoord[0].st; - bool use_normalmap = false; - get_texture_flags(); - -#if USE_NORMALMAPS == 1 - if (normalTexturePresent) { - bump = get_normal_map(uv); - use_normalmap = true; - } -#endif vec4 base = texture2D(baseTexture, uv).rgba; @@ -106,19 +64,7 @@ void main(void) } #endif -#ifdef ENABLE_BUMPMAPPING - if (use_normalmap) { - vec3 L = normalize(lightVec); - vec3 E = normalize(eyeVec); - float specular = pow(clamp(dot(reflect(L, bump.xyz), E), 0.0, 1.0), 1.0); - float diffuse = dot(-E,bump.xyz); - color = (diffuse + 0.1 * specular) * base.rgb; - } else { - color = base.rgb; - } -#else color = base.rgb; -#endif vec4 col = vec4(color.rgb, base.a); diff --git a/client/shaders/object_shader/opengl_vertex.glsl b/client/shaders/object_shader/opengl_vertex.glsl index 968a07e22..f8c1cd932 100644 --- a/client/shaders/object_shader/opengl_vertex.glsl +++ b/client/shaders/object_shader/opengl_vertex.glsl @@ -9,7 +9,6 @@ varying vec3 vPosition; varying vec3 worldPosition; varying vec3 eyeVec; -varying vec3 lightVec; varying float vIDiff; const float e = 2.718281828459; @@ -33,10 +32,6 @@ void main(void) vPosition = gl_Position.xyz; vNormal = gl_Normal; worldPosition = (mWorld * gl_Vertex).xyz; - - vec3 sunPosition = vec3 (0.0, eyePosition.y * BS + 900.0, 0.0); - - lightVec = sunPosition - worldPosition; eyeVec = -(gl_ModelViewMatrix * gl_Vertex).xyz; #if (MATERIAL_TYPE == TILE_MATERIAL_PLAIN) || (MATERIAL_TYPE == TILE_MATERIAL_PLAIN_ALPHA) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 1631d564c..d3aaa309c 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -401,35 +401,6 @@ stripping out the file extension: * e.g. `foomod_foothing` -Normalmap Textures ------------------- - -If shaders and bumpmapping or parallax occlusion is enabled, Minetest tries -to load normalmaps. -Those image files have to end with `_normal.png` and start with the same name -as their corresponding texture. -For example a normalmap for `foomod_foothing.png` has to be called -`foomod_foothing_normal.png`. - -The sRGB R, G and B colour values of a normalmap pixel are each directly -mapped from `{0, ..., 255}` to `[-1, 1]` and, taken together, -define the normal vector. -The alpha channel defines the heightmap for parallax occlusion. -To be safe, the alpha values should always be bigger than zero -because the colour values, which define the normal vector, -may be undefined for image formats where colour is discarded in fully -transparent pixels. - -Bumpmapping and parallax occlusion are currently experimental features: - -* Bumpmapping in Minetest happens in an obscure way; there are no light sources - defined in the shaders except the sunlight direction. -* Parallax occlusion with relief-mapping mode does not yet work correctly - together with Minetest's Fastfaces. -* The normalmap files must end with `.png`, so other image files are not - supported. - - Texture modifiers ----------------- @@ -834,7 +805,7 @@ Example (colored grass block): -- Overlay tiles: define them in the same style -- The top and bottom tile does not have overlay overlay_tiles = {"", "", - {name = "default_grass_side.png", tileable_vertical = false}}, + {name = "default_grass_side.png"}}, -- Global color, used in inventory color = "green", -- Palette in the world @@ -1204,7 +1175,7 @@ Look for examples in `games/devtest` or `games/minetest_game`. base cube without affecting them. * The base cube texture tiles are defined as normal, the `plantlike` extension uses the defined special tile, for example: - `special_tiles = {{name = "default_papyrus.png", tileable_vertical = true}},` + `special_tiles = {{name = "default_papyrus.png"}},` `*_optional` drawtypes need less rendering time if deactivated (always client-side). @@ -7043,13 +7014,8 @@ Tile definition * `"image.png"` * `{name="image.png", animation={Tile Animation definition}}` -* `{name="image.png", backface_culling=bool, tileable_vertical=bool, - tileable_horizontal=bool, align_style="node"/"world"/"user", scale=int}` +* `{name="image.png", backface_culling=bool, align_style="node"/"world"/"user", scale=int}` * backface culling enabled by default for most nodes - * tileable flags are info for shaders, how they should treat texture - when displacement mapping is used. - Directions are from the point of view of the tile texture, - not the node it's on. * align style determines whether the texture will be rotated with the node or kept aligned with its surroundings. "user" means that client setting will be used, similar to `glasslike_framed_optional`. diff --git a/src/client/game.cpp b/src/client/game.cpp index 54e0c9f20..309a8e194 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -430,8 +430,6 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter CachedPixelShaderSetting m_camera_offset_pixel; CachedPixelShaderSetting m_camera_offset_vertex; CachedPixelShaderSetting m_base_texture; - CachedPixelShaderSetting m_normal_texture; - CachedPixelShaderSetting m_texture_flags; Client *m_client; public: @@ -464,8 +462,6 @@ public: m_camera_offset_pixel("cameraOffset"), m_camera_offset_vertex("cameraOffset"), m_base_texture("baseTexture"), - m_normal_texture("normalTexture"), - m_texture_flags("textureFlags"), m_client(client) { g_settings->registerChangedCallback("enable_fog", settingsCallback, this); @@ -553,12 +549,8 @@ public: m_camera_offset_pixel.set(camera_offset_array, services); m_camera_offset_vertex.set(camera_offset_array, services); - SamplerLayer_t base_tex = 0, - normal_tex = 1, - flags_tex = 2; + SamplerLayer_t base_tex = 0; m_base_texture.set(&base_tex, services); - m_normal_texture.set(&normal_tex, services); - m_texture_flags.set(&flags_tex, services); } }; diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index c7790f1e4..6a59fabe3 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -35,11 +35,9 @@ with this program; if not, write to the Free Software Foundation, Inc., MeshMakeData */ -MeshMakeData::MeshMakeData(Client *client, bool use_shaders, - bool use_tangent_vertices): +MeshMakeData::MeshMakeData(Client *client, bool use_shaders): m_client(client), - m_use_shaders(use_shaders), - m_use_tangent_vertices(use_tangent_vertices) + m_use_shaders(use_shaders) {} void MeshMakeData::fillBlockDataBegin(const v3s16 &blockpos) @@ -1016,7 +1014,6 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): for (auto &m : m_mesh) m = new scene::SMesh(); m_enable_shaders = data->m_use_shaders; - m_use_tangent_vertices = data->m_use_tangent_vertices; m_enable_vbo = g_settings->getBool("enable_vbo"); if (data->m_client->getMinimap()) { @@ -1170,28 +1167,12 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): scene::SMesh *mesh = (scene::SMesh *)m_mesh[layer]; - // Create meshbuffer, add to mesh - if (m_use_tangent_vertices) { - scene::SMeshBufferTangents *buf = - new scene::SMeshBufferTangents(); - buf->Material = material; - buf->Vertices.reallocate(p.vertices.size()); - buf->Indices.reallocate(p.indices.size()); - for (const video::S3DVertex &v: p.vertices) - buf->Vertices.push_back(video::S3DVertexTangents(v.Pos, v.Color, v.TCoords)); - for (u16 i: p.indices) - buf->Indices.push_back(i); - buf->recalculateBoundingBox(); - mesh->addMeshBuffer(buf); - buf->drop(); - } else { - scene::SMeshBuffer *buf = new scene::SMeshBuffer(); - buf->Material = material; - buf->append(&p.vertices[0], p.vertices.size(), - &p.indices[0], p.indices.size()); - mesh->addMeshBuffer(buf); - buf->drop(); - } + scene::SMeshBuffer *buf = new scene::SMeshBuffer(); + buf->Material = material; + buf->append(&p.vertices[0], p.vertices.size(), + &p.indices[0], p.indices.size()); + mesh->addMeshBuffer(buf); + buf->drop(); } /* @@ -1201,12 +1182,6 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): translateMesh(m_mesh[layer], intToFloat(data->m_blockpos * MAP_BLOCKSIZE - camera_offset, BS)); - if (m_use_tangent_vertices) { - scene::IMeshManipulator* meshmanip = - RenderingEngine::get_scene_manager()->getMeshManipulator(); - meshmanip->recalculateTangents(m_mesh[layer], true, false, false); - } - if (m_mesh[layer]) { #if 0 // Usually 1-700 faces and 1-7 materials diff --git a/src/client/mapblock_mesh.h b/src/client/mapblock_mesh.h index f8aed40dc..6a9c00ed5 100644 --- a/src/client/mapblock_mesh.h +++ b/src/client/mapblock_mesh.h @@ -45,10 +45,8 @@ struct MeshMakeData Client *m_client; bool m_use_shaders; - bool m_use_tangent_vertices; - MeshMakeData(Client *client, bool use_shaders, - bool use_tangent_vertices = false); + MeshMakeData(Client *client, bool use_shaders); /* Copy block data manually (to allow optimizations by the caller) @@ -136,7 +134,6 @@ private: IShaderSource *m_shdrsrc; bool m_enable_shaders; - bool m_use_tangent_vertices; bool m_enable_vbo; // Must animate() be called before rendering? diff --git a/src/client/mesh_generator_thread.cpp b/src/client/mesh_generator_thread.cpp index 53b980eeb..c8d1cba26 100644 --- a/src/client/mesh_generator_thread.cpp +++ b/src/client/mesh_generator_thread.cpp @@ -52,9 +52,6 @@ MeshUpdateQueue::MeshUpdateQueue(Client *client): m_client(client) { m_cache_enable_shaders = g_settings->getBool("enable_shaders"); - m_cache_use_tangent_vertices = m_cache_enable_shaders && ( - g_settings->getBool("enable_bumpmapping") || - g_settings->getBool("enable_parallax_occlusion")); m_cache_smooth_lighting = g_settings->getBool("smooth_lighting"); m_meshgen_block_cache_size = g_settings->getS32("meshgen_block_cache_size"); } @@ -207,8 +204,7 @@ CachedMapBlockData* MeshUpdateQueue::getCachedBlock(const v3s16 &p) void MeshUpdateQueue::fillDataFromMapBlockCache(QueuedMeshUpdate *q) { - MeshMakeData *data = new MeshMakeData(m_client, m_cache_enable_shaders, - m_cache_use_tangent_vertices); + MeshMakeData *data = new MeshMakeData(m_client, m_cache_enable_shaders); q->data = data; data->fillBlockDataBegin(q->p); diff --git a/src/client/mesh_generator_thread.h b/src/client/mesh_generator_thread.h index 9a42852a3..f3c5e7da8 100644 --- a/src/client/mesh_generator_thread.h +++ b/src/client/mesh_generator_thread.h @@ -88,7 +88,6 @@ private: // TODO: Add callback to update these when g_settings changes bool m_cache_enable_shaders; - bool m_cache_use_tangent_vertices; bool m_cache_smooth_lighting; int m_meshgen_block_cache_size; diff --git a/src/client/shader.cpp b/src/client/shader.cpp index c5fe5dfe0..e2eeb4ab0 100644 --- a/src/client/shader.cpp +++ b/src/client/shader.cpp @@ -688,35 +688,6 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp shaders_header += itos(drawtype); shaders_header += "\n"; - if (g_settings->getBool("enable_bumpmapping")) - shaders_header += "#define ENABLE_BUMPMAPPING\n"; - - if (g_settings->getBool("enable_parallax_occlusion")){ - int mode = g_settings->getFloat("parallax_occlusion_mode"); - float scale = g_settings->getFloat("parallax_occlusion_scale"); - float bias = g_settings->getFloat("parallax_occlusion_bias"); - int iterations = g_settings->getFloat("parallax_occlusion_iterations"); - shaders_header += "#define ENABLE_PARALLAX_OCCLUSION\n"; - shaders_header += "#define PARALLAX_OCCLUSION_MODE "; - shaders_header += itos(mode); - shaders_header += "\n"; - shaders_header += "#define PARALLAX_OCCLUSION_SCALE "; - shaders_header += ftos(scale); - shaders_header += "\n"; - shaders_header += "#define PARALLAX_OCCLUSION_BIAS "; - shaders_header += ftos(bias); - shaders_header += "\n"; - shaders_header += "#define PARALLAX_OCCLUSION_ITERATIONS "; - shaders_header += itos(iterations); - shaders_header += "\n"; - } - - shaders_header += "#define USE_NORMALMAPS "; - if (g_settings->getBool("enable_bumpmapping") || g_settings->getBool("enable_parallax_occlusion")) - shaders_header += "1\n"; - else - shaders_header += "0\n"; - if (g_settings->getBool("enable_waving_water")){ shaders_header += "#define ENABLE_WAVING_WATER 1\n"; shaders_header += "#define WATER_WAVE_HEIGHT "; diff --git a/src/client/wieldmesh.cpp b/src/client/wieldmesh.cpp index 285cc38e5..ad583210a 100644 --- a/src/client/wieldmesh.cpp +++ b/src/client/wieldmesh.cpp @@ -305,7 +305,7 @@ void WieldMeshSceneNode::setExtruded(const std::string &imagename, scene::SMesh *createSpecialNodeMesh(Client *client, content_t id, std::vector *colors, const ContentFeatures &f) { - MeshMakeData mesh_make_data(client, false, false); + MeshMakeData mesh_make_data(client, false); MeshCollector collector; mesh_make_data.setSmoothLighting(false); MapblockMeshGenerator gen(&mesh_make_data, &collector); diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 8f5ed3e17..6c7d4be97 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -251,12 +251,6 @@ void set_default_settings(Settings *settings) settings->setDefault("bilinear_filter", "false"); settings->setDefault("trilinear_filter", "false"); settings->setDefault("tone_mapping", "false"); - settings->setDefault("enable_bumpmapping", "false"); - settings->setDefault("enable_parallax_occlusion", "false"); - settings->setDefault("parallax_occlusion_mode", "1"); - settings->setDefault("parallax_occlusion_iterations", "4"); - settings->setDefault("parallax_occlusion_scale", "0.08"); - settings->setDefault("parallax_occlusion_bias", "0.04"); settings->setDefault("enable_waving_water", "false"); settings->setDefault("water_wave_height", "1.0"); settings->setDefault("water_wave_length", "20.0"); diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 3a5934cf3..5c2e5cd09 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -266,9 +266,6 @@ void TextureSettings::readSettings() { connected_glass = g_settings->getBool("connected_glass"); opaque_water = g_settings->getBool("opaque_water"); - bool enable_shaders = g_settings->getBool("enable_shaders"); - bool enable_bumpmapping = g_settings->getBool("enable_bumpmapping"); - bool enable_parallax_occlusion = g_settings->getBool("enable_parallax_occlusion"); bool smooth_lighting = g_settings->getBool("smooth_lighting"); enable_mesh_cache = g_settings->getBool("enable_mesh_cache"); enable_minimap = g_settings->getBool("enable_minimap"); @@ -281,8 +278,6 @@ void TextureSettings::readSettings() if (smooth_lighting) enable_mesh_cache = false; - use_normal_texture = enable_shaders && - (enable_bumpmapping || enable_parallax_occlusion); if (leaves_style_str == "fancy") { leaves_style = LEAVES_FANCY; } else if (leaves_style_str == "simple") { @@ -635,10 +630,6 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer, if (!tile.world_aligned) layer->scale = 1; - // Normal texture and shader flags texture - if (tsettings.use_normal_texture) { - layer->normal_texture = tsrc->getNormalTexture(tiledef.name); - } layer->flags_texture = tsrc->getShaderFlagsTexture(layer->normal_texture ? true : false); // Material flags diff --git a/src/nodedef.h b/src/nodedef.h index 71c56bda9..66c21cc07 100644 --- a/src/nodedef.h +++ b/src/nodedef.h @@ -158,7 +158,6 @@ public: int node_texture_size; bool opaque_water; bool connected_glass; - bool use_normal_texture; bool enable_mesh_cache; bool enable_minimap; From 738f62421872c0be5fcd483ad4573e5d879e7418 Mon Sep 17 00:00:00 2001 From: Lars Date: Thu, 15 Oct 2020 00:06:37 -0700 Subject: [PATCH 238/624] Periodically release all mesh HW buffers to avoid an Irrlicht bottleneck. --- src/client/game.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/client/game.cpp b/src/client/game.cpp index 309a8e194..a7e367ae2 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -909,6 +909,7 @@ private: bool m_does_lost_focus_pause_game = false; + int m_reset_HW_buffer_counter = 0; #ifdef __ANDROID__ bool m_cache_hold_aux1; bool m_android_chat_open; @@ -3686,7 +3687,6 @@ void Game::handleDigging(const PointedThing &pointed, const v3s16 &nodepos, camera->setDigging(0); // Dig animation } - void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime, const CameraOrientation &cam) { @@ -3937,6 +3937,27 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime, /* End scene */ + if (++m_reset_HW_buffer_counter > 500) { + /* + Periodically remove all mesh HW buffers. + + Work around for a quirk in Irrlicht where a HW buffer is only + released after 20000 iterations (triggered from endScene()). + + Without this, all loaded but unused meshes will retain their HW + buffers for at least 5 minutes, at which point looking up the HW buffers + becomes a bottleneck and the framerate drops (as much as 30%). + + Tests showed that numbers between 50 and 1000 are good, so picked 500. + There are no other public Irrlicht APIs that allow interacting with the + HW buffers without tracking the status of every individual mesh. + + The HW buffers for _visible_ meshes will be reinitialized in the next frame. + */ + infostream << "Game::updateFrame(): Removing all HW buffers." << std::endl; + driver->removeAllHardwareBuffers(); + m_reset_HW_buffer_counter = 0; + } driver->endScene(); stats->drawtime = tt_draw.stop(true); From db9eee2d80cc2a35bd133473d131f321dc4600c3 Mon Sep 17 00:00:00 2001 From: Paramat Date: Sun, 18 Oct 2020 22:50:31 +0100 Subject: [PATCH 239/624] Contributing doc: Minor improvements and a clarification (#10520) --- .github/CONTRIBUTING.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index e57ea9f83..b01a89509 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -45,11 +45,9 @@ Contributions are welcome! Here's how you can help: ### Important note about automated GitHub checks -When you submit a pull request, GitHub automatically runs checks on the Minetest Engine combined with your changes. One of these checks is called 'cpp lint / clang format', which checks code formatting. -Because formatting for readability requires human judgement this check often fails and often makes unsuitable formatting requests which make code readability worse. +When you submit a pull request, GitHub automatically runs checks on the Minetest Engine combined with your changes. One of these checks is called 'cpp lint / clang format', which checks code formatting. Because formatting for readability requires human judgement this check often fails and often makes unsuitable formatting requests which make code readability worse. -If this check fails, look at the details to check for any clear mistakes and correct those. However you should not apply everything ClangFormat requests, ignore requests that make code readability worse and any other clearly unsuitable requests. -Discuss with a core developer if in any doubt and for how to progress. +If this check fails, look at the details to check for any clear mistakes and correct those. However, you should not apply everything ClangFormat requests. Ignore requests that make code readability worse and any other clearly unsuitable requests. Discuss in the pull request with a core developer about how to progress. ## Issues From b826e3973065a0bb81269c8decb5a33073508164 Mon Sep 17 00:00:00 2001 From: Lars Date: Sun, 18 Oct 2020 16:38:51 -0700 Subject: [PATCH 240/624] Minor clientmap improvements. - Avoid calculating isBlockInSight for blocks without meshes. - Add metric for how many blocks the client has currently loaded. - Make some variables constant. --- src/client/clientmap.cpp | 36 +++++++++++++++++++----------------- src/mapsector.h | 1 + 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index d372a8e46..c8561def6 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -122,14 +122,17 @@ void ClientMap::updateDrawList() } m_drawlist.clear(); - v3f camera_position = m_camera_position; - v3f camera_direction = m_camera_direction; + const v3f camera_position = m_camera_position; + const v3f camera_direction = m_camera_direction; + const f32 camera_fov = m_camera_fov; v3s16 cam_pos_nodes = floatToInt(camera_position, BS); v3s16 p_blocks_min; v3s16 p_blocks_max; getBlocksInViewRange(cam_pos_nodes, &p_blocks_min, &p_blocks_max); + // Number of blocks currently loaded by the client + u32 blocks_loaded = 0; // Number of blocks with mesh in rendering range u32 blocks_in_range_with_mesh = 0; // Number of blocks occlusion culled @@ -154,6 +157,7 @@ void ClientMap::updateDrawList() MapSector *sector = sector_it.second; v2s16 sp = sector->getPos(); + blocks_loaded += sector->size(); if (!m_control.range_all) { if (sp.X < p_blocks_min.X || sp.X > p_blocks_max.X || sp.Y < p_blocks_min.Z || sp.Y > p_blocks_max.Z) @@ -175,8 +179,12 @@ void ClientMap::updateDrawList() if not seen on display */ - if (block->mesh) + if (block->mesh) { block->mesh->updateCameraOffset(m_camera_offset); + } else { + // Ignore if mesh doesn't exist + continue; + } float range = 100000 * BS; if (!m_control.range_all) @@ -184,14 +192,7 @@ void ClientMap::updateDrawList() float d = 0.0; if (!isBlockInSight(block->getPos(), camera_position, - camera_direction, m_camera_fov, range, &d)) - continue; - - - /* - Ignore if mesh doesn't exist - */ - if (!block->mesh) + camera_direction, camera_fov, range, &d)) continue; blocks_in_range_with_mesh++; @@ -222,6 +223,7 @@ void ClientMap::updateDrawList() g_profiler->avg("MapBlock meshes in range [#]", blocks_in_range_with_mesh); g_profiler->avg("MapBlocks occlusion culled [#]", blocks_occlusion_culled); g_profiler->avg("MapBlocks drawn [#]", m_drawlist.size()); + g_profiler->avg("MapBlocks loaded [#]", blocks_loaded); } struct MeshBufList @@ -287,13 +289,13 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) /* Get animation parameters */ - float animation_time = m_client->getAnimationTime(); - int crack = m_client->getCrackLevel(); - u32 daynight_ratio = m_client->getEnv().getDayNightRatio(); + const float animation_time = m_client->getAnimationTime(); + const int crack = m_client->getCrackLevel(); + const u32 daynight_ratio = m_client->getEnv().getDayNightRatio(); - v3f camera_position = m_camera_position; - v3f camera_direction = m_camera_direction; - f32 camera_fov = m_camera_fov; + const v3f camera_position = m_camera_position; + const v3f camera_direction = m_camera_direction; + const f32 camera_fov = m_camera_fov; /* Get all blocks and draw all visible ones diff --git a/src/mapsector.h b/src/mapsector.h index dede364f6..ffd4cdd1d 100644 --- a/src/mapsector.h +++ b/src/mapsector.h @@ -62,6 +62,7 @@ public: bool empty() const { return m_blocks.empty(); } + int size() const { return m_blocks.size(); } protected: // The pile of MapBlocks From 660115c1abc76f3d4f6a6597ed0c4737465c6c55 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 19 Oct 2020 20:38:15 +0200 Subject: [PATCH 241/624] Decouple entity minimap markers from nametags replacing with show_on_minimap property (#10443) --- doc/lua_api.txt | 4 ++++ src/client/camera.h | 2 -- src/client/client.cpp | 2 ++ src/client/content_cao.cpp | 27 +++++++++++++++++++++++++++ src/client/content_cao.h | 4 ++++ src/client/minimap.cpp | 33 +++++++++++++++++++++++++-------- src/client/minimap.h | 11 +++++++++++ src/object_properties.cpp | 8 +++++++- src/object_properties.h | 1 + src/script/common/c_content.cpp | 3 +++ src/server/player_sao.cpp | 1 + 11 files changed, 85 insertions(+), 11 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index d3aaa309c..9a46c7b57 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6880,6 +6880,10 @@ Player properties need to be saved manually. shaded = true, -- Setting this to 'false' disables diffuse lighting of entity + + show_on_minimap = false, + -- Defaults to true for players, false for other entities. + -- If set to true the entity will show as a marker on the minimap. } Entity definition diff --git a/src/client/camera.h b/src/client/camera.h index 3a59637bc..16a1961be 100644 --- a/src/client/camera.h +++ b/src/client/camera.h @@ -169,8 +169,6 @@ public: void removeNametag(Nametag *nametag); - const std::list &getNametags() { return m_nametags; } - void drawNametags(); inline void addArmInertia(f32 player_yaw); diff --git a/src/client/client.cpp b/src/client/client.cpp index 0bd98b256..af69d0ec9 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -326,6 +326,8 @@ Client::~Client() } delete m_minimap; + m_minimap = nullptr; + delete m_media_downloader; } diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index fae06554a..42184b08f 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -47,6 +47,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include "client/shader.h" +#include "client/minimap.h" class Settings; struct ToolCapabilities; @@ -566,6 +567,9 @@ void GenericCAO::removeFromScene(bool permanent) m_client->getCamera()->removeNametag(m_nametag); m_nametag = nullptr; } + + if (m_marker && m_client->getMinimap()) + m_client->getMinimap()->removeMarker(&m_marker); } void GenericCAO::addToScene(ITextureSource *tsrc) @@ -794,6 +798,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc) node->setParent(m_matrixnode); updateNametag(); + updateMarker(); updateNodePos(); updateAnimation(); updateBonePosition(); @@ -885,6 +890,23 @@ u16 GenericCAO::getLightPosition(v3s16 *pos) return 3; } +void GenericCAO::updateMarker() +{ + if (!m_prop.show_on_minimap) { + if (m_marker) + m_client->getMinimap()->removeMarker(&m_marker); + return; + } + + if (m_marker) + return; + + scene::ISceneNode *node = getSceneNode(); + if (!node) + return; + m_marker = m_client->getMinimap()->addMarker(node); +} + void GenericCAO::updateNametag() { if (m_is_local_player) // No nametag for local player @@ -1576,6 +1598,8 @@ void GenericCAO::processMessage(const std::string &data) u8 cmd = readU8(is); if (cmd == AO_CMD_SET_PROPERTIES) { ObjectProperties newprops; + newprops.show_on_minimap = m_is_player; // default + newprops.deSerialize(is); // Check what exactly changed @@ -1609,6 +1633,8 @@ void GenericCAO::processMessage(const std::string &data) if ((m_is_player && !m_is_local_player) && m_prop.nametag.empty()) m_prop.nametag = m_name; + if (m_is_local_player) + m_prop.show_on_minimap = false; if (expire_visuals) { expireVisuals(); @@ -1621,6 +1647,7 @@ void GenericCAO::processMessage(const std::string &data) updateTextures(m_current_texture_modifier); } updateNametag(); + updateMarker(); } } else if (cmd == AO_CMD_UPDATE_POSITION) { // Not sent by the server if this object is an attachment. diff --git a/src/client/content_cao.h b/src/client/content_cao.h index daf697767..435fc2931 100644 --- a/src/client/content_cao.h +++ b/src/client/content_cao.h @@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc., class Camera; class Client; struct Nametag; +struct MinimapMarker; /* SmoothTranslator @@ -84,6 +85,7 @@ private: scene::IBillboardSceneNode *m_spritenode = nullptr; scene::IDummyTransformationSceneNode *m_matrixnode = nullptr; Nametag *m_nametag = nullptr; + MinimapMarker *m_marker = nullptr; v3f m_position = v3f(0.0f, 10.0f * BS, 0); v3f m_velocity; v3f m_acceleration; @@ -254,6 +256,8 @@ public: void updateNametag(); + void updateMarker(); + void updateNodePos(); void step(float dtime, ClientEnvironment *env); diff --git a/src/client/minimap.cpp b/src/client/minimap.cpp index 6bae408b4..d068ad5f7 100644 --- a/src/client/minimap.cpp +++ b/src/client/minimap.cpp @@ -252,6 +252,10 @@ Minimap::~Minimap() driver->removeTexture(data->minimap_overlay_square); driver->removeTexture(data->object_marker_red); + for (MinimapMarker *m : m_markers) + delete m; + m_markers.clear(); + delete data; delete m_minimap_update_thread; } @@ -678,21 +682,34 @@ void Minimap::drawMinimap(core::rect rect) { } } +MinimapMarker* Minimap::addMarker(scene::ISceneNode *parent_node) +{ + MinimapMarker *m = new MinimapMarker(parent_node); + m_markers.push_back(m); + return m; +} + +void Minimap::removeMarker(MinimapMarker **m) +{ + m_markers.remove(*m); + delete *m; + *m = nullptr; +} + void Minimap::updateActiveMarkers() { video::IImage *minimap_mask = data->minimap_shape_round ? data->minimap_mask_round : data->minimap_mask_square; - const std::list &nametags = client->getCamera()->getNametags(); - m_active_markers.clear(); + v3f cam_offset = intToFloat(client->getCamera()->getOffset(), BS); + v3s16 pos_offset = data->pos - v3s16(data->mode.map_size / 2, + data->mode.scan_height / 2, + data->mode.map_size / 2); - for (Nametag *nametag : nametags) { - v3s16 pos = floatToInt(nametag->parent_node->getAbsolutePosition() + - intToFloat(client->getCamera()->getOffset(), BS), BS); - pos -= data->pos - v3s16(data->mode.map_size / 2, - data->mode.scan_height / 2, - data->mode.map_size / 2); + for (MinimapMarker *marker : m_markers) { + v3s16 pos = floatToInt(marker->parent_node->getAbsolutePosition() + + cam_offset, BS) - pos_offset; if (pos.X < 0 || pos.X > data->mode.map_size || pos.Y < 0 || pos.Y > data->mode.scan_height || pos.Z < 0 || pos.Z > data->mode.map_size) { diff --git a/src/client/minimap.h b/src/client/minimap.h index 11374b116..4a2c462f8 100644 --- a/src/client/minimap.h +++ b/src/client/minimap.h @@ -48,6 +48,13 @@ struct MinimapModeDef { u16 scale; }; +struct MinimapMarker { + MinimapMarker(scene::ISceneNode *parent_node): + parent_node(parent_node) + { + } + scene::ISceneNode *parent_node; +}; struct MinimapPixel { //! The topmost node that the minimap displays. MapNode n; @@ -142,6 +149,9 @@ public: scene::SMeshBuffer *getMinimapMeshBuffer(); + MinimapMarker* addMarker(scene::ISceneNode *parent_node); + void removeMarker(MinimapMarker **marker); + void updateActiveMarkers(); void drawMinimap(); void drawMinimap(core::rect rect); @@ -162,5 +172,6 @@ private: u16 m_surface_mode_scan_height; f32 m_angle; std::mutex m_mutex; + std::list m_markers; std::list m_active_markers; }; diff --git a/src/object_properties.cpp b/src/object_properties.cpp index c31c667e7..f31773060 100644 --- a/src/object_properties.cpp +++ b/src/object_properties.cpp @@ -70,6 +70,7 @@ std::string ObjectProperties::dump() os << ", use_texture_alpha=" << use_texture_alpha; os << ", damage_texture_modifier=" << damage_texture_modifier; os << ", shaded=" << shaded; + os << ", show_on_minimap=" << show_on_minimap; return os.str(); } @@ -118,6 +119,7 @@ void ObjectProperties::serialize(std::ostream &os) const writeU8(os, use_texture_alpha); os << serializeString16(damage_texture_modifier); writeU8(os, shaded); + writeU8(os, show_on_minimap); // Add stuff only at the bottom. // Never remove anything, because we don't want new versions of this @@ -174,7 +176,11 @@ void ObjectProperties::deSerialize(std::istream &is) damage_texture_modifier = deSerializeString16(is); u8 tmp = readU8(is); if (is.eof()) - throw SerializationError(""); + return; shaded = tmp; + tmp = readU8(is); + if (is.eof()) + return; + show_on_minimap = tmp; } catch (SerializationError &e) {} } diff --git a/src/object_properties.h b/src/object_properties.h index f010c1daf..adb483527 100644 --- a/src/object_properties.h +++ b/src/object_properties.h @@ -62,6 +62,7 @@ struct ObjectProperties float zoom_fov = 0.0f; bool use_texture_alpha = false; bool shaded = true; + bool show_on_minimap = false; ObjectProperties(); std::string dump(); diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index a95cf94a1..e3cb9042e 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -331,6 +331,7 @@ void read_object_properties(lua_State *L, int index, getfloatfield(L, -1, "zoom_fov", prop->zoom_fov); getboolfield(L, -1, "use_texture_alpha", prop->use_texture_alpha); getboolfield(L, -1, "shaded", prop->shaded); + getboolfield(L, -1, "show_on_minimap", prop->show_on_minimap); getstringfield(L, -1, "damage_texture_modifier", prop->damage_texture_modifier); } @@ -419,6 +420,8 @@ void push_object_properties(lua_State *L, ObjectProperties *prop) lua_setfield(L, -2, "shaded"); lua_pushlstring(L, prop->damage_texture_modifier.c_str(), prop->damage_texture_modifier.size()); lua_setfield(L, -2, "damage_texture_modifier"); + lua_pushboolean(L, prop->show_on_minimap); + lua_setfield(L, -2, "show_on_minimap"); } /******************************************************************************/ diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index 344d18a20..9fb53380c 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -55,6 +55,7 @@ PlayerSAO::PlayerSAO(ServerEnvironment *env_, RemotePlayer *player_, session_t p m_prop.backface_culling = false; m_prop.makes_footstep_sound = true; m_prop.stepheight = PLAYER_DEFAULT_STEPHEIGHT * BS; + m_prop.show_on_minimap = true; m_hp = m_prop.hp_max; m_breath = m_prop.breath_max; // Disable zoom in survival mode using a value of 0 From 4f2303849e0f929524695a9e3719ec486b47ddd1 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 19 Oct 2020 20:38:33 +0200 Subject: [PATCH 242/624] Implement unloading of static_save=false objects according to existing docs (#10485) --- src/server/luaentity_sao.h | 1 + src/server/player_sao.h | 1 + src/server/serveractiveobject.h | 9 +++++++++ src/serverenvironment.cpp | 9 ++++++--- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/server/luaentity_sao.h b/src/server/luaentity_sao.h index 2520c8f5d..e060aa06d 100644 --- a/src/server/luaentity_sao.h +++ b/src/server/luaentity_sao.h @@ -42,6 +42,7 @@ public: void step(float dtime, bool send_recommended); std::string getClientInitializationData(u16 protocol_version); bool isStaticAllowed() const { return m_prop.static_save; } + bool shouldUnload() const { return true; } void getStaticData(std::string *result) const; u16 punch(v3f dir, const ToolCapabilities *toolcap = nullptr, ServerActiveObject *puncher = nullptr, diff --git a/src/server/player_sao.h b/src/server/player_sao.h index 8571bd4f9..3e178d4fc 100644 --- a/src/server/player_sao.h +++ b/src/server/player_sao.h @@ -83,6 +83,7 @@ public: void addedToEnvironment(u32 dtime_s); void removingFromEnvironment(); bool isStaticAllowed() const { return false; } + bool shouldUnload() const { return false; } std::string getClientInitializationData(u16 protocol_version); void getStaticData(std::string *result) const; void step(float dtime, bool send_recommended); diff --git a/src/server/serveractiveobject.h b/src/server/serveractiveobject.h index 927009aef..2764d159e 100644 --- a/src/server/serveractiveobject.h +++ b/src/server/serveractiveobject.h @@ -125,6 +125,7 @@ public: assert(isStaticAllowed()); *result = ""; } + /* Return false in here to never save and instead remove object on unload. getStaticData() will not be called in that case. @@ -132,6 +133,14 @@ public: virtual bool isStaticAllowed() const {return true;} + /* + Return false here to never unload the object. + isStaticAllowed && shouldUnload -> unload when out of active block range + !isStaticAllowed && shouldUnload -> unload when block is unloaded + */ + virtual bool shouldUnload() const + { return true; } + // Returns tool wear virtual u16 punch(v3f dir, const ToolCapabilities *toolcap = nullptr, diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp index 6ef56efc8..d044b003d 100644 --- a/src/serverenvironment.cpp +++ b/src/serverenvironment.cpp @@ -1972,8 +1972,8 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) // force_delete might be overriden per object bool force_delete = _force_delete; - // Do not deactivate if static data creation not allowed - if (!force_delete && !obj->isStaticAllowed()) + // Do not deactivate if disallowed + if (!force_delete && !obj->shouldUnload()) return false; // removeRemovedObjects() is responsible for these @@ -2002,7 +2002,10 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) } // If block is still active, don't remove - if (!force_delete && m_active_blocks.contains(blockpos_o)) + bool still_active = obj->isStaticAllowed() ? + m_active_blocks.contains(blockpos_o) : + getMap().getBlockNoCreateNoEx(blockpos_o) != nullptr; + if (!force_delete && still_active) return false; verbosestream << "ServerEnvironment::deactivateFarObjects(): " From c7aa92aaed27ad8e10af7463b154b5b580c86da5 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 20 Oct 2020 16:34:14 +0200 Subject: [PATCH 243/624] Fix show_on_minimap default value for local player fixes #10526 --- src/client/content_cao.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 42184b08f..29a3acf25 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -354,6 +354,8 @@ void GenericCAO::initialize(const std::string &data) m_is_local_player = true; m_is_visible = false; player->setCAO(this); + + m_prop.show_on_minimap = false; } } From 4d9c9186ce61e11e13bc35ce1a319e568cf08662 Mon Sep 17 00:00:00 2001 From: Paramat Date: Tue, 20 Oct 2020 22:13:27 +0100 Subject: [PATCH 244/624] Devtest: Automatically enable zoom capability (#10493) Make minor improvements to the zoom testing chat command. Delete incorrect line about creative mode from README.md. --- games/devtest/README.md | 1 - games/devtest/mods/util_commands/init.lua | 10 ++++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/games/devtest/README.md b/games/devtest/README.md index 8b71da625..77e722af7 100644 --- a/games/devtest/README.md +++ b/games/devtest/README.md @@ -23,7 +23,6 @@ Basically, just create a world and start. A few important things to note: * Use the `/infplace` command to toggle infinite node placement in-game * Use the Param2 Tool to change the param2 of nodes; it's useful to experiment with the various drawtype test nodes * Check out the game settings and server commands for additional tests and features -* Creative Mode does nothing (apart from default engine behavior) Confused by a certain node or item? Check out for inline code comments. The usages of most tools are explained in their tooltips. diff --git a/games/devtest/mods/util_commands/init.lua b/games/devtest/mods/util_commands/init.lua index f2a155fb2..ca5dca2d9 100644 --- a/games/devtest/mods/util_commands/init.lua +++ b/games/devtest/mods/util_commands/init.lua @@ -36,8 +36,12 @@ minetest.register_chatcommand("hp", { end, }) -minetest.register_chatcommand("zoom", { - params = "[]", +minetest.register_on_joinplayer(function(player) + player:set_properties({zoom_fov = 15}) +end) + +minetest.register_chatcommand("zoomfov", { + params = "[]", description = "Set or display your zoom_fov", func = function(name, param) local player = minetest.get_player_by_name(name) @@ -58,8 +62,6 @@ minetest.register_chatcommand("zoom", { end, }) - - local s_infplace = minetest.settings:get("devtest_infplace") if s_infplace == "true" then infplace = true From f53396b1523f5adb99fcc9e8fe5262a205217489 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Wed, 21 Oct 2020 21:42:23 +0200 Subject: [PATCH 245/624] Update jsoncpp to 1.9.4 (#10477) Co-authored-by: Zughy <4279489-marco_a@users.noreply.gitlab.com> --- lib/jsoncpp/json/UPDATING | 2 +- lib/jsoncpp/json/json-forwards.h | 366 ++-- lib/jsoncpp/json/json.h | 1622 +++++++++-------- lib/jsoncpp/jsoncpp.cpp | 2770 +++++++++++++++--------------- 4 files changed, 2475 insertions(+), 2285 deletions(-) diff --git a/lib/jsoncpp/json/UPDATING b/lib/jsoncpp/json/UPDATING index f0226e8ee..0893244cf 100644 --- a/lib/jsoncpp/json/UPDATING +++ b/lib/jsoncpp/json/UPDATING @@ -1,6 +1,6 @@ #!/bin/sh cd .. -git clone https://github.com/open-source-parsers/jsoncpp -b 1.8.3 --depth 1 +git clone https://github.com/open-source-parsers/jsoncpp -b 1.9.4 --depth 1 cd jsoncpp python amalgamate.py cp -R dist/json ../json diff --git a/lib/jsoncpp/json/json-forwards.h b/lib/jsoncpp/json/json-forwards.h index de2e4bd79..d3260c57c 100644 --- a/lib/jsoncpp/json/json-forwards.h +++ b/lib/jsoncpp/json/json-forwards.h @@ -79,6 +79,151 @@ license you like. /// to prevent private header inclusion. #define JSON_IS_AMALGAMATION +// ////////////////////////////////////////////////////////////////////// +// Beginning of content of file: include/json/version.h +// ////////////////////////////////////////////////////////////////////// + +#ifndef JSON_VERSION_H_INCLUDED +#define JSON_VERSION_H_INCLUDED + +// Note: version must be updated in three places when doing a release. This +// annoying process ensures that amalgamate, CMake, and meson all report the +// correct version. +// 1. /meson.build +// 2. /include/json/version.h +// 3. /CMakeLists.txt +// IMPORTANT: also update the SOVERSION!! + +#define JSONCPP_VERSION_STRING "1.9.4" +#define JSONCPP_VERSION_MAJOR 1 +#define JSONCPP_VERSION_MINOR 9 +#define JSONCPP_VERSION_PATCH 3 +#define JSONCPP_VERSION_QUALIFIER +#define JSONCPP_VERSION_HEXA \ + ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | \ + (JSONCPP_VERSION_PATCH << 8)) + +#ifdef JSONCPP_USING_SECURE_MEMORY +#undef JSONCPP_USING_SECURE_MEMORY +#endif +#define JSONCPP_USING_SECURE_MEMORY 0 +// If non-zero, the library zeroes any memory that it has allocated before +// it frees its memory. + +#endif // JSON_VERSION_H_INCLUDED + +// ////////////////////////////////////////////////////////////////////// +// End of content of file: include/json/version.h +// ////////////////////////////////////////////////////////////////////// + + + + + + +// ////////////////////////////////////////////////////////////////////// +// Beginning of content of file: include/json/allocator.h +// ////////////////////////////////////////////////////////////////////// + +// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors +// Distributed under MIT license, or public domain if desired and +// recognized in your jurisdiction. +// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE + +#ifndef JSON_ALLOCATOR_H_INCLUDED +#define JSON_ALLOCATOR_H_INCLUDED + +#include +#include + +#pragma pack(push, 8) + +namespace Json { +template class SecureAllocator { +public: + // Type definitions + using value_type = T; + using pointer = T*; + using const_pointer = const T*; + using reference = T&; + using const_reference = const T&; + using size_type = std::size_t; + using difference_type = std::ptrdiff_t; + + /** + * Allocate memory for N items using the standard allocator. + */ + pointer allocate(size_type n) { + // allocate using "global operator new" + return static_cast(::operator new(n * sizeof(T))); + } + + /** + * Release memory which was allocated for N items at pointer P. + * + * The memory block is filled with zeroes before being released. + * The pointer argument is tagged as "volatile" to prevent the + * compiler optimizing out this critical step. + */ + void deallocate(volatile pointer p, size_type n) { + std::memset(p, 0, n * sizeof(T)); + // free using "global operator delete" + ::operator delete(p); + } + + /** + * Construct an item in-place at pointer P. + */ + template void construct(pointer p, Args&&... args) { + // construct using "placement new" and "perfect forwarding" + ::new (static_cast(p)) T(std::forward(args)...); + } + + size_type max_size() const { return size_t(-1) / sizeof(T); } + + pointer address(reference x) const { return std::addressof(x); } + + const_pointer address(const_reference x) const { return std::addressof(x); } + + /** + * Destroy an item in-place at pointer P. + */ + void destroy(pointer p) { + // destroy using "explicit destructor" + p->~T(); + } + + // Boilerplate + SecureAllocator() {} + template SecureAllocator(const SecureAllocator&) {} + template struct rebind { using other = SecureAllocator; }; +}; + +template +bool operator==(const SecureAllocator&, const SecureAllocator&) { + return true; +} + +template +bool operator!=(const SecureAllocator&, const SecureAllocator&) { + return false; +} + +} // namespace Json + +#pragma pack(pop) + +#endif // JSON_ALLOCATOR_H_INCLUDED + +// ////////////////////////////////////////////////////////////////////// +// End of content of file: include/json/allocator.h +// ////////////////////////////////////////////////////////////////////// + + + + + + // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/config.h // ////////////////////////////////////////////////////////////////////// @@ -90,19 +235,14 @@ license you like. #ifndef JSON_CONFIG_H_INCLUDED #define JSON_CONFIG_H_INCLUDED -#include -#include //typedef String -#include //typedef int64_t, uint64_t - -/// If defined, indicates that json library is embedded in CppTL library. -//# define JSON_IN_CPPTL 1 - -/// If defined, indicates that json may leverage CppTL library -//# define JSON_USE_CPPTL 1 -/// If defined, indicates that cpptl vector based map should be used instead of -/// std::map -/// as Value container. -//# define JSON_USE_CPPTL_SMALLMAP 1 +#include +#include +#include +#include +#include +#include +#include +#include // If non-zero, the library uses exceptions to report bad input instead of C // assertion macros. The default is to use exceptions. @@ -110,164 +250,132 @@ license you like. #define JSON_USE_EXCEPTION 1 #endif +// Temporary, tracked for removal with issue #982. +#ifndef JSON_USE_NULLREF +#define JSON_USE_NULLREF 1 +#endif + /// If defined, indicates that the source file is amalgamated /// to prevent private header inclusion. /// Remarks: it is automatically defined in the generated amalgamated header. // #define JSON_IS_AMALGAMATION -#ifdef JSON_IN_CPPTL -#include -#ifndef JSON_USE_CPPTL -#define JSON_USE_CPPTL 1 -#endif -#endif - -#ifdef JSON_IN_CPPTL -#define JSON_API CPPTL_API -#elif defined(JSON_DLL_BUILD) +// Export macros for DLL visibility +#if defined(JSON_DLL_BUILD) #if defined(_MSC_VER) || defined(__MINGW32__) #define JSON_API __declspec(dllexport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING +#elif defined(__GNUC__) || defined(__clang__) +#define JSON_API __attribute__((visibility("default"))) #endif // if defined(_MSC_VER) + #elif defined(JSON_DLL) #if defined(_MSC_VER) || defined(__MINGW32__) #define JSON_API __declspec(dllimport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING #endif // if defined(_MSC_VER) -#endif // ifdef JSON_IN_CPPTL +#endif // ifdef JSON_DLL_BUILD + #if !defined(JSON_API) #define JSON_API #endif +#if defined(_MSC_VER) && _MSC_VER < 1800 +#error \ + "ERROR: Visual Studio 12 (2013) with _MSC_VER=1800 is the oldest supported compiler with sufficient C++11 capabilities" +#endif + +#if defined(_MSC_VER) && _MSC_VER < 1900 +// As recommended at +// https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010 +extern JSON_API int msvc_pre1900_c99_snprintf(char* outBuf, size_t size, + const char* format, ...); +#define jsoncpp_snprintf msvc_pre1900_c99_snprintf +#else +#define jsoncpp_snprintf std::snprintf +#endif + // If JSON_NO_INT64 is defined, then Json only support C++ "int" type for // integer // Storages, and 64 bits integer support is disabled. // #define JSON_NO_INT64 1 -#if defined(_MSC_VER) // MSVC -# if _MSC_VER <= 1200 // MSVC 6 - // Microsoft Visual Studio 6 only support conversion from __int64 to double - // (no conversion from unsigned __int64). -# define JSON_USE_INT64_DOUBLE_CONVERSION 1 - // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255' - // characters in the debug information) - // All projects I've ever seen with VS6 were using this globally (not bothering - // with pragma push/pop). -# pragma warning(disable : 4786) -# endif // MSVC 6 - -# if _MSC_VER >= 1500 // MSVC 2008 - /// Indicates that the following function is deprecated. -# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) -# endif - -#endif // defined(_MSC_VER) - -// In c++11 the override keyword allows you to explicitly define that a function -// is intended to override the base-class version. This makes the code more -// managable and fixes a set of common hard-to-find bugs. -#if __cplusplus >= 201103L -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT noexcept -#elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900 -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT throw() -#elif defined(_MSC_VER) && _MSC_VER >= 1900 -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT noexcept -#else -# define JSONCPP_OVERRIDE -# define JSONCPP_NOEXCEPT throw() -#endif - -#ifndef JSON_HAS_RVALUE_REFERENCES - -#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010 -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // MSVC >= 2010 +// JSONCPP_OVERRIDE is maintained for backwards compatibility of external tools. +// C++11 should be used directly in JSONCPP. +#define JSONCPP_OVERRIDE override #ifdef __clang__ -#if __has_feature(cxx_rvalue_references) -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // has_feature - -#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) -#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L) -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // GXX_EXPERIMENTAL - -#endif // __clang__ || __GNUC__ - -#endif // not defined JSON_HAS_RVALUE_REFERENCES - -#ifndef JSON_HAS_RVALUE_REFERENCES -#define JSON_HAS_RVALUE_REFERENCES 0 +#if __has_extension(attribute_deprecated_with_message) +#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message))) #endif - -#ifdef __clang__ -# if __has_extension(attribute_deprecated_with_message) -# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) -# endif -#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) -# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) -# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) -# elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) -# define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) -# endif // GNUC version -#endif // __clang__ || __GNUC__ +#elif defined(__GNUC__) // not clang (gcc comes later since clang emulates gcc) +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) +#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message))) +#elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +#define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) +#endif // GNUC version +#elif defined(_MSC_VER) // MSVC (after clang because clang on Windows emulates + // MSVC) +#define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) +#endif // __clang__ || __GNUC__ || _MSC_VER #if !defined(JSONCPP_DEPRECATED) #define JSONCPP_DEPRECATED(message) #endif // if !defined(JSONCPP_DEPRECATED) -#if __GNUC__ >= 6 -# define JSON_USE_INT64_DOUBLE_CONVERSION 1 +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 6)) +#define JSON_USE_INT64_DOUBLE_CONVERSION 1 #endif #if !defined(JSON_IS_AMALGAMATION) -# include "version.h" - -# if JSONCPP_USING_SECURE_MEMORY -# include "allocator.h" //typedef Allocator -# endif +#include "allocator.h" +#include "version.h" #endif // if !defined(JSON_IS_AMALGAMATION) namespace Json { -typedef int Int; -typedef unsigned int UInt; +using Int = int; +using UInt = unsigned int; #if defined(JSON_NO_INT64) -typedef int LargestInt; -typedef unsigned int LargestUInt; +using LargestInt = int; +using LargestUInt = unsigned int; #undef JSON_HAS_INT64 #else // if defined(JSON_NO_INT64) // For Microsoft Visual use specific types as long long is not supported #if defined(_MSC_VER) // Microsoft Visual Studio -typedef __int64 Int64; -typedef unsigned __int64 UInt64; +using Int64 = __int64; +using UInt64 = unsigned __int64; #else // if defined(_MSC_VER) // Other platforms, use long long -typedef int64_t Int64; -typedef uint64_t UInt64; -#endif // if defined(_MSC_VER) -typedef Int64 LargestInt; -typedef UInt64 LargestUInt; +using Int64 = int64_t; +using UInt64 = uint64_t; +#endif // if defined(_MSC_VER) +using LargestInt = Int64; +using LargestUInt = UInt64; #define JSON_HAS_INT64 #endif // if defined(JSON_NO_INT64) -#if JSONCPP_USING_SECURE_MEMORY -#define JSONCPP_STRING std::basic_string, Json::SecureAllocator > -#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream, Json::SecureAllocator > -#define JSONCPP_OSTREAM std::basic_ostream> -#define JSONCPP_ISTRINGSTREAM std::basic_istringstream, Json::SecureAllocator > -#define JSONCPP_ISTREAM std::istream -#else -#define JSONCPP_STRING std::string -#define JSONCPP_OSTRINGSTREAM std::ostringstream -#define JSONCPP_OSTREAM std::ostream -#define JSONCPP_ISTRINGSTREAM std::istringstream -#define JSONCPP_ISTREAM std::istream -#endif // if JSONCPP_USING_SECURE_MEMORY -} // end namespace Json + +template +using Allocator = + typename std::conditional, + std::allocator>::type; +using String = std::basic_string, Allocator>; +using IStringStream = + std::basic_istringstream; +using OStringStream = + std::basic_ostringstream; +using IStream = std::istream; +using OStream = std::ostream; +} // namespace Json + +// Legacy names (formerly macros). +using JSONCPP_STRING = Json::String; +using JSONCPP_ISTRINGSTREAM = Json::IStringStream; +using JSONCPP_OSTRINGSTREAM = Json::OStringStream; +using JSONCPP_ISTREAM = Json::IStream; +using JSONCPP_OSTREAM = Json::OStream; #endif // JSON_CONFIG_H_INCLUDED @@ -299,17 +407,23 @@ typedef UInt64 LargestUInt; namespace Json { // writer.h +class StreamWriter; +class StreamWriterBuilder; +class Writer; class FastWriter; class StyledWriter; +class StyledStreamWriter; // reader.h class Reader; +class CharReader; +class CharReaderBuilder; -// features.h +// json_features.h class Features; // value.h -typedef unsigned int ArrayIndex; +using ArrayIndex = unsigned int; class StaticString; class Path; class PathArgument; diff --git a/lib/jsoncpp/json/json.h b/lib/jsoncpp/json/json.h index 625ba02e9..3f4813a95 100644 --- a/lib/jsoncpp/json/json.h +++ b/lib/jsoncpp/json/json.h @@ -82,17 +82,25 @@ license you like. // Beginning of content of file: include/json/version.h // ////////////////////////////////////////////////////////////////////// -// DO NOT EDIT. This file (and "version") is generated by CMake. -// Run CMake configure step to update it. #ifndef JSON_VERSION_H_INCLUDED -# define JSON_VERSION_H_INCLUDED +#define JSON_VERSION_H_INCLUDED -# define JSONCPP_VERSION_STRING "1.8.4" -# define JSONCPP_VERSION_MAJOR 1 -# define JSONCPP_VERSION_MINOR 8 -# define JSONCPP_VERSION_PATCH 4 -# define JSONCPP_VERSION_QUALIFIER -# define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8)) +// Note: version must be updated in three places when doing a release. This +// annoying process ensures that amalgamate, CMake, and meson all report the +// correct version. +// 1. /meson.build +// 2. /include/json/version.h +// 3. /CMakeLists.txt +// IMPORTANT: also update the SOVERSION!! + +#define JSONCPP_VERSION_STRING "1.9.4" +#define JSONCPP_VERSION_MAJOR 1 +#define JSONCPP_VERSION_MINOR 9 +#define JSONCPP_VERSION_PATCH 3 +#define JSONCPP_VERSION_QUALIFIER +#define JSONCPP_VERSION_HEXA \ + ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | \ + (JSONCPP_VERSION_PATCH << 8)) #ifdef JSONCPP_USING_SECURE_MEMORY #undef JSONCPP_USING_SECURE_MEMORY @@ -112,6 +120,109 @@ license you like. +// ////////////////////////////////////////////////////////////////////// +// Beginning of content of file: include/json/allocator.h +// ////////////////////////////////////////////////////////////////////// + +// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors +// Distributed under MIT license, or public domain if desired and +// recognized in your jurisdiction. +// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE + +#ifndef JSON_ALLOCATOR_H_INCLUDED +#define JSON_ALLOCATOR_H_INCLUDED + +#include +#include + +#pragma pack(push, 8) + +namespace Json { +template class SecureAllocator { +public: + // Type definitions + using value_type = T; + using pointer = T*; + using const_pointer = const T*; + using reference = T&; + using const_reference = const T&; + using size_type = std::size_t; + using difference_type = std::ptrdiff_t; + + /** + * Allocate memory for N items using the standard allocator. + */ + pointer allocate(size_type n) { + // allocate using "global operator new" + return static_cast(::operator new(n * sizeof(T))); + } + + /** + * Release memory which was allocated for N items at pointer P. + * + * The memory block is filled with zeroes before being released. + * The pointer argument is tagged as "volatile" to prevent the + * compiler optimizing out this critical step. + */ + void deallocate(volatile pointer p, size_type n) { + std::memset(p, 0, n * sizeof(T)); + // free using "global operator delete" + ::operator delete(p); + } + + /** + * Construct an item in-place at pointer P. + */ + template void construct(pointer p, Args&&... args) { + // construct using "placement new" and "perfect forwarding" + ::new (static_cast(p)) T(std::forward(args)...); + } + + size_type max_size() const { return size_t(-1) / sizeof(T); } + + pointer address(reference x) const { return std::addressof(x); } + + const_pointer address(const_reference x) const { return std::addressof(x); } + + /** + * Destroy an item in-place at pointer P. + */ + void destroy(pointer p) { + // destroy using "explicit destructor" + p->~T(); + } + + // Boilerplate + SecureAllocator() {} + template SecureAllocator(const SecureAllocator&) {} + template struct rebind { using other = SecureAllocator; }; +}; + +template +bool operator==(const SecureAllocator&, const SecureAllocator&) { + return true; +} + +template +bool operator!=(const SecureAllocator&, const SecureAllocator&) { + return false; +} + +} // namespace Json + +#pragma pack(pop) + +#endif // JSON_ALLOCATOR_H_INCLUDED + +// ////////////////////////////////////////////////////////////////////// +// End of content of file: include/json/allocator.h +// ////////////////////////////////////////////////////////////////////// + + + + + + // ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/config.h // ////////////////////////////////////////////////////////////////////// @@ -123,19 +234,14 @@ license you like. #ifndef JSON_CONFIG_H_INCLUDED #define JSON_CONFIG_H_INCLUDED -#include -#include //typedef String -#include //typedef int64_t, uint64_t - -/// If defined, indicates that json library is embedded in CppTL library. -//# define JSON_IN_CPPTL 1 - -/// If defined, indicates that json may leverage CppTL library -//# define JSON_USE_CPPTL 1 -/// If defined, indicates that cpptl vector based map should be used instead of -/// std::map -/// as Value container. -//# define JSON_USE_CPPTL_SMALLMAP 1 +#include +#include +#include +#include +#include +#include +#include +#include // If non-zero, the library uses exceptions to report bad input instead of C // assertion macros. The default is to use exceptions. @@ -143,164 +249,132 @@ license you like. #define JSON_USE_EXCEPTION 1 #endif +// Temporary, tracked for removal with issue #982. +#ifndef JSON_USE_NULLREF +#define JSON_USE_NULLREF 1 +#endif + /// If defined, indicates that the source file is amalgamated /// to prevent private header inclusion. /// Remarks: it is automatically defined in the generated amalgamated header. // #define JSON_IS_AMALGAMATION -#ifdef JSON_IN_CPPTL -#include -#ifndef JSON_USE_CPPTL -#define JSON_USE_CPPTL 1 -#endif -#endif - -#ifdef JSON_IN_CPPTL -#define JSON_API CPPTL_API -#elif defined(JSON_DLL_BUILD) +// Export macros for DLL visibility +#if defined(JSON_DLL_BUILD) #if defined(_MSC_VER) || defined(__MINGW32__) #define JSON_API __declspec(dllexport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING +#elif defined(__GNUC__) || defined(__clang__) +#define JSON_API __attribute__((visibility("default"))) #endif // if defined(_MSC_VER) + #elif defined(JSON_DLL) #if defined(_MSC_VER) || defined(__MINGW32__) #define JSON_API __declspec(dllimport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING #endif // if defined(_MSC_VER) -#endif // ifdef JSON_IN_CPPTL +#endif // ifdef JSON_DLL_BUILD + #if !defined(JSON_API) #define JSON_API #endif +#if defined(_MSC_VER) && _MSC_VER < 1800 +#error \ + "ERROR: Visual Studio 12 (2013) with _MSC_VER=1800 is the oldest supported compiler with sufficient C++11 capabilities" +#endif + +#if defined(_MSC_VER) && _MSC_VER < 1900 +// As recommended at +// https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010 +extern JSON_API int msvc_pre1900_c99_snprintf(char* outBuf, size_t size, + const char* format, ...); +#define jsoncpp_snprintf msvc_pre1900_c99_snprintf +#else +#define jsoncpp_snprintf std::snprintf +#endif + // If JSON_NO_INT64 is defined, then Json only support C++ "int" type for // integer // Storages, and 64 bits integer support is disabled. // #define JSON_NO_INT64 1 -#if defined(_MSC_VER) // MSVC -# if _MSC_VER <= 1200 // MSVC 6 - // Microsoft Visual Studio 6 only support conversion from __int64 to double - // (no conversion from unsigned __int64). -# define JSON_USE_INT64_DOUBLE_CONVERSION 1 - // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255' - // characters in the debug information) - // All projects I've ever seen with VS6 were using this globally (not bothering - // with pragma push/pop). -# pragma warning(disable : 4786) -# endif // MSVC 6 - -# if _MSC_VER >= 1500 // MSVC 2008 - /// Indicates that the following function is deprecated. -# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) -# endif - -#endif // defined(_MSC_VER) - -// In c++11 the override keyword allows you to explicitly define that a function -// is intended to override the base-class version. This makes the code more -// managable and fixes a set of common hard-to-find bugs. -#if __cplusplus >= 201103L -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT noexcept -#elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900 -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT throw() -#elif defined(_MSC_VER) && _MSC_VER >= 1900 -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT noexcept -#else -# define JSONCPP_OVERRIDE -# define JSONCPP_NOEXCEPT throw() -#endif - -#ifndef JSON_HAS_RVALUE_REFERENCES - -#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010 -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // MSVC >= 2010 +// JSONCPP_OVERRIDE is maintained for backwards compatibility of external tools. +// C++11 should be used directly in JSONCPP. +#define JSONCPP_OVERRIDE override #ifdef __clang__ -#if __has_feature(cxx_rvalue_references) -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // has_feature - -#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) -#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L) -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // GXX_EXPERIMENTAL - -#endif // __clang__ || __GNUC__ - -#endif // not defined JSON_HAS_RVALUE_REFERENCES - -#ifndef JSON_HAS_RVALUE_REFERENCES -#define JSON_HAS_RVALUE_REFERENCES 0 +#if __has_extension(attribute_deprecated_with_message) +#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message))) #endif - -#ifdef __clang__ -# if __has_extension(attribute_deprecated_with_message) -# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) -# endif -#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) -# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) -# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) -# elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) -# define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) -# endif // GNUC version -#endif // __clang__ || __GNUC__ +#elif defined(__GNUC__) // not clang (gcc comes later since clang emulates gcc) +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) +#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message))) +#elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +#define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) +#endif // GNUC version +#elif defined(_MSC_VER) // MSVC (after clang because clang on Windows emulates + // MSVC) +#define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) +#endif // __clang__ || __GNUC__ || _MSC_VER #if !defined(JSONCPP_DEPRECATED) #define JSONCPP_DEPRECATED(message) #endif // if !defined(JSONCPP_DEPRECATED) -#if __GNUC__ >= 6 -# define JSON_USE_INT64_DOUBLE_CONVERSION 1 +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 6)) +#define JSON_USE_INT64_DOUBLE_CONVERSION 1 #endif #if !defined(JSON_IS_AMALGAMATION) -# include "version.h" - -# if JSONCPP_USING_SECURE_MEMORY -# include "allocator.h" //typedef Allocator -# endif +#include "allocator.h" +#include "version.h" #endif // if !defined(JSON_IS_AMALGAMATION) namespace Json { -typedef int Int; -typedef unsigned int UInt; +using Int = int; +using UInt = unsigned int; #if defined(JSON_NO_INT64) -typedef int LargestInt; -typedef unsigned int LargestUInt; +using LargestInt = int; +using LargestUInt = unsigned int; #undef JSON_HAS_INT64 #else // if defined(JSON_NO_INT64) // For Microsoft Visual use specific types as long long is not supported #if defined(_MSC_VER) // Microsoft Visual Studio -typedef __int64 Int64; -typedef unsigned __int64 UInt64; +using Int64 = __int64; +using UInt64 = unsigned __int64; #else // if defined(_MSC_VER) // Other platforms, use long long -typedef int64_t Int64; -typedef uint64_t UInt64; -#endif // if defined(_MSC_VER) -typedef Int64 LargestInt; -typedef UInt64 LargestUInt; +using Int64 = int64_t; +using UInt64 = uint64_t; +#endif // if defined(_MSC_VER) +using LargestInt = Int64; +using LargestUInt = UInt64; #define JSON_HAS_INT64 #endif // if defined(JSON_NO_INT64) -#if JSONCPP_USING_SECURE_MEMORY -#define JSONCPP_STRING std::basic_string, Json::SecureAllocator > -#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream, Json::SecureAllocator > -#define JSONCPP_OSTREAM std::basic_ostream> -#define JSONCPP_ISTRINGSTREAM std::basic_istringstream, Json::SecureAllocator > -#define JSONCPP_ISTREAM std::istream -#else -#define JSONCPP_STRING std::string -#define JSONCPP_OSTRINGSTREAM std::ostringstream -#define JSONCPP_OSTREAM std::ostream -#define JSONCPP_ISTRINGSTREAM std::istringstream -#define JSONCPP_ISTREAM std::istream -#endif // if JSONCPP_USING_SECURE_MEMORY -} // end namespace Json + +template +using Allocator = + typename std::conditional, + std::allocator>::type; +using String = std::basic_string, Allocator>; +using IStringStream = + std::basic_istringstream; +using OStringStream = + std::basic_ostringstream; +using IStream = std::istream; +using OStream = std::ostream; +} // namespace Json + +// Legacy names (formerly macros). +using JSONCPP_STRING = Json::String; +using JSONCPP_ISTRINGSTREAM = Json::IStringStream; +using JSONCPP_OSTRINGSTREAM = Json::OStringStream; +using JSONCPP_ISTREAM = Json::IStream; +using JSONCPP_OSTREAM = Json::OStream; #endif // JSON_CONFIG_H_INCLUDED @@ -332,17 +406,23 @@ typedef UInt64 LargestUInt; namespace Json { // writer.h +class StreamWriter; +class StreamWriterBuilder; +class Writer; class FastWriter; class StyledWriter; +class StyledStreamWriter; // reader.h class Reader; +class CharReader; +class CharReaderBuilder; -// features.h +// json_features.h class Features; // value.h -typedef unsigned int ArrayIndex; +using ArrayIndex = unsigned int; class StaticString; class Path; class PathArgument; @@ -365,7 +445,7 @@ class ValueConstIterator; // ////////////////////////////////////////////////////////////////////// -// Beginning of content of file: include/json/features.h +// Beginning of content of file: include/json/json_features.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors @@ -373,8 +453,8 @@ class ValueConstIterator; // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE -#ifndef CPPTL_JSON_FEATURES_H_INCLUDED -#define CPPTL_JSON_FEATURES_H_INCLUDED +#ifndef JSON_FEATURES_H_INCLUDED +#define JSON_FEATURES_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "forwards.h" @@ -411,27 +491,27 @@ public: Features(); /// \c true if comments are allowed. Default: \c true. - bool allowComments_; + bool allowComments_{true}; /// \c true if root must be either an array or an object value. Default: \c /// false. - bool strictRoot_; + bool strictRoot_{false}; /// \c true if dropped null placeholders are allowed. Default: \c false. - bool allowDroppedNullPlaceholders_; + bool allowDroppedNullPlaceholders_{false}; /// \c true if numeric object key are allowed. Default: \c false. - bool allowNumericKeys_; + bool allowNumericKeys_{false}; }; } // namespace Json #pragma pack(pop) -#endif // CPPTL_JSON_FEATURES_H_INCLUDED +#endif // JSON_FEATURES_H_INCLUDED // ////////////////////////////////////////////////////////////////////// -// End of content of file: include/json/features.h +// End of content of file: include/json/json_features.h // ////////////////////////////////////////////////////////////////////// @@ -448,37 +528,48 @@ public: // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE -#ifndef CPPTL_JSON_H_INCLUDED -#define CPPTL_JSON_H_INCLUDED +#ifndef JSON_H_INCLUDED +#define JSON_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "forwards.h" #endif // if !defined(JSON_IS_AMALGAMATION) -#include -#include -#include -#ifndef JSON_USE_CPPTL_SMALLMAP -#include -#else -#include -#endif -#ifdef JSON_USE_CPPTL -#include -#endif - -//Conditional NORETURN attribute on the throw functions would: +// Conditional NORETURN attribute on the throw functions would: // a) suppress false positives from static code analysis // b) possibly improve optimization opportunities. #if !defined(JSONCPP_NORETURN) -# if defined(_MSC_VER) -# define JSONCPP_NORETURN __declspec(noreturn) -# elif defined(__GNUC__) -# define JSONCPP_NORETURN __attribute__ ((__noreturn__)) -# else -# define JSONCPP_NORETURN -# endif +#if defined(_MSC_VER) && _MSC_VER == 1800 +#define JSONCPP_NORETURN __declspec(noreturn) +#else +#define JSONCPP_NORETURN [[noreturn]] #endif +#endif + +// Support for '= delete' with template declarations was a late addition +// to the c++11 standard and is rejected by clang 3.8 and Apple clang 8.2 +// even though these declare themselves to be c++11 compilers. +#if !defined(JSONCPP_TEMPLATE_DELETE) +#if defined(__clang__) && defined(__apple_build_version__) +#if __apple_build_version__ <= 8000042 +#define JSONCPP_TEMPLATE_DELETE +#endif +#elif defined(__clang__) +#if __clang_major__ == 3 && __clang_minor__ <= 8 +#define JSONCPP_TEMPLATE_DELETE +#endif +#endif +#if !defined(JSONCPP_TEMPLATE_DELETE) +#define JSONCPP_TEMPLATE_DELETE = delete +#endif +#endif + +#include +#include +#include +#include +#include +#include // Disable warning C4251: : needs to have dll-interface to // be used by... @@ -493,17 +584,19 @@ public: */ namespace Json { +#if JSON_USE_EXCEPTION /** Base class for all exceptions we throw. * * We use nothing but these internally. Of course, STL can throw others. */ class JSON_API Exception : public std::exception { public: - Exception(JSONCPP_STRING const& msg); - ~Exception() JSONCPP_NOEXCEPT JSONCPP_OVERRIDE; - char const* what() const JSONCPP_NOEXCEPT JSONCPP_OVERRIDE; + Exception(String msg); + ~Exception() noexcept override; + char const* what() const noexcept override; + protected: - JSONCPP_STRING msg_; + String msg_; }; /** Exceptions which the user cannot easily avoid. @@ -514,7 +607,7 @@ protected: */ class JSON_API RuntimeError : public Exception { public: - RuntimeError(JSONCPP_STRING const& msg); + RuntimeError(String const& msg); }; /** Exceptions thrown by JSON_ASSERT/JSON_FAIL macros. @@ -525,13 +618,14 @@ public: */ class JSON_API LogicError : public Exception { public: - LogicError(JSONCPP_STRING const& msg); + LogicError(String const& msg); }; +#endif /// used internally -JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg); +JSONCPP_NORETURN void throwRuntimeError(String const& msg); /// used internally -JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg); +JSONCPP_NORETURN void throwLogicError(String const& msg); /** \brief Type of the value held by a Value object. */ @@ -554,10 +648,12 @@ enum CommentPlacement { numberOfCommentPlacement }; -//# ifdef JSON_USE_CPPTL -// typedef CppTL::AnyEnumerator EnumMemberNames; -// typedef CppTL::AnyEnumerator EnumValues; -//# endif +/** \brief Type of precision for formatting of real values. + */ +enum PrecisionType { + significantDigits = 0, ///< we set max number of significant digits in string + decimalPlaces ///< we set max number of digits after "." in string +}; /** \brief Lightweight wrapper to tag static string. * @@ -610,7 +706,7 @@ private: * The get() methods can be used to obtain default value in the case the * required element does not exist. * - * It is possible to iterate over the list of a #objectValue values using + * It is possible to iterate over the list of member keys of an object using * the getMemberNames() method. * * \note #Value string-length fit in size_t, but keys must be < 2^30. @@ -621,76 +717,86 @@ private: */ class JSON_API Value { friend class ValueIteratorBase; + public: - typedef std::vector Members; - typedef ValueIterator iterator; - typedef ValueConstIterator const_iterator; - typedef Json::UInt UInt; - typedef Json::Int Int; + using Members = std::vector; + using iterator = ValueIterator; + using const_iterator = ValueConstIterator; + using UInt = Json::UInt; + using Int = Json::Int; #if defined(JSON_HAS_INT64) - typedef Json::UInt64 UInt64; - typedef Json::Int64 Int64; + using UInt64 = Json::UInt64; + using Int64 = Json::Int64; #endif // defined(JSON_HAS_INT64) - typedef Json::LargestInt LargestInt; - typedef Json::LargestUInt LargestUInt; - typedef Json::ArrayIndex ArrayIndex; + using LargestInt = Json::LargestInt; + using LargestUInt = Json::LargestUInt; + using ArrayIndex = Json::ArrayIndex; // Required for boost integration, e. g. BOOST_TEST - typedef std::string value_type; + using value_type = std::string; - static const Value& null; ///< We regret this reference to a global instance; prefer the simpler Value(). - static const Value& nullRef; ///< just a kludge for binary-compatibility; same as null - static Value const& nullSingleton(); ///< Prefer this to null or nullRef. +#if JSON_USE_NULLREF + // Binary compatibility kludges, do not use. + static const Value& null; + static const Value& nullRef; +#endif + + // null and nullRef are deprecated, use this instead. + static Value const& nullSingleton(); /// Minimum signed integer value that can be stored in a Json::Value. - static const LargestInt minLargestInt; + static constexpr LargestInt minLargestInt = + LargestInt(~(LargestUInt(-1) / 2)); /// Maximum signed integer value that can be stored in a Json::Value. - static const LargestInt maxLargestInt; + static constexpr LargestInt maxLargestInt = LargestInt(LargestUInt(-1) / 2); /// Maximum unsigned integer value that can be stored in a Json::Value. - static const LargestUInt maxLargestUInt; + static constexpr LargestUInt maxLargestUInt = LargestUInt(-1); /// Minimum signed int value that can be stored in a Json::Value. - static const Int minInt; + static constexpr Int minInt = Int(~(UInt(-1) / 2)); /// Maximum signed int value that can be stored in a Json::Value. - static const Int maxInt; + static constexpr Int maxInt = Int(UInt(-1) / 2); /// Maximum unsigned int value that can be stored in a Json::Value. - static const UInt maxUInt; + static constexpr UInt maxUInt = UInt(-1); #if defined(JSON_HAS_INT64) /// Minimum signed 64 bits int value that can be stored in a Json::Value. - static const Int64 minInt64; + static constexpr Int64 minInt64 = Int64(~(UInt64(-1) / 2)); /// Maximum signed 64 bits int value that can be stored in a Json::Value. - static const Int64 maxInt64; + static constexpr Int64 maxInt64 = Int64(UInt64(-1) / 2); /// Maximum unsigned 64 bits int value that can be stored in a Json::Value. - static const UInt64 maxUInt64; + static constexpr UInt64 maxUInt64 = UInt64(-1); #endif // defined(JSON_HAS_INT64) - + /// Default precision for real value for string representation. + static constexpr UInt defaultRealPrecision = 17; + // The constant is hard-coded because some compiler have trouble + // converting Value::maxUInt64 to a double correctly (AIX/xlC). + // Assumes that UInt64 is a 64 bits integer. + static constexpr double maxUInt64AsDouble = 18446744073709551615.0; +// Workaround for bug in the NVIDIAs CUDA 9.1 nvcc compiler +// when using gcc and clang backend compilers. CZString +// cannot be defined as private. See issue #486 +#ifdef __NVCC__ +public: +#else private: +#endif #ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION class CZString { public: - enum DuplicationPolicy { - noDuplication = 0, - duplicate, - duplicateOnCopy - }; + enum DuplicationPolicy { noDuplication = 0, duplicate, duplicateOnCopy }; CZString(ArrayIndex index); CZString(char const* str, unsigned length, DuplicationPolicy allocate); CZString(CZString const& other); -#if JSON_HAS_RVALUE_REFERENCES CZString(CZString&& other); -#endif ~CZString(); CZString& operator=(const CZString& other); - -#if JSON_HAS_RVALUE_REFERENCES CZString& operator=(CZString&& other); -#endif bool operator<(CZString const& other) const; bool operator==(CZString const& other) const; ArrayIndex index() const; - //const char* c_str() const; ///< \deprecated + // const char* c_str() const; ///< \deprecated char const* data() const; unsigned length() const; bool isStaticString() const; @@ -699,11 +805,11 @@ private: void swap(CZString& other); struct StringStorage { - unsigned policy_: 2; - unsigned length_: 30; // 1GB max + unsigned policy_ : 2; + unsigned length_ : 30; // 1GB max }; - char const* cstr_; // actually, a prefixed string, unless policy is noDup + char const* cstr_; // actually, a prefixed string, unless policy is noDup union { ArrayIndex index_; StringStorage storage_; @@ -711,29 +817,26 @@ private: }; public: -#ifndef JSON_USE_CPPTL_SMALLMAP typedef std::map ObjectValues; -#else - typedef CppTL::SmallMap ObjectValues; -#endif // ifndef JSON_USE_CPPTL_SMALLMAP #endif // ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION public: - /** \brief Create a default Value of the given type. - - This is a very useful constructor. - To create an empty array, pass arrayValue. - To create an empty object, pass objectValue. - Another Value can then be set to this one by assignment. -This is useful since clear() and resize() will not alter types. - - Examples: -\code -Json::Value null_value; // null -Json::Value arr_value(Json::arrayValue); // [] -Json::Value obj_value(Json::objectValue); // {} -\endcode - */ + /** + * \brief Create a default Value of the given type. + * + * This is a very useful constructor. + * To create an empty array, pass arrayValue. + * To create an empty object, pass objectValue. + * Another Value can then be set to this one by assignment. + * This is useful since clear() and resize() will not alter types. + * + * Examples: + * \code + * Json::Value null_value; // null + * Json::Value arr_value(Json::arrayValue); // [] + * Json::Value obj_value(Json::objectValue); // {} + * \endcode + */ Value(ValueType type = nullValue); Value(Int value); Value(UInt value); @@ -744,38 +847,35 @@ Json::Value obj_value(Json::objectValue); // {} Value(double value); Value(const char* value); ///< Copy til first 0. (NULL causes to seg-fault.) Value(const char* begin, const char* end); ///< Copy all, incl zeroes. - /** \brief Constructs a value from a static string. - + /** + * \brief Constructs a value from a static string. + * * Like other value string constructor but do not duplicate the string for - * internal storage. The given string must remain alive after the call to this - * constructor. + * internal storage. The given string must remain alive after the call to + * this constructor. + * * \note This works only for null-terminated strings. (We cannot change the - * size of this class, so we have nowhere to store the length, - * which might be computed later for various operations.) + * size of this class, so we have nowhere to store the length, which might be + * computed later for various operations.) * * Example of usage: - * \code - * static StaticString foo("some text"); - * Json::Value aValue(foo); - * \endcode + * \code + * static StaticString foo("some text"); + * Json::Value aValue(foo); + * \endcode */ Value(const StaticString& value); - Value(const JSONCPP_STRING& value); ///< Copy data() til size(). Embedded zeroes too. -#ifdef JSON_USE_CPPTL - Value(const CppTL::ConstString& value); -#endif + Value(const String& value); Value(bool value); - /// Deep copy. + Value(std::nullptr_t ptr) = delete; Value(const Value& other); -#if JSON_HAS_RVALUE_REFERENCES - /// Move constructor Value(Value&& other); -#endif ~Value(); - /// Deep copy, then swap(other). - /// \note Over-write existing comments. To preserve comments, use #swapPayload(). - Value& operator=(Value other); + /// \note Overwrite existing comments. To preserve comments, use + /// #swapPayload(). + Value& operator=(const Value& other); + Value& operator=(Value&& other); /// Swap everything. void swap(Value& other); @@ -800,17 +900,14 @@ Json::Value obj_value(Json::objectValue); // {} const char* asCString() const; ///< Embedded zeroes could cause you trouble! #if JSONCPP_USING_SECURE_MEMORY - unsigned getCStringLength() const; //Allows you to understand the length of the CString + unsigned getCStringLength() const; // Allows you to understand the length of + // the CString #endif - JSONCPP_STRING asString() const; ///< Embedded zeroes are possible. + String asString() const; ///< Embedded zeroes are possible. /** Get raw char* of string-value. * \return false if !string. (Seg-fault if str or end are NULL.) */ - bool getString( - char const** begin, char const** end) const; -#ifdef JSON_USE_CPPTL - CppTL::ConstString asConstString() const; -#endif + bool getString(char const** begin, char const** end) const; Int asInt() const; UInt asUInt() const; #if defined(JSON_HAS_INT64) @@ -836,6 +933,10 @@ Json::Value obj_value(Json::objectValue); // {} bool isArray() const; bool isObject() const; + /// The `as` and `is` member function templates and specializations. + template T as() const JSONCPP_TEMPLATE_DELETE; + template bool is() const JSONCPP_TEMPLATE_DELETE; + bool isConvertibleTo(ValueType other) const; /// Number of values in array or object @@ -853,42 +954,33 @@ Json::Value obj_value(Json::objectValue); // {} /// \post type() is unchanged void clear(); - /// Resize the array to size elements. + /// Resize the array to newSize elements. /// New elements are initialized to null. /// May only be called on nullValue or arrayValue. /// \pre type() is arrayValue or nullValue /// \post type() is arrayValue - void resize(ArrayIndex size); + void resize(ArrayIndex newSize); - /// Access an array element (zero based index ). - /// If the array contains less than index element, then null value are - /// inserted - /// in the array so that its size is index+1. + //@{ + /// Access an array element (zero based index). If the array contains less + /// than index element, then null value are inserted in the array so that + /// its size is index+1. /// (You may need to say 'value[0u]' to get your compiler to distinguish - /// this from the operator[] which takes a string.) + /// this from the operator[] which takes a string.) Value& operator[](ArrayIndex index); - - /// Access an array element (zero based index ). - /// If the array contains less than index element, then null value are - /// inserted - /// in the array so that its size is index+1. - /// (You may need to say 'value[0u]' to get your compiler to distinguish - /// this from the operator[] which takes a string.) Value& operator[](int index); + //@} - /// Access an array element (zero based index ) + //@{ + /// Access an array element (zero based index). /// (You may need to say 'value[0u]' to get your compiler to distinguish - /// this from the operator[] which takes a string.) + /// this from the operator[] which takes a string.) const Value& operator[](ArrayIndex index) const; - - /// Access an array element (zero based index ) - /// (You may need to say 'value[0u]' to get your compiler to distinguish - /// this from the operator[] which takes a string.) const Value& operator[](int index) const; + //@} /// If the array contains at least index+1 elements, returns the element - /// value, - /// otherwise returns defaultValue. + /// value, otherwise returns defaultValue. Value get(ArrayIndex index, const Value& defaultValue) const; /// Return true if index < size(). bool isValidIndex(ArrayIndex index) const; @@ -896,61 +988,51 @@ Json::Value obj_value(Json::objectValue); // {} /// /// Equivalent to jsonvalue[jsonvalue.size()] = value; Value& append(const Value& value); - -#if JSON_HAS_RVALUE_REFERENCES Value& append(Value&& value); -#endif + + /// \brief Insert value in array at specific index + bool insert(ArrayIndex index, const Value& newValue); + bool insert(ArrayIndex index, Value&& newValue); /// Access an object value by name, create a null member if it does not exist. /// \note Because of our implementation, keys are limited to 2^30 -1 chars. - /// Exceeding that will cause an exception. + /// Exceeding that will cause an exception. Value& operator[](const char* key); /// Access an object value by name, returns null if there is no member with /// that name. const Value& operator[](const char* key) const; /// Access an object value by name, create a null member if it does not exist. /// \param key may contain embedded nulls. - Value& operator[](const JSONCPP_STRING& key); + Value& operator[](const String& key); /// Access an object value by name, returns null if there is no member with /// that name. /// \param key may contain embedded nulls. - const Value& operator[](const JSONCPP_STRING& key) const; + const Value& operator[](const String& key) const; /** \brief Access an object value by name, create a null member if it does not - exist. - - * If the object has no entry for that name, then the member name used to store - * the new entry is not duplicated. + * exist. + * + * If the object has no entry for that name, then the member name used to + * store the new entry is not duplicated. * Example of use: - * \code - * Json::Value object; - * static const StaticString code("code"); - * object[code] = 1234; - * \endcode + * \code + * Json::Value object; + * static const StaticString code("code"); + * object[code] = 1234; + * \endcode */ Value& operator[](const StaticString& key); -#ifdef JSON_USE_CPPTL - /// Access an object value by name, create a null member if it does not exist. - Value& operator[](const CppTL::ConstString& key); - /// Access an object value by name, returns null if there is no member with - /// that name. - const Value& operator[](const CppTL::ConstString& key) const; -#endif /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy Value get(const char* key, const Value& defaultValue) const; /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy /// \note key may contain embedded nulls. - Value get(const char* begin, const char* end, const Value& defaultValue) const; + Value get(const char* begin, const char* end, + const Value& defaultValue) const; /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy /// \param key may contain embedded nulls. - Value get(const JSONCPP_STRING& key, const Value& defaultValue) const; -#ifdef JSON_USE_CPPTL - /// Return the member named key if it exist, defaultValue otherwise. - /// \note deep copy - Value get(const CppTL::ConstString& key, const Value& defaultValue) const; -#endif + Value get(const String& key, const Value& defaultValue) const; /// Most general and efficient version of isMember()const, get()const, /// and operator[]const /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30 @@ -958,51 +1040,44 @@ Json::Value obj_value(Json::objectValue); // {} /// Most general and efficient version of object-mutators. /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30 /// \return non-zero, but JSON_ASSERT if this is neither object nor nullValue. - Value const* demand(char const* begin, char const* end); + Value* demand(char const* begin, char const* end); /// \brief Remove and return the named member. /// /// Do nothing if it did not exist. - /// \return the removed Value, or null. /// \pre type() is objectValue or nullValue /// \post type() is unchanged - /// \deprecated void removeMember(const char* key); /// Same as removeMember(const char*) /// \param key may contain embedded nulls. - /// \deprecated - void removeMember(const JSONCPP_STRING& key); + void removeMember(const String& key); /// Same as removeMember(const char* begin, const char* end, Value* removed), /// but 'key' is null-terminated. bool removeMember(const char* key, Value* removed); /** \brief Remove the named map member. - - Update 'removed' iff removed. - \param key may contain embedded nulls. - \return true iff removed (no exceptions) - */ - bool removeMember(JSONCPP_STRING const& key, Value* removed); - /// Same as removeMember(JSONCPP_STRING const& key, Value* removed) + * + * Update 'removed' iff removed. + * \param key may contain embedded nulls. + * \return true iff removed (no exceptions) + */ + bool removeMember(String const& key, Value* removed); + /// Same as removeMember(String const& key, Value* removed) bool removeMember(const char* begin, const char* end, Value* removed); /** \brief Remove the indexed array element. - - O(n) expensive operations. - Update 'removed' iff removed. - \return true iff removed (no exceptions) - */ - bool removeIndex(ArrayIndex i, Value* removed); + * + * O(n) expensive operations. + * Update 'removed' iff removed. + * \return true if removed (no exceptions) + */ + bool removeIndex(ArrayIndex index, Value* removed); /// Return true if the object has a member named key. /// \note 'key' must be null-terminated. bool isMember(const char* key) const; /// Return true if the object has a member named key. /// \param key may contain embedded nulls. - bool isMember(const JSONCPP_STRING& key) const; - /// Same as isMember(JSONCPP_STRING const& key)const + bool isMember(const String& key) const; + /// Same as isMember(String const& key)const bool isMember(const char* begin, const char* end) const; -#ifdef JSON_USE_CPPTL - /// Return true if the object has a member named key. - bool isMember(const CppTL::ConstString& key) const; -#endif /// \brief Return a list of the member names. /// @@ -1011,23 +1086,22 @@ Json::Value obj_value(Json::objectValue); // {} /// \post if type() was nullValue, it remains nullValue Members getMemberNames() const; - //# ifdef JSON_USE_CPPTL - // EnumMemberNames enumMemberNames() const; - // EnumValues enumValues() const; - //# endif - /// \deprecated Always pass len. - JSONCPP_DEPRECATED("Use setComment(JSONCPP_STRING const&) instead.") - void setComment(const char* comment, CommentPlacement placement); + JSONCPP_DEPRECATED("Use setComment(String const&) instead.") + void setComment(const char* comment, CommentPlacement placement) { + setComment(String(comment, strlen(comment)), placement); + } /// Comments must be //... or /* ... */ - void setComment(const char* comment, size_t len, CommentPlacement placement); + void setComment(const char* comment, size_t len, CommentPlacement placement) { + setComment(String(comment, len), placement); + } /// Comments must be //... or /* ... */ - void setComment(const JSONCPP_STRING& comment, CommentPlacement placement); + void setComment(String comment, CommentPlacement placement); bool hasComment(CommentPlacement placement) const; /// Include delimiters and embedded newlines. - JSONCPP_STRING getComment(CommentPlacement placement) const; + String getComment(CommentPlacement placement) const; - JSONCPP_STRING toStyledString() const; + String toStyledString() const; const_iterator begin() const; const_iterator end() const; @@ -1043,20 +1117,20 @@ Json::Value obj_value(Json::objectValue); // {} ptrdiff_t getOffsetLimit() const; private: + void setType(ValueType v) { + bits_.value_type_ = static_cast(v); + } + bool isAllocated() const { return bits_.allocated_; } + void setIsAllocated(bool v) { bits_.allocated_ = v; } + void initBasic(ValueType type, bool allocated = false); + void dupPayload(const Value& other); + void releasePayload(); + void dupMeta(const Value& other); Value& resolveReference(const char* key); Value& resolveReference(const char* key, const char* end); - struct CommentInfo { - CommentInfo(); - ~CommentInfo(); - - void setComment(const char* text, size_t len); - - char* comment_; - }; - // struct MemberNamesTransform //{ // typedef const char *result_type; @@ -1071,13 +1145,33 @@ private: LargestUInt uint_; double real_; bool bool_; - char* string_; // actually ptr to unsigned, followed by str, unless !allocated_ + char* string_; // if allocated_, ptr to { unsigned, char[] }. ObjectValues* map_; } value_; - ValueType type_ : 8; - unsigned int allocated_ : 1; // Notes: if declared as bool, bitfield is useless. - // If not allocated_, string_ must be null-terminated. - CommentInfo* comments_; + + struct { + // Really a ValueType, but types should agree for bitfield packing. + unsigned int value_type_ : 8; + // Unless allocated_, string_ must be null-terminated. + unsigned int allocated_ : 1; + } bits_; + + class Comments { + public: + Comments() = default; + Comments(const Comments& that); + Comments(Comments&& that); + Comments& operator=(const Comments& that); + Comments& operator=(Comments&& that); + bool has(CommentPlacement slot) const; + String get(CommentPlacement slot) const; + void set(CommentPlacement slot, String comment); + + private: + using Array = std::array; + std::unique_ptr ptr_; + }; + Comments comments_; // [start, limit) byte offsets in the source JSON text from which this Value // was extracted. @@ -1085,6 +1179,36 @@ private: ptrdiff_t limit_; }; +template <> inline bool Value::as() const { return asBool(); } +template <> inline bool Value::is() const { return isBool(); } + +template <> inline Int Value::as() const { return asInt(); } +template <> inline bool Value::is() const { return isInt(); } + +template <> inline UInt Value::as() const { return asUInt(); } +template <> inline bool Value::is() const { return isUInt(); } + +#if defined(JSON_HAS_INT64) +template <> inline Int64 Value::as() const { return asInt64(); } +template <> inline bool Value::is() const { return isInt64(); } + +template <> inline UInt64 Value::as() const { return asUInt64(); } +template <> inline bool Value::is() const { return isUInt64(); } +#endif + +template <> inline double Value::as() const { return asDouble(); } +template <> inline bool Value::is() const { return isDouble(); } + +template <> inline String Value::as() const { return asString(); } +template <> inline bool Value::is() const { return isString(); } + +/// These `as` specializations are type conversions, and do not have a +/// corresponding `is`. +template <> inline float Value::as() const { return asFloat(); } +template <> inline const char* Value::as() const { + return asCString(); +} + /** \brief Experimental and untested: represents an element of the "path" to * access a node. */ @@ -1095,17 +1219,13 @@ public: PathArgument(); PathArgument(ArrayIndex index); PathArgument(const char* key); - PathArgument(const JSONCPP_STRING& key); + PathArgument(String key); private: - enum Kind { - kindNone = 0, - kindIndex, - kindKey - }; - JSONCPP_STRING key_; - ArrayIndex index_; - Kind kind_; + enum Kind { kindNone = 0, kindIndex, kindKey }; + String key_; + ArrayIndex index_{}; + Kind kind_{kindNone}; }; /** \brief Experimental and untested: represents a "path" to access a node. @@ -1117,12 +1237,11 @@ private: * - ".name1.name2.name3" * - ".[0][1][2].name1[3]" * - ".%" => member name is provided as parameter - * - ".[%]" => index is provied as parameter + * - ".[%]" => index is provided as parameter */ class JSON_API Path { public: - Path(const JSONCPP_STRING& path, - const PathArgument& a1 = PathArgument(), + Path(const String& path, const PathArgument& a1 = PathArgument(), const PathArgument& a2 = PathArgument(), const PathArgument& a3 = PathArgument(), const PathArgument& a4 = PathArgument(), @@ -1135,15 +1254,13 @@ public: Value& make(Value& root) const; private: - typedef std::vector InArgs; - typedef std::vector Args; + using InArgs = std::vector; + using Args = std::vector; - void makePath(const JSONCPP_STRING& path, const InArgs& in); - void addPathInArg(const JSONCPP_STRING& path, - const InArgs& in, - InArgs::const_iterator& itInArg, - PathArgument::Kind kind); - void invalidPath(const JSONCPP_STRING& path, int location); + void makePath(const String& path, const InArgs& in); + void addPathInArg(const String& path, const InArgs& in, + InArgs::const_iterator& itInArg, PathArgument::Kind kind); + static void invalidPath(const String& path, int location); Args args_; }; @@ -1153,10 +1270,10 @@ private: */ class JSON_API ValueIteratorBase { public: - typedef std::bidirectional_iterator_tag iterator_category; - typedef unsigned int size_t; - typedef int difference_type; - typedef ValueIteratorBase SelfType; + using iterator_category = std::bidirectional_iterator_tag; + using size_t = unsigned int; + using difference_type = int; + using SelfType = ValueIteratorBase; bool operator==(const SelfType& other) const { return isEqual(other); } @@ -1170,17 +1287,19 @@ public: /// Value. Value key() const; - /// Return the index of the referenced Value, or -1 if it is not an arrayValue. + /// Return the index of the referenced Value, or -1 if it is not an + /// arrayValue. UInt index() const; /// Return the member name of the referenced Value, or "" if it is not an /// objectValue. /// \note Avoid `c_str()` on result, as embedded zeroes are possible. - JSONCPP_STRING name() const; + String name() const; /// Return the member name of the referenced Value. "" if it is not an /// objectValue. - /// \deprecated This cannot be used for UTF-8 strings, since there can be embedded nulls. + /// \deprecated This cannot be used for UTF-8 strings, since there can be + /// embedded nulls. JSONCPP_DEPRECATED("Use `key = name();` instead.") char const* memberName() const; /// Return the member name of the referenced Value, or NULL if it is not an @@ -1189,7 +1308,14 @@ public: char const* memberName(char const** end) const; protected: - Value& deref() const; + /*! Internal utility functions to assist with implementing + * other iterator functions. The const and non-const versions + * of the "deref" protected methods expose the protected + * current_ member variable in a way that can often be + * optimized away by the compiler. + */ + const Value& deref() const; + Value& deref(); void increment(); @@ -1204,7 +1330,7 @@ protected: private: Value::ObjectValues::iterator current_; // Indicates that iterator is for a null value. - bool isNull_; + bool isNull_{true}; public: // For some reason, BORLAND needs these at the end, rather @@ -1220,20 +1346,21 @@ class JSON_API ValueConstIterator : public ValueIteratorBase { friend class Value; public: - typedef const Value value_type; - //typedef unsigned int size_t; - //typedef int difference_type; - typedef const Value& reference; - typedef const Value* pointer; - typedef ValueConstIterator SelfType; + using value_type = const Value; + // typedef unsigned int size_t; + // typedef int difference_type; + using reference = const Value&; + using pointer = const Value*; + using SelfType = ValueConstIterator; ValueConstIterator(); ValueConstIterator(ValueIterator const& other); private: -/*! \internal Use by Value to create an iterator. - */ + /*! \internal Use by Value to create an iterator. + */ explicit ValueConstIterator(const Value::ObjectValues::iterator& current); + public: SelfType& operator=(const ValueIteratorBase& other); @@ -1270,21 +1397,22 @@ class JSON_API ValueIterator : public ValueIteratorBase { friend class Value; public: - typedef Value value_type; - typedef unsigned int size_t; - typedef int difference_type; - typedef Value& reference; - typedef Value* pointer; - typedef ValueIterator SelfType; + using value_type = Value; + using size_t = unsigned int; + using difference_type = int; + using reference = Value&; + using pointer = Value*; + using SelfType = ValueIterator; ValueIterator(); explicit ValueIterator(const ValueConstIterator& other); ValueIterator(const ValueIterator& other); private: -/*! \internal Use by Value to create an iterator. - */ + /*! \internal Use by Value to create an iterator. + */ explicit ValueIterator(const Value::ObjectValues::iterator& current); + public: SelfType& operator=(const SelfType& other); @@ -1310,27 +1438,26 @@ public: return *this; } - reference operator*() const { return deref(); } - - pointer operator->() const { return &deref(); } + /*! The return value of non-const iterators can be + * changed, so the these functions are not const + * because the returned references/pointers can be used + * to change state of the base class. + */ + reference operator*() { return deref(); } + pointer operator->() { return &deref(); } }; +inline void swap(Value& a, Value& b) { a.swap(b); } + } // namespace Json - -namespace std { -/// Specialize std::swap() for Json::Value. -template<> -inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); } -} - #pragma pack(pop) #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) #pragma warning(pop) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) -#endif // CPPTL_JSON_H_INCLUDED +#endif // JSON_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/value.h @@ -1350,18 +1477,18 @@ inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); } // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE -#ifndef CPPTL_JSON_READER_H_INCLUDED -#define CPPTL_JSON_READER_H_INCLUDED +#ifndef JSON_READER_H_INCLUDED +#define JSON_READER_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) -#include "features.h" +#include "json_features.h" #include "value.h" #endif // if !defined(JSON_IS_AMALGAMATION) #include #include +#include #include #include -#include // Disable warning C4251: : needs to have dll-interface to // be used by... @@ -1375,132 +1502,130 @@ inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); } namespace Json { /** \brief Unserialize a JSON document into a - *Value. + * Value. * * \deprecated Use CharReader and CharReaderBuilder. */ -class JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead") JSON_API Reader { + +class JSONCPP_DEPRECATED( + "Use CharReader and CharReaderBuilder instead.") JSON_API Reader { public: - typedef char Char; - typedef const Char* Location; + using Char = char; + using Location = const Char*; /** \brief An error tagged with where in the JSON text it was encountered. * * The offsets give the [start, limit) range of bytes within the text. Note * that this is bytes, not codepoints. - * */ struct StructuredError { ptrdiff_t offset_start; ptrdiff_t offset_limit; - JSONCPP_STRING message; + String message; }; - /** \brief Constructs a Reader allowing all features - * for parsing. + /** \brief Constructs a Reader allowing all features for parsing. */ + JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead") Reader(); - /** \brief Constructs a Reader allowing the specified feature set - * for parsing. + /** \brief Constructs a Reader allowing the specified feature set for parsing. */ + JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead") Reader(const Features& features); /** \brief Read a Value from a JSON * document. - * \param document UTF-8 encoded string containing the document to read. - * \param root [out] Contains the root value of the document if it was - * successfully parsed. - * \param collectComments \c true to collect comment and allow writing them - * back during - * serialization, \c false to discard comments. - * This parameter is ignored if - * Features::allowComments_ - * is \c false. + * + * \param document UTF-8 encoded string containing the document + * to read. + * \param[out] root Contains the root value of the document if it + * was successfully parsed. + * \param collectComments \c true to collect comment and allow writing + * them back during serialization, \c false to + * discard comments. This parameter is ignored + * if Features::allowComments_ is \c false. * \return \c true if the document was successfully parsed, \c false if an * error occurred. */ - bool - parse(const std::string& document, Value& root, bool collectComments = true); + bool parse(const std::string& document, Value& root, + bool collectComments = true); /** \brief Read a Value from a JSON - document. - * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the - document to read. - * \param endDoc Pointer on the end of the UTF-8 encoded string of the - document to read. - * Must be >= beginDoc. - * \param root [out] Contains the root value of the document if it was - * successfully parsed. - * \param collectComments \c true to collect comment and allow writing them - back during - * serialization, \c false to discard comments. - * This parameter is ignored if - Features::allowComments_ - * is \c false. + * document. + * + * \param beginDoc Pointer on the beginning of the UTF-8 encoded + * string of the document to read. + * \param endDoc Pointer on the end of the UTF-8 encoded string + * of the document to read. Must be >= beginDoc. + * \param[out] root Contains the root value of the document if it + * was successfully parsed. + * \param collectComments \c true to collect comment and allow writing + * them back during serialization, \c false to + * discard comments. This parameter is ignored + * if Features::allowComments_ is \c false. * \return \c true if the document was successfully parsed, \c false if an - error occurred. + * error occurred. */ - bool parse(const char* beginDoc, - const char* endDoc, - Value& root, + bool parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments = true); /// \brief Parse from input stream. /// \see Json::operator>>(std::istream&, Json::Value&). - bool parse(JSONCPP_ISTREAM& is, Value& root, bool collectComments = true); + bool parse(IStream& is, Value& root, bool collectComments = true); /** \brief Returns a user friendly string that list errors in the parsed * document. - * \return Formatted error message with the list of errors with their location - * in - * the parsed document. An empty string is returned if no error - * occurred - * during parsing. + * + * \return Formatted error message with the list of errors with their + * location in the parsed document. An empty string is returned if no error + * occurred during parsing. * \deprecated Use getFormattedErrorMessages() instead (typo fix). */ JSONCPP_DEPRECATED("Use getFormattedErrorMessages() instead.") - JSONCPP_STRING getFormatedErrorMessages() const; + String getFormatedErrorMessages() const; /** \brief Returns a user friendly string that list errors in the parsed * document. - * \return Formatted error message with the list of errors with their location - * in - * the parsed document. An empty string is returned if no error - * occurred - * during parsing. + * + * \return Formatted error message with the list of errors with their + * location in the parsed document. An empty string is returned if no error + * occurred during parsing. */ - JSONCPP_STRING getFormattedErrorMessages() const; + String getFormattedErrorMessages() const; - /** \brief Returns a vector of structured erros encounted while parsing. + /** \brief Returns a vector of structured errors encountered while parsing. + * * \return A (possibly empty) vector of StructuredError objects. Currently - * only one error can be returned, but the caller should tolerate - * multiple - * errors. This can occur if the parser recovers from a non-fatal - * parse error and then encounters additional errors. + * only one error can be returned, but the caller should tolerate multiple + * errors. This can occur if the parser recovers from a non-fatal parse + * error and then encounters additional errors. */ std::vector getStructuredErrors() const; /** \brief Add a semantic error message. - * \param value JSON Value location associated with the error + * + * \param value JSON Value location associated with the error * \param message The error message. - * \return \c true if the error was successfully added, \c false if the - * Value offset exceeds the document size. + * \return \c true if the error was successfully added, \c false if the Value + * offset exceeds the document size. */ - bool pushError(const Value& value, const JSONCPP_STRING& message); + bool pushError(const Value& value, const String& message); /** \brief Add a semantic error message with extra context. - * \param value JSON Value location associated with the error + * + * \param value JSON Value location associated with the error * \param message The error message. - * \param extra Additional JSON Value location to contextualize the error + * \param extra Additional JSON Value location to contextualize the error * \return \c true if the error was successfully added, \c false if either * Value offset exceeds the document size. */ - bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra); + bool pushError(const Value& value, const String& message, const Value& extra); /** \brief Return whether there are any errors. - * \return \c true if there are no errors to report \c false if - * errors have occurred. + * + * \return \c true if there are no errors to report \c false if errors have + * occurred. */ bool good() const; @@ -1532,15 +1657,15 @@ private: class ErrorInfo { public: Token token_; - JSONCPP_STRING message_; + String message_; Location extra_; }; - typedef std::deque Errors; + using Errors = std::deque; bool readToken(Token& token); void skipSpaces(); - bool match(Location pattern, int patternLength); + bool match(const Char* pattern, int patternLength); bool readComment(); bool readCStyleComment(); bool readCppStyleComment(); @@ -1552,142 +1677,138 @@ private: bool decodeNumber(Token& token); bool decodeNumber(Token& token, Value& decoded); bool decodeString(Token& token); - bool decodeString(Token& token, JSONCPP_STRING& decoded); + bool decodeString(Token& token, String& decoded); bool decodeDouble(Token& token); bool decodeDouble(Token& token, Value& decoded); - bool decodeUnicodeCodePoint(Token& token, - Location& current, - Location end, + bool decodeUnicodeCodePoint(Token& token, Location& current, Location end, unsigned int& unicode); - bool decodeUnicodeEscapeSequence(Token& token, - Location& current, - Location end, - unsigned int& unicode); - bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0); + bool decodeUnicodeEscapeSequence(Token& token, Location& current, + Location end, unsigned int& unicode); + bool addError(const String& message, Token& token, Location extra = nullptr); bool recoverFromError(TokenType skipUntilToken); - bool addErrorAndRecover(const JSONCPP_STRING& message, - Token& token, + bool addErrorAndRecover(const String& message, Token& token, TokenType skipUntilToken); void skipUntilSpace(); Value& currentValue(); Char getNextChar(); - void - getLocationLineAndColumn(Location location, int& line, int& column) const; - JSONCPP_STRING getLocationLineAndColumn(Location location) const; + void getLocationLineAndColumn(Location location, int& line, + int& column) const; + String getLocationLineAndColumn(Location location) const; void addComment(Location begin, Location end, CommentPlacement placement); void skipCommentTokens(Token& token); static bool containsNewLine(Location begin, Location end); - static JSONCPP_STRING normalizeEOL(Location begin, Location end); + static String normalizeEOL(Location begin, Location end); - typedef std::stack Nodes; + using Nodes = std::stack; Nodes nodes_; Errors errors_; - JSONCPP_STRING document_; - Location begin_; - Location end_; - Location current_; - Location lastValueEnd_; - Value* lastValue_; - JSONCPP_STRING commentsBefore_; + String document_; + Location begin_{}; + Location end_{}; + Location current_{}; + Location lastValueEnd_{}; + Value* lastValue_{}; + String commentsBefore_; Features features_; - bool collectComments_; -}; // Reader + bool collectComments_{}; +}; // Reader /** Interface for reading JSON from a char array. */ class JSON_API CharReader { public: - virtual ~CharReader() {} + virtual ~CharReader() = default; /** \brief Read a Value from a JSON - document. - * The document must be a UTF-8 encoded string containing the document to read. + * document. The document must be a UTF-8 encoded string containing the + * document to read. * - * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the - document to read. - * \param endDoc Pointer on the end of the UTF-8 encoded string of the - document to read. - * Must be >= beginDoc. - * \param root [out] Contains the root value of the document if it was - * successfully parsed. - * \param errs [out] Formatted error messages (if not NULL) - * a user friendly string that lists errors in the parsed - * document. + * \param beginDoc Pointer on the beginning of the UTF-8 encoded string + * of the document to read. + * \param endDoc Pointer on the end of the UTF-8 encoded string of the + * document to read. Must be >= beginDoc. + * \param[out] root Contains the root value of the document if it was + * successfully parsed. + * \param[out] errs Formatted error messages (if not NULL) a user + * friendly string that lists errors in the parsed + * document. * \return \c true if the document was successfully parsed, \c false if an - error occurred. + * error occurred. */ - virtual bool parse( - char const* beginDoc, char const* endDoc, - Value* root, JSONCPP_STRING* errs) = 0; + virtual bool parse(char const* beginDoc, char const* endDoc, Value* root, + String* errs) = 0; class JSON_API Factory { public: - virtual ~Factory() {} + virtual ~Factory() = default; /** \brief Allocate a CharReader via operator new(). * \throw std::exception if something goes wrong (e.g. invalid settings) */ virtual CharReader* newCharReader() const = 0; - }; // Factory -}; // CharReader + }; // Factory +}; // CharReader /** \brief Build a CharReader implementation. - -Usage: -\code - using namespace Json; - CharReaderBuilder builder; - builder["collectComments"] = false; - Value value; - JSONCPP_STRING errs; - bool ok = parseFromStream(builder, std::cin, &value, &errs); -\endcode -*/ + * + * Usage: + * \code + * using namespace Json; + * CharReaderBuilder builder; + * builder["collectComments"] = false; + * Value value; + * String errs; + * bool ok = parseFromStream(builder, std::cin, &value, &errs); + * \endcode + */ class JSON_API CharReaderBuilder : public CharReader::Factory { public: // Note: We use a Json::Value so that we can add data-members to this class // without a major version bump. /** Configuration of this builder. - These are case-sensitive. - Available settings (case-sensitive): - - `"collectComments": false or true` - - true to collect comment and allow writing them - back during serialization, false to discard comments. - This parameter is ignored if allowComments is false. - - `"allowComments": false or true` - - true if comments are allowed. - - `"strictRoot": false or true` - - true if root must be either an array or an object value - - `"allowDroppedNullPlaceholders": false or true` - - true if dropped null placeholders are allowed. (See StreamWriterBuilder.) - - `"allowNumericKeys": false or true` - - true if numeric object keys are allowed. - - `"allowSingleQuotes": false or true` - - true if '' are allowed for strings (both keys and values) - - `"stackLimit": integer` - - Exceeding stackLimit (recursive depth of `readValue()`) will - cause an exception. - - This is a security issue (seg-faults caused by deeply nested JSON), - so the default is low. - - `"failIfExtra": false or true` - - If true, `parse()` returns false when extra non-whitespace trails - the JSON value in the input string. - - `"rejectDupKeys": false or true` - - If true, `parse()` returns false when a key is duplicated within an object. - - `"allowSpecialFloats": false or true` - - If true, special float values (NaNs and infinities) are allowed - and their values are lossfree restorable. - - You can examine 'settings_` yourself - to see the defaults. You can also write and read them just like any - JSON Value. - \sa setDefaults() - */ + * These are case-sensitive. + * Available settings (case-sensitive): + * - `"collectComments": false or true` + * - true to collect comment and allow writing them back during + * serialization, false to discard comments. This parameter is ignored + * if allowComments is false. + * - `"allowComments": false or true` + * - true if comments are allowed. + * - `"allowTrailingCommas": false or true` + * - true if trailing commas in objects and arrays are allowed. + * - `"strictRoot": false or true` + * - true if root must be either an array or an object value + * - `"allowDroppedNullPlaceholders": false or true` + * - true if dropped null placeholders are allowed. (See + * StreamWriterBuilder.) + * - `"allowNumericKeys": false or true` + * - true if numeric object keys are allowed. + * - `"allowSingleQuotes": false or true` + * - true if '' are allowed for strings (both keys and values) + * - `"stackLimit": integer` + * - Exceeding stackLimit (recursive depth of `readValue()`) will cause an + * exception. + * - This is a security issue (seg-faults caused by deeply nested JSON), so + * the default is low. + * - `"failIfExtra": false or true` + * - If true, `parse()` returns false when extra non-whitespace trails the + * JSON value in the input string. + * - `"rejectDupKeys": false or true` + * - If true, `parse()` returns false when a key is duplicated within an + * object. + * - `"allowSpecialFloats": false or true` + * - If true, special float values (NaNs and infinities) are allowed and + * their values are lossfree restorable. + * + * You can examine 'settings_` yourself to see the defaults. You can also + * write and read them just like any JSON Value. + * \sa setDefaults() + */ Json::Value settings_; CharReaderBuilder(); - ~CharReaderBuilder() JSONCPP_OVERRIDE; + ~CharReaderBuilder() override; - CharReader* newCharReader() const JSONCPP_OVERRIDE; + CharReader* newCharReader() const override; /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. @@ -1696,7 +1817,7 @@ public: /** A simple way to update a specific setting. */ - Value& operator[](JSONCPP_STRING key); + Value& operator[](const String& key); /** Called by ctor, but you can use this to reset settings_. * \pre 'settings' != NULL (but Json::null is fine) @@ -1713,39 +1834,37 @@ public: }; /** Consume entire stream and use its begin/end. - * Someday we might have a real StreamReader, but for now this - * is convenient. - */ -bool JSON_API parseFromStream( - CharReader::Factory const&, - JSONCPP_ISTREAM&, - Value* root, std::string* errs); + * Someday we might have a real StreamReader, but for now this + * is convenient. + */ +bool JSON_API parseFromStream(CharReader::Factory const&, IStream&, Value* root, + String* errs); /** \brief Read from 'sin' into 'root'. - - Always keep comments from the input JSON. - - This can be used to read a file into a particular sub-object. - For example: - \code - Json::Value root; - cin >> root["dir"]["file"]; - cout << root; - \endcode - Result: - \verbatim - { - "dir": { - "file": { - // The input stream JSON would be nested here. - } - } - } - \endverbatim - \throw std::exception on parse error. - \see Json::operator<<() -*/ -JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&); + * + * Always keep comments from the input JSON. + * + * This can be used to read a file into a particular sub-object. + * For example: + * \code + * Json::Value root; + * cin >> root["dir"]["file"]; + * cout << root; + * \endcode + * Result: + * \verbatim + * { + * "dir": { + * "file": { + * // The input stream JSON would be nested here. + * } + * } + * } + * \endverbatim + * \throw std::exception on parse error. + * \see Json::operator<<() + */ +JSON_API IStream& operator>>(IStream&, Value&); } // namespace Json @@ -1755,7 +1874,7 @@ JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&); #pragma warning(pop) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) -#endif // CPPTL_JSON_READER_H_INCLUDED +#endif // JSON_READER_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/reader.h @@ -1781,9 +1900,9 @@ JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&); #if !defined(JSON_IS_AMALGAMATION) #include "value.h" #endif // if !defined(JSON_IS_AMALGAMATION) -#include -#include #include +#include +#include // Disable warning C4251: : needs to have dll-interface to // be used by... @@ -1799,31 +1918,31 @@ namespace Json { class Value; /** - -Usage: -\code - using namespace Json; - void writeToStdout(StreamWriter::Factory const& factory, Value const& value) { - std::unique_ptr const writer( - factory.newStreamWriter()); - writer->write(value, &std::cout); - std::cout << std::endl; // add lf and flush - } -\endcode -*/ + * + * Usage: + * \code + * using namespace Json; + * void writeToStdout(StreamWriter::Factory const& factory, Value const& value) + * { std::unique_ptr const writer( factory.newStreamWriter()); + * writer->write(value, &std::cout); + * std::cout << std::endl; // add lf and flush + * } + * \endcode + */ class JSON_API StreamWriter { protected: - JSONCPP_OSTREAM* sout_; // not owned; will not delete + OStream* sout_; // not owned; will not delete public: StreamWriter(); virtual ~StreamWriter(); /** Write Value into document as configured in sub-class. - Do not take ownership of sout, but maintain a reference during function. - \pre sout != NULL - \return zero on success (For now, we always return zero, so check the stream instead.) - \throw std::exception possibly, depending on configuration + * Do not take ownership of sout, but maintain a reference during function. + * \pre sout != NULL + * \return zero on success (For now, we always return zero, so check the + * stream instead.) \throw std::exception possibly, depending on + * configuration */ - virtual int write(Value const& root, JSONCPP_OSTREAM* sout) = 0; + virtual int write(Value const& root, OStream* sout) = 0; /** \brief A simple abstract factory. */ @@ -1834,64 +1953,69 @@ public: * \throw std::exception if something goes wrong (e.g. invalid settings) */ virtual StreamWriter* newStreamWriter() const = 0; - }; // Factory -}; // StreamWriter + }; // Factory +}; // StreamWriter /** \brief Write into stringstream, then return string, for convenience. * A StreamWriter will be created from the factory, used, and then deleted. */ -JSONCPP_STRING JSON_API writeString(StreamWriter::Factory const& factory, Value const& root); - +String JSON_API writeString(StreamWriter::Factory const& factory, + Value const& root); /** \brief Build a StreamWriter implementation. -Usage: -\code - using namespace Json; - Value value = ...; - StreamWriterBuilder builder; - builder["commentStyle"] = "None"; - builder["indentation"] = " "; // or whatever you like - std::unique_ptr writer( - builder.newStreamWriter()); - writer->write(value, &std::cout); - std::cout << std::endl; // add lf and flush -\endcode +* Usage: +* \code +* using namespace Json; +* Value value = ...; +* StreamWriterBuilder builder; +* builder["commentStyle"] = "None"; +* builder["indentation"] = " "; // or whatever you like +* std::unique_ptr writer( +* builder.newStreamWriter()); +* writer->write(value, &std::cout); +* std::cout << std::endl; // add lf and flush +* \endcode */ class JSON_API StreamWriterBuilder : public StreamWriter::Factory { public: // Note: We use a Json::Value so that we can add data-members to this class // without a major version bump. /** Configuration of this builder. - Available settings (case-sensitive): - - "commentStyle": "None" or "All" - - "indentation": "" - - "enableYAMLCompatibility": false or true - - slightly change the whitespace around colons - - "dropNullPlaceholders": false or true - - Drop the "null" string from the writer's output for nullValues. - Strictly speaking, this is not valid JSON. But when the output is being - fed to a browser's JavaScript, it makes for smaller output and the - browser can handle the output just fine. - - "useSpecialFloats": false or true - - If true, outputs non-finite floating point values in the following way: - NaN values as "NaN", positive infinity as "Infinity", and negative infinity - as "-Infinity". + * Available settings (case-sensitive): + * - "commentStyle": "None" or "All" + * - "indentation": "". + * - Setting this to an empty string also omits newline characters. + * - "enableYAMLCompatibility": false or true + * - slightly change the whitespace around colons + * - "dropNullPlaceholders": false or true + * - Drop the "null" string from the writer's output for nullValues. + * Strictly speaking, this is not valid JSON. But when the output is being + * fed to a browser's JavaScript, it makes for smaller output and the + * browser can handle the output just fine. + * - "useSpecialFloats": false or true + * - If true, outputs non-finite floating point values in the following way: + * NaN values as "NaN", positive infinity as "Infinity", and negative + * infinity as "-Infinity". + * - "precision": int + * - Number of precision digits for formatting of real values. + * - "precisionType": "significant"(default) or "decimal" + * - Type of precision for formatting of real values. - You can examine 'settings_` yourself - to see the defaults. You can also write and read them just like any - JSON Value. - \sa setDefaults() - */ + * You can examine 'settings_` yourself + * to see the defaults. You can also write and read them just like any + * JSON Value. + * \sa setDefaults() + */ Json::Value settings_; StreamWriterBuilder(); - ~StreamWriterBuilder() JSONCPP_OVERRIDE; + ~StreamWriterBuilder() override; /** * \throw std::exception if something goes wrong (e.g. invalid settings) */ - StreamWriter* newStreamWriter() const JSONCPP_OVERRIDE; + StreamWriter* newStreamWriter() const override; /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. @@ -1899,7 +2023,7 @@ public: bool validate(Json::Value* invalid) const; /** A simple way to update a specific setting. */ - Value& operator[](JSONCPP_STRING key); + Value& operator[](const String& key); /** Called by ctor, but you can use this to reset settings_. * \pre 'settings' != NULL (but Json::null is fine) @@ -1916,7 +2040,7 @@ class JSONCPP_DEPRECATED("Use StreamWriter instead") JSON_API Writer { public: virtual ~Writer(); - virtual JSONCPP_STRING write(const Value& root) = 0; + virtual String write(const Value& root) = 0; }; /** \brief Outputs a Value in JSON format @@ -1924,18 +2048,19 @@ public: * * The JSON document is written in a single line. It is not intended for 'human' *consumption, - * but may be usefull to support feature such as RPC where bandwith is limited. + * but may be useful to support feature such as RPC where bandwidth is limited. * \sa Reader, Value * \deprecated Use StreamWriterBuilder. */ #if defined(_MSC_VER) #pragma warning(push) -#pragma warning(disable:4996) // Deriving from deprecated class +#pragma warning(disable : 4996) // Deriving from deprecated class #endif -class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API FastWriter : public Writer { +class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API FastWriter + : public Writer { public: FastWriter(); - ~FastWriter() JSONCPP_OVERRIDE {} + ~FastWriter() override = default; void enableYAMLCompatibility(); @@ -1949,15 +2074,15 @@ public: void omitEndingLineFeed(); public: // overridden from Writer - JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE; + String write(const Value& root) override; private: void writeValue(const Value& value); - JSONCPP_STRING document_; - bool yamlCompatibilityEnabled_; - bool dropNullPlaceholders_; - bool omitEndingLineFeed_; + String document_; + bool yamlCompatibilityEnabled_{false}; + bool dropNullPlaceholders_{false}; + bool omitEndingLineFeed_{false}; }; #if defined(_MSC_VER) #pragma warning(pop) @@ -1989,42 +2114,43 @@ private: */ #if defined(_MSC_VER) #pragma warning(push) -#pragma warning(disable:4996) // Deriving from deprecated class +#pragma warning(disable : 4996) // Deriving from deprecated class #endif -class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API StyledWriter : public Writer { +class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API + StyledWriter : public Writer { public: StyledWriter(); - ~StyledWriter() JSONCPP_OVERRIDE {} + ~StyledWriter() override = default; public: // overridden from Writer /** \brief Serialize a Value in JSON format. * \param root Value to serialize. * \return String containing the JSON document that represents the root value. */ - JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE; + String write(const Value& root) override; private: void writeValue(const Value& value); void writeArrayValue(const Value& value); bool isMultilineArray(const Value& value); - void pushValue(const JSONCPP_STRING& value); + void pushValue(const String& value); void writeIndent(); - void writeWithIndent(const JSONCPP_STRING& value); + void writeWithIndent(const String& value); void indent(); void unindent(); void writeCommentBeforeValue(const Value& root); void writeCommentAfterValueOnSameLine(const Value& root); - bool hasCommentForValue(const Value& value); - static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text); + static bool hasCommentForValue(const Value& value); + static String normalizeEOL(const String& text); - typedef std::vector ChildValues; + using ChildValues = std::vector; ChildValues childValues_; - JSONCPP_STRING document_; - JSONCPP_STRING indentString_; - unsigned int rightMargin_; - unsigned int indentSize_; - bool addChildValues_; + String document_; + String indentString_; + unsigned int rightMargin_{74}; + unsigned int indentSize_{3}; + bool addChildValues_{false}; }; #if defined(_MSC_VER) #pragma warning(pop) @@ -2057,15 +2183,16 @@ private: */ #if defined(_MSC_VER) #pragma warning(push) -#pragma warning(disable:4996) // Deriving from deprecated class +#pragma warning(disable : 4996) // Deriving from deprecated class #endif -class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API StyledStreamWriter { +class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API + StyledStreamWriter { public: -/** - * \param indentation Each level will be indented by this amount extra. - */ - StyledStreamWriter(JSONCPP_STRING indentation = "\t"); - ~StyledStreamWriter() {} + /** + * \param indentation Each level will be indented by this amount extra. + */ + StyledStreamWriter(String indentation = "\t"); + ~StyledStreamWriter() = default; public: /** \brief Serialize a Value in JSON format. @@ -2074,29 +2201,29 @@ public: * \note There is no point in deriving from Writer, since write() should not * return a value. */ - void write(JSONCPP_OSTREAM& out, const Value& root); + void write(OStream& out, const Value& root); private: void writeValue(const Value& value); void writeArrayValue(const Value& value); bool isMultilineArray(const Value& value); - void pushValue(const JSONCPP_STRING& value); + void pushValue(const String& value); void writeIndent(); - void writeWithIndent(const JSONCPP_STRING& value); + void writeWithIndent(const String& value); void indent(); void unindent(); void writeCommentBeforeValue(const Value& root); void writeCommentAfterValueOnSameLine(const Value& root); - bool hasCommentForValue(const Value& value); - static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text); + static bool hasCommentForValue(const Value& value); + static String normalizeEOL(const String& text); - typedef std::vector ChildValues; + using ChildValues = std::vector; ChildValues childValues_; - JSONCPP_OSTREAM* document_; - JSONCPP_STRING indentString_; - unsigned int rightMargin_; - JSONCPP_STRING indentation_; + OStream* document_; + String indentString_; + unsigned int rightMargin_{74}; + String indentation_; bool addChildValues_ : 1; bool indented_ : 1; }; @@ -2105,18 +2232,20 @@ private: #endif #if defined(JSON_HAS_INT64) -JSONCPP_STRING JSON_API valueToString(Int value); -JSONCPP_STRING JSON_API valueToString(UInt value); +String JSON_API valueToString(Int value); +String JSON_API valueToString(UInt value); #endif // if defined(JSON_HAS_INT64) -JSONCPP_STRING JSON_API valueToString(LargestInt value); -JSONCPP_STRING JSON_API valueToString(LargestUInt value); -JSONCPP_STRING JSON_API valueToString(double value); -JSONCPP_STRING JSON_API valueToString(bool value); -JSONCPP_STRING JSON_API valueToQuotedString(const char* value); +String JSON_API valueToString(LargestInt value); +String JSON_API valueToString(LargestUInt value); +String JSON_API valueToString( + double value, unsigned int precision = Value::defaultRealPrecision, + PrecisionType precisionType = PrecisionType::significantDigits); +String JSON_API valueToString(bool value); +String JSON_API valueToQuotedString(const char* value); /// \brief Output using the StyledStreamWriter. /// \see Json::operator>>() -JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root); +JSON_API OStream& operator<<(OStream&, const Value& root); } // namespace Json @@ -2146,10 +2275,10 @@ JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root); // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE -#ifndef CPPTL_JSON_ASSERTIONS_H_INCLUDED -#define CPPTL_JSON_ASSERTIONS_H_INCLUDED +#ifndef JSON_ASSERTIONS_H_INCLUDED +#define JSON_ASSERTIONS_H_INCLUDED -#include +#include #include #if !defined(JSON_IS_AMALGAMATION) @@ -2163,38 +2292,45 @@ JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root); #if JSON_USE_EXCEPTION // @todo <= add detail about condition in exception -# define JSON_ASSERT(condition) \ - {if (!(condition)) {Json::throwLogicError( "assert json failed" );}} +#define JSON_ASSERT(condition) \ + do { \ + if (!(condition)) { \ + Json::throwLogicError("assert json failed"); \ + } \ + } while (0) -# define JSON_FAIL_MESSAGE(message) \ - { \ - JSONCPP_OSTRINGSTREAM oss; oss << message; \ +#define JSON_FAIL_MESSAGE(message) \ + do { \ + OStringStream oss; \ + oss << message; \ Json::throwLogicError(oss.str()); \ abort(); \ - } + } while (0) #else // JSON_USE_EXCEPTION -# define JSON_ASSERT(condition) assert(condition) +#define JSON_ASSERT(condition) assert(condition) // The call to assert() will show the failure message in debug builds. In // release builds we abort, for a core-dump or debugger. -# define JSON_FAIL_MESSAGE(message) \ +#define JSON_FAIL_MESSAGE(message) \ { \ - JSONCPP_OSTRINGSTREAM oss; oss << message; \ + OStringStream oss; \ + oss << message; \ assert(false && oss.str().c_str()); \ abort(); \ } - #endif #define JSON_ASSERT_MESSAGE(condition, message) \ - if (!(condition)) { \ - JSON_FAIL_MESSAGE(message); \ - } + do { \ + if (!(condition)) { \ + JSON_FAIL_MESSAGE(message); \ + } \ + } while (0) -#endif // CPPTL_JSON_ASSERTIONS_H_INCLUDED +#endif // JSON_ASSERTIONS_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/assertions.h diff --git a/lib/jsoncpp/jsoncpp.cpp b/lib/jsoncpp/jsoncpp.cpp index 507a1c6ad..30e0a69f7 100644 --- a/lib/jsoncpp/jsoncpp.cpp +++ b/lib/jsoncpp/jsoncpp.cpp @@ -92,6 +92,9 @@ license you like. #ifndef LIB_JSONCPP_JSON_TOOL_H_INCLUDED #define LIB_JSONCPP_JSON_TOOL_H_INCLUDED +#if !defined(JSON_IS_AMALGAMATION) +#include +#endif // Also support old flag NO_LOCALE_SUPPORT #ifdef NO_LOCALE_SUPPORT @@ -109,7 +112,7 @@ license you like. */ namespace Json { -static char getDecimalPoint() { +static inline char getDecimalPoint() { #ifdef JSONCPP_NO_LOCALE_SUPPORT return '\0'; #else @@ -119,8 +122,8 @@ static char getDecimalPoint() { } /// Converts a unicode code-point to UTF-8. -static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) { - JSONCPP_STRING result; +static inline String codePointToUTF8(unsigned int cp) { + String result; // based on description from http://en.wikipedia.org/wiki/UTF-8 @@ -154,7 +157,7 @@ enum { }; // Defines a char buffer for use with uintToString(). -typedef char UIntToStringBuffer[uintToStringBufferSize]; +using UIntToStringBuffer = char[uintToStringBufferSize]; /** Converts an unsigned integer to string. * @param value Unsigned integer to convert to string @@ -174,28 +177,45 @@ static inline void uintToString(LargestUInt value, char*& current) { * We had a sophisticated way, but it did not work in WinCE. * @see https://github.com/open-source-parsers/jsoncpp/pull/9 */ -static inline void fixNumericLocale(char* begin, char* end) { - while (begin < end) { +template Iter fixNumericLocale(Iter begin, Iter end) { + for (; begin != end; ++begin) { if (*begin == ',') { *begin = '.'; } - ++begin; } + return begin; } -static inline void fixNumericLocaleInput(char* begin, char* end) { +template void fixNumericLocaleInput(Iter begin, Iter end) { char decimalPoint = getDecimalPoint(); - if (decimalPoint != '\0' && decimalPoint != '.') { - while (begin < end) { - if (*begin == '.') { - *begin = decimalPoint; - } - ++begin; + if (decimalPoint == '\0' || decimalPoint == '.') { + return; + } + for (; begin != end; ++begin) { + if (*begin == '.') { + *begin = decimalPoint; } } } -} // namespace Json { +/** + * Return iterator that would be the new end of the range [begin,end), if we + * were to delete zeros in the end of string, but not the last zero before '.'. + */ +template Iter fixZerosInTheEnd(Iter begin, Iter end) { + for (; begin != end; --end) { + if (*(end - 1) != '0') { + return end; + } + // Don't delete the last zero before the decimal point. + if (begin != (end - 1) && *(end - 2) == '.') { + return end; + } + } + return end; +} + +} // namespace Json #endif // LIB_JSONCPP_JSON_TOOL_H_INCLUDED @@ -219,69 +239,65 @@ static inline void fixNumericLocaleInput(char* begin, char* end) { // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #if !defined(JSON_IS_AMALGAMATION) +#include "json_tool.h" #include #include #include -#include "json_tool.h" #endif // if !defined(JSON_IS_AMALGAMATION) -#include -#include +#include #include #include +#include #include -#include +#include #include #include -#include +#include +#include -#if defined(_MSC_VER) -#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above -#define snprintf sprintf_s -#elif _MSC_VER >= 1900 // VC++ 14.0 and above -#define snprintf std::snprintf -#else -#define snprintf _snprintf -#endif -#elif defined(__ANDROID__) || defined(__QNXNTO__) -#define snprintf snprintf -#elif __cplusplus >= 201103L -#if !defined(__MINGW32__) && !defined(__CYGWIN__) -#define snprintf std::snprintf -#endif -#endif +#include +#if __cplusplus >= 201103L -#if defined(__QNXNTO__) +#if !defined(sscanf) #define sscanf std::sscanf #endif -#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0 +#endif //__cplusplus + +#if defined(_MSC_VER) +#if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES) +#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 +#endif //_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES +#endif //_MSC_VER + +#if defined(_MSC_VER) // Disable warning about strdup being deprecated. #pragma warning(disable : 4996) #endif -// Define JSONCPP_DEPRECATED_STACK_LIMIT as an appropriate integer at compile time to change the stack limit +// Define JSONCPP_DEPRECATED_STACK_LIMIT as an appropriate integer at compile +// time to change the stack limit #if !defined(JSONCPP_DEPRECATED_STACK_LIMIT) #define JSONCPP_DEPRECATED_STACK_LIMIT 1000 #endif -static size_t const stackLimit_g = JSONCPP_DEPRECATED_STACK_LIMIT; // see readValue() +static size_t const stackLimit_g = + JSONCPP_DEPRECATED_STACK_LIMIT; // see readValue() namespace Json { #if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) -typedef std::unique_ptr CharReaderPtr; +using CharReaderPtr = std::unique_ptr; #else -typedef std::auto_ptr CharReaderPtr; +using CharReaderPtr = std::auto_ptr; #endif // Implementation of class Features // //////////////////////////////// -Features::Features() - : allowComments_(true), strictRoot_(false), - allowDroppedNullPlaceholders_(false), allowNumericKeys_(false) {} +Features::Features() = default; -Features Features::all() { return Features(); } +Features Features::all() { return {}; } Features Features::strictMode() { Features features; @@ -296,49 +312,38 @@ Features Features::strictMode() { // //////////////////////////////// bool Reader::containsNewLine(Reader::Location begin, Reader::Location end) { - for (; begin < end; ++begin) - if (*begin == '\n' || *begin == '\r') - return true; - return false; + return std::any_of(begin, end, [](char b) { return b == '\n' || b == '\r'; }); } // Class Reader // ////////////////////////////////////////////////////////////////// -Reader::Reader() - : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), - lastValue_(), commentsBefore_(), features_(Features::all()), - collectComments_() {} +Reader::Reader() : features_(Features::all()) {} -Reader::Reader(const Features& features) - : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), - lastValue_(), commentsBefore_(), features_(features), collectComments_() { -} +Reader::Reader(const Features& features) : features_(features) {} -bool -Reader::parse(const std::string& document, Value& root, bool collectComments) { +bool Reader::parse(const std::string& document, Value& root, + bool collectComments) { document_.assign(document.begin(), document.end()); const char* begin = document_.c_str(); const char* end = begin + document_.length(); return parse(begin, end, root, collectComments); } -bool Reader::parse(std::istream& sin, Value& root, bool collectComments) { - // std::istream_iterator begin(sin); +bool Reader::parse(std::istream& is, Value& root, bool collectComments) { + // std::istream_iterator begin(is); // std::istream_iterator end; // Those would allow streamed input from a file, if parse() were a // template function. - // Since JSONCPP_STRING is reference-counted, this at least does not + // Since String is reference-counted, this at least does not // create an extra copy. - JSONCPP_STRING doc; - std::getline(sin, doc, (char)EOF); + String doc; + std::getline(is, doc, static_cast EOF); return parse(doc.data(), doc.data() + doc.size(), root, collectComments); } -bool Reader::parse(const char* beginDoc, - const char* endDoc, - Value& root, +bool Reader::parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments) { if (!features_.allowComments_) { collectComments = false; @@ -348,8 +353,8 @@ bool Reader::parse(const char* beginDoc, end_ = endDoc; collectComments_ = collectComments; current_ = begin_; - lastValueEnd_ = 0; - lastValue_ = 0; + lastValueEnd_ = nullptr; + lastValue_ = nullptr; commentsBefore_.clear(); errors_.clear(); while (!nodes_.empty()) @@ -379,9 +384,11 @@ bool Reader::parse(const char* beginDoc, bool Reader::readValue() { // readValue() may call itself only if it calls readObject() or ReadArray(). - // These methods execute nodes_.push() just before and nodes_.pop)() just after calling readValue(). - // parse() executes one nodes_.push(), so > instead of >=. - if (nodes_.size() > stackLimit_g) throwRuntimeError("Exceeded stackLimit in readValue()."); + // These methods execute nodes_.push() just before and nodes_.pop)() just + // after calling readValue(). parse() executes one nodes_.push(), so > instead + // of >=. + if (nodes_.size() > stackLimit_g) + throwRuntimeError("Exceeded stackLimit in readValue()."); Token token; skipCommentTokens(token); @@ -407,30 +414,24 @@ bool Reader::readValue() { case tokenString: successful = decodeString(token); break; - case tokenTrue: - { + case tokenTrue: { Value v(true); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenFalse: - { + } break; + case tokenFalse: { Value v(false); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenNull: - { + } break; + case tokenNull: { Value v; currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; + } break; case tokenArraySeparator: case tokenObjectEnd: case tokenArrayEnd: @@ -536,7 +537,7 @@ bool Reader::readToken(Token& token) { if (!ok) token.type_ = tokenError; token.end_ = current_; - return true; + return ok; } void Reader::skipSpaces() { @@ -549,7 +550,7 @@ void Reader::skipSpaces() { } } -bool Reader::match(Location pattern, int patternLength) { +bool Reader::match(const Char* pattern, int patternLength) { if (end_ - current_ < patternLength) return false; int index = patternLength; @@ -583,16 +584,16 @@ bool Reader::readComment() { return true; } -JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader::Location end) { - JSONCPP_STRING normalized; +String Reader::normalizeEOL(Reader::Location begin, Reader::Location end) { + String normalized; normalized.reserve(static_cast(end - begin)); Reader::Location current = begin; while (current != end) { char c = *current++; if (c == '\r') { if (current != end && *current == '\n') - // convert dos EOL - ++current; + // convert dos EOL + ++current; // convert Mac EOL normalized += '\n'; } else { @@ -602,12 +603,12 @@ JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader::Location end return normalized; } -void -Reader::addComment(Location begin, Location end, CommentPlacement placement) { +void Reader::addComment(Location begin, Location end, + CommentPlacement placement) { assert(collectComments_); - const JSONCPP_STRING& normalized = normalizeEOL(begin, end); + const String& normalized = normalizeEOL(begin, end); if (placement == commentAfterOnSameLine) { - assert(lastValue_ != 0); + assert(lastValue_ != nullptr); lastValue_->setComment(normalized, placement); } else { commentsBefore_ += normalized; @@ -640,7 +641,7 @@ bool Reader::readCppStyleComment() { } void Reader::readNumber() { - const char *p = current_; + Location p = current_; char c = '0'; // stopgap for already consumed character // integral part while (c >= '0' && c <= '9') @@ -673,12 +674,12 @@ bool Reader::readString() { return c == '"'; } -bool Reader::readObject(Token& tokenStart) { +bool Reader::readObject(Token& token) { Token tokenName; - JSONCPP_STRING name; + String name; Value init(objectValue); currentValue().swapPayload(init); - currentValue().setOffsetStart(tokenStart.start_ - begin_); + currentValue().setOffsetStart(token.start_ - begin_); while (readToken(tokenName)) { bool initialTokenOk = true; while (tokenName.type_ == tokenComment && initialTokenOk) @@ -695,15 +696,15 @@ bool Reader::readObject(Token& tokenStart) { Value numberName; if (!decodeNumber(tokenName, numberName)) return recoverFromError(tokenObjectEnd); - name = JSONCPP_STRING(numberName.asCString()); + name = numberName.asString(); } else { break; } Token colon; if (!readToken(colon) || colon.type_ != tokenMemberSeparator) { - return addErrorAndRecover( - "Missing ':' after object member name", colon, tokenObjectEnd); + return addErrorAndRecover("Missing ':' after object member name", colon, + tokenObjectEnd); } Value& value = currentValue()[name]; nodes_.push(&value); @@ -716,8 +717,8 @@ bool Reader::readObject(Token& tokenStart) { if (!readToken(comma) || (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator && comma.type_ != tokenComment)) { - return addErrorAndRecover( - "Missing ',' or '}' in object declaration", comma, tokenObjectEnd); + return addErrorAndRecover("Missing ',' or '}' in object declaration", + comma, tokenObjectEnd); } bool finalizeTokenOk = true; while (comma.type_ == tokenComment && finalizeTokenOk) @@ -725,14 +726,14 @@ bool Reader::readObject(Token& tokenStart) { if (comma.type_ == tokenObjectEnd) return true; } - return addErrorAndRecover( - "Missing '}' or object member name", tokenName, tokenObjectEnd); + return addErrorAndRecover("Missing '}' or object member name", tokenName, + tokenObjectEnd); } -bool Reader::readArray(Token& tokenStart) { +bool Reader::readArray(Token& token) { Value init(arrayValue); currentValue().swapPayload(init); - currentValue().setOffsetStart(tokenStart.start_ - begin_); + currentValue().setOffsetStart(token.start_ - begin_); skipSpaces(); if (current_ != end_ && *current_ == ']') // empty array { @@ -749,19 +750,19 @@ bool Reader::readArray(Token& tokenStart) { if (!ok) // error already set return recoverFromError(tokenArrayEnd); - Token token; + Token currentToken; // Accept Comment after last item in the array. - ok = readToken(token); - while (token.type_ == tokenComment && ok) { - ok = readToken(token); + ok = readToken(currentToken); + while (currentToken.type_ == tokenComment && ok) { + ok = readToken(currentToken); } - bool badTokenType = - (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd); + bool badTokenType = (currentToken.type_ != tokenArraySeparator && + currentToken.type_ != tokenArrayEnd); if (!ok || badTokenType) { - return addErrorAndRecover( - "Missing ',' or ']' in array declaration", token, tokenArrayEnd); + return addErrorAndRecover("Missing ',' or ']' in array declaration", + currentToken, tokenArrayEnd); } - if (token.type_ == tokenArrayEnd) + if (currentToken.type_ == tokenArrayEnd) break; } return true; @@ -785,7 +786,8 @@ bool Reader::decodeNumber(Token& token, Value& decoded) { bool isNegative = *current == '-'; if (isNegative) ++current; - // TODO: Help the compiler do the div and mod at compile time or get rid of them. + // TODO: Help the compiler do the div and mod at compile time or get rid of + // them. Value::LargestUInt maxIntegerValue = isNegative ? Value::LargestUInt(Value::maxLargestInt) + 1 : Value::maxLargestUInt; @@ -795,7 +797,7 @@ bool Reader::decodeNumber(Token& token, Value& decoded) { Char c = *current++; if (c < '0' || c > '9') return decodeDouble(token, decoded); - Value::UInt digit(static_cast(c - '0')); + auto digit(static_cast(c - '0')); if (value >= threshold) { // We've hit or exceeded the max value divided by 10 (rounded down). If // a) we've only just touched the limit, b) this is the last digit, and @@ -831,18 +833,17 @@ bool Reader::decodeDouble(Token& token) { bool Reader::decodeDouble(Token& token, Value& decoded) { double value = 0; - JSONCPP_STRING buffer(token.start_, token.end_); - JSONCPP_ISTRINGSTREAM is(buffer); + String buffer(token.start_, token.end_); + IStringStream is(buffer); if (!(is >> value)) - return addError("'" + JSONCPP_STRING(token.start_, token.end_) + - "' is not a number.", - token); + return addError( + "'" + String(token.start_, token.end_) + "' is not a number.", token); decoded = value; return true; } bool Reader::decodeString(Token& token) { - JSONCPP_STRING decoded_string; + String decoded_string; if (!decodeString(token, decoded_string)) return false; Value decoded(decoded_string); @@ -852,7 +853,7 @@ bool Reader::decodeString(Token& token) { return true; } -bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) { +bool Reader::decodeString(Token& token, String& decoded) { decoded.reserve(static_cast(token.end_ - token.start_ - 2)); Location current = token.start_ + 1; // skip '"' Location end = token.end_ - 1; // do not include '"' @@ -860,7 +861,7 @@ bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) { Char c = *current++; if (c == '"') break; - else if (c == '\\') { + if (c == '\\') { if (current == end) return addError("Empty escape sequence in string", token, current); Char escape = *current++; @@ -905,10 +906,8 @@ bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) { return true; } -bool Reader::decodeUnicodeCodePoint(Token& token, - Location& current, - Location end, - unsigned int& unicode) { +bool Reader::decodeUnicodeCodePoint(Token& token, Location& current, + Location end, unsigned int& unicode) { if (!decodeUnicodeEscapeSequence(token, current, end, unicode)) return false; @@ -917,10 +916,9 @@ bool Reader::decodeUnicodeCodePoint(Token& token, if (end - current < 6) return addError( "additional six characters expected to parse unicode surrogate pair.", - token, - current); - unsigned int surrogatePair; + token, current); if (*(current++) == '\\' && *(current++) == 'u') { + unsigned int surrogatePair; if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) { unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF); } else @@ -928,20 +926,17 @@ bool Reader::decodeUnicodeCodePoint(Token& token, } else return addError("expecting another \\u token to begin the second half of " "a unicode surrogate pair", - token, - current); + token, current); } return true; } -bool Reader::decodeUnicodeEscapeSequence(Token& token, - Location& current, +bool Reader::decodeUnicodeEscapeSequence(Token& token, Location& current, Location end, unsigned int& ret_unicode) { if (end - current < 4) return addError( - "Bad unicode escape sequence in string: four digits expected.", - token, + "Bad unicode escape sequence in string: four digits expected.", token, current); int unicode = 0; for (int index = 0; index < 4; ++index) { @@ -956,15 +951,13 @@ bool Reader::decodeUnicodeEscapeSequence(Token& token, else return addError( "Bad unicode escape sequence in string: hexadecimal digit expected.", - token, - current); + token, current); } ret_unicode = static_cast(unicode); return true; } -bool -Reader::addError(const JSONCPP_STRING& message, Token& token, Location extra) { +bool Reader::addError(const String& message, Token& token, Location extra) { ErrorInfo info; info.token_ = token; info.message_ = message; @@ -986,8 +979,7 @@ bool Reader::recoverFromError(TokenType skipUntilToken) { return false; } -bool Reader::addErrorAndRecover(const JSONCPP_STRING& message, - Token& token, +bool Reader::addErrorAndRecover(const String& message, Token& token, TokenType skipUntilToken) { addError(message, token); return recoverFromError(skipUntilToken); @@ -1001,8 +993,7 @@ Reader::Char Reader::getNextChar() { return *current_++; } -void Reader::getLocationLineAndColumn(Location location, - int& line, +void Reader::getLocationLineAndColumn(Location location, int& line, int& column) const { Location current = begin_; Location lastLineStart = current; @@ -1024,25 +1015,22 @@ void Reader::getLocationLineAndColumn(Location location, ++line; } -JSONCPP_STRING Reader::getLocationLineAndColumn(Location location) const { +String Reader::getLocationLineAndColumn(Location location) const { int line, column; getLocationLineAndColumn(location, line, column); char buffer[18 + 16 + 16 + 1]; - snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); + jsoncpp_snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); return buffer; } // Deprecated. Preserved for backward compatibility -JSONCPP_STRING Reader::getFormatedErrorMessages() const { +String Reader::getFormatedErrorMessages() const { return getFormattedErrorMessages(); } -JSONCPP_STRING Reader::getFormattedErrorMessages() const { - JSONCPP_STRING formattedMessage; - for (Errors::const_iterator itError = errors_.begin(); - itError != errors_.end(); - ++itError) { - const ErrorInfo& error = *itError; +String Reader::getFormattedErrorMessages() const { + String formattedMessage; + for (const auto& error : errors_) { formattedMessage += "* " + getLocationLineAndColumn(error.token_.start_) + "\n"; formattedMessage += " " + error.message_ + "\n"; @@ -1055,10 +1043,7 @@ JSONCPP_STRING Reader::getFormattedErrorMessages() const { std::vector Reader::getStructuredErrors() const { std::vector allErrors; - for (Errors::const_iterator itError = errors_.begin(); - itError != errors_.end(); - ++itError) { - const ErrorInfo& error = *itError; + for (const auto& error : errors_) { Reader::StructuredError structured; structured.offset_start = error.token_.start_ - begin_; structured.offset_limit = error.token_.end_ - begin_; @@ -1068,28 +1053,27 @@ std::vector Reader::getStructuredErrors() const { return allErrors; } -bool Reader::pushError(const Value& value, const JSONCPP_STRING& message) { +bool Reader::pushError(const Value& value, const String& message) { ptrdiff_t const length = end_ - begin_; - if(value.getOffsetStart() > length - || value.getOffsetLimit() > length) + if (value.getOffsetStart() > length || value.getOffsetLimit() > length) return false; Token token; token.type_ = tokenError; token.start_ = begin_ + value.getOffsetStart(); - token.end_ = end_ + value.getOffsetLimit(); + token.end_ = begin_ + value.getOffsetLimit(); ErrorInfo info; info.token_ = token; info.message_ = message; - info.extra_ = 0; + info.extra_ = nullptr; errors_.push_back(info); return true; } -bool Reader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) { +bool Reader::pushError(const Value& value, const String& message, + const Value& extra) { ptrdiff_t const length = end_ - begin_; - if(value.getOffsetStart() > length - || value.getOffsetLimit() > length - || extra.getOffsetLimit() > length) + if (value.getOffsetStart() > length || value.getOffsetLimit() > length || + extra.getOffsetLimit() > length) return false; Token token; token.type_ = tokenError; @@ -1103,15 +1087,15 @@ bool Reader::pushError(const Value& value, const JSONCPP_STRING& message, const return true; } -bool Reader::good() const { - return !errors_.size(); -} +bool Reader::good() const { return errors_.empty(); } -// exact copy of Features +// Originally copied from the Features class (now deprecated), used internally +// for features implementation. class OurFeatures { public: static OurFeatures all(); bool allowComments_; + bool allowTrailingCommas_; bool strictRoot_; bool allowDroppedNullPlaceholders_; bool allowNumericKeys_; @@ -1119,42 +1103,36 @@ public: bool failIfExtra_; bool rejectDupKeys_; bool allowSpecialFloats_; - int stackLimit_; -}; // OurFeatures + bool skipBom_; + size_t stackLimit_; +}; // OurFeatures -// exact copy of Implementation of class Features -// //////////////////////////////// - -OurFeatures OurFeatures::all() { return OurFeatures(); } +OurFeatures OurFeatures::all() { return {}; } // Implementation of class Reader // //////////////////////////////// -// exact copy of Reader, renamed to OurReader +// Originally copied from the Reader class (now deprecated), used internally +// for implementing JSON reading. class OurReader { public: - typedef char Char; - typedef const Char* Location; + using Char = char; + using Location = const Char*; struct StructuredError { ptrdiff_t offset_start; ptrdiff_t offset_limit; - JSONCPP_STRING message; + String message; }; - OurReader(OurFeatures const& features); - bool parse(const char* beginDoc, - const char* endDoc, - Value& root, + explicit OurReader(OurFeatures const& features); + bool parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments = true); - JSONCPP_STRING getFormattedErrorMessages() const; + String getFormattedErrorMessages() const; std::vector getStructuredErrors() const; - bool pushError(const Value& value, const JSONCPP_STRING& message); - bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra); - bool good() const; private: - OurReader(OurReader const&); // no impl - void operator=(OurReader const&); // no impl + OurReader(OurReader const&); // no impl + void operator=(OurReader const&); // no impl enum TokenType { tokenEndOfStream = 0, @@ -1186,17 +1164,18 @@ private: class ErrorInfo { public: Token token_; - JSONCPP_STRING message_; + String message_; Location extra_; }; - typedef std::deque Errors; + using Errors = std::deque; bool readToken(Token& token); void skipSpaces(); - bool match(Location pattern, int patternLength); + void skipBom(bool skipBom); + bool match(const Char* pattern, int patternLength); bool readComment(); - bool readCStyleComment(); + bool readCStyleComment(bool* containsNewLineResult); bool readCppStyleComment(); bool readString(); bool readStringSingleQuote(); @@ -1207,68 +1186,57 @@ private: bool decodeNumber(Token& token); bool decodeNumber(Token& token, Value& decoded); bool decodeString(Token& token); - bool decodeString(Token& token, JSONCPP_STRING& decoded); + bool decodeString(Token& token, String& decoded); bool decodeDouble(Token& token); bool decodeDouble(Token& token, Value& decoded); - bool decodeUnicodeCodePoint(Token& token, - Location& current, - Location end, + bool decodeUnicodeCodePoint(Token& token, Location& current, Location end, unsigned int& unicode); - bool decodeUnicodeEscapeSequence(Token& token, - Location& current, - Location end, - unsigned int& unicode); - bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0); + bool decodeUnicodeEscapeSequence(Token& token, Location& current, + Location end, unsigned int& unicode); + bool addError(const String& message, Token& token, Location extra = nullptr); bool recoverFromError(TokenType skipUntilToken); - bool addErrorAndRecover(const JSONCPP_STRING& message, - Token& token, + bool addErrorAndRecover(const String& message, Token& token, TokenType skipUntilToken); void skipUntilSpace(); Value& currentValue(); Char getNextChar(); - void - getLocationLineAndColumn(Location location, int& line, int& column) const; - JSONCPP_STRING getLocationLineAndColumn(Location location) const; + void getLocationLineAndColumn(Location location, int& line, + int& column) const; + String getLocationLineAndColumn(Location location) const; void addComment(Location begin, Location end, CommentPlacement placement); void skipCommentTokens(Token& token); - static JSONCPP_STRING normalizeEOL(Location begin, Location end); + static String normalizeEOL(Location begin, Location end); static bool containsNewLine(Location begin, Location end); - typedef std::stack Nodes; - Nodes nodes_; - Errors errors_; - JSONCPP_STRING document_; - Location begin_; - Location end_; - Location current_; - Location lastValueEnd_; - Value* lastValue_; - JSONCPP_STRING commentsBefore_; + using Nodes = std::stack; + + Nodes nodes_{}; + Errors errors_{}; + String document_{}; + Location begin_ = nullptr; + Location end_ = nullptr; + Location current_ = nullptr; + Location lastValueEnd_ = nullptr; + Value* lastValue_ = nullptr; + bool lastValueHasAComment_ = false; + String commentsBefore_{}; OurFeatures const features_; - bool collectComments_; -}; // OurReader + bool collectComments_ = false; +}; // OurReader // complete copy of Read impl, for OurReader -bool OurReader::containsNewLine(OurReader::Location begin, OurReader::Location end) { - for (; begin < end; ++begin) - if (*begin == '\n' || *begin == '\r') - return true; - return false; +bool OurReader::containsNewLine(OurReader::Location begin, + OurReader::Location end) { + return std::any_of(begin, end, [](char b) { return b == '\n' || b == '\r'; }); } -OurReader::OurReader(OurFeatures const& features) - : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), - lastValue_(), commentsBefore_(), - features_(features), collectComments_() { -} +OurReader::OurReader(OurFeatures const& features) : features_(features) {} -bool OurReader::parse(const char* beginDoc, - const char* endDoc, - Value& root, - bool collectComments) { +bool OurReader::parse(const char* beginDoc, const char* endDoc, Value& root, + bool collectComments) { if (!features_.allowComments_) { collectComments = false; } @@ -1277,22 +1245,23 @@ bool OurReader::parse(const char* beginDoc, end_ = endDoc; collectComments_ = collectComments; current_ = begin_; - lastValueEnd_ = 0; - lastValue_ = 0; + lastValueEnd_ = nullptr; + lastValue_ = nullptr; commentsBefore_.clear(); errors_.clear(); while (!nodes_.empty()) nodes_.pop(); nodes_.push(&root); + // skip byte order mark if it exists at the beginning of the UTF-8 text. + skipBom(features_.skipBom_); bool successful = readValue(); + nodes_.pop(); Token token; skipCommentTokens(token); - if (features_.failIfExtra_) { - if ((features_.strictRoot_ || token.type_ != tokenError) && token.type_ != tokenEndOfStream) { - addError("Extra non-whitespace after JSON value.", token); - return false; - } + if (features_.failIfExtra_ && (token.type_ != tokenEndOfStream)) { + addError("Extra non-whitespace after JSON value.", token); + return false; } if (collectComments_ && !commentsBefore_.empty()) root.setComment(commentsBefore_, commentAfter); @@ -1314,7 +1283,8 @@ bool OurReader::parse(const char* beginDoc, bool OurReader::readValue() { // To preserve the old behaviour we cast size_t to int. - if (static_cast(nodes_.size()) > features_.stackLimit_) throwRuntimeError("Exceeded stackLimit in readValue()."); + if (nodes_.size() > features_.stackLimit_) + throwRuntimeError("Exceeded stackLimit in readValue()."); Token token; skipCommentTokens(token); bool successful = true; @@ -1339,54 +1309,42 @@ bool OurReader::readValue() { case tokenString: successful = decodeString(token); break; - case tokenTrue: - { + case tokenTrue: { Value v(true); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenFalse: - { + } break; + case tokenFalse: { Value v(false); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenNull: - { + } break; + case tokenNull: { Value v; currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenNaN: - { + } break; + case tokenNaN: { Value v(std::numeric_limits::quiet_NaN()); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenPosInf: - { + } break; + case tokenPosInf: { Value v(std::numeric_limits::infinity()); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenNegInf: - { + } break; + case tokenNegInf: { Value v(-std::numeric_limits::infinity()); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; + } break; case tokenArraySeparator: case tokenObjectEnd: case tokenArrayEnd: @@ -1408,6 +1366,7 @@ bool OurReader::readValue() { if (collectComments_) { lastValueEnd_ = current_; + lastValueHasAComment_ = false; lastValue_ = ¤tValue(); } @@ -1448,10 +1407,13 @@ bool OurReader::readToken(Token& token) { break; case '\'': if (features_.allowSingleQuotes_) { - token.type_ = tokenString; - ok = readStringSingleQuote(); + token.type_ = tokenString; + ok = readStringSingleQuote(); + } else { + // If we don't allow single quotes, this is a failure case. + ok = false; + } break; - } // else fall through case '/': token.type_ = tokenComment; ok = readComment(); @@ -1477,6 +1439,14 @@ bool OurReader::readToken(Token& token) { ok = features_.allowSpecialFloats_ && match("nfinity", 7); } break; + case '+': + if (readNumber(true)) { + token.type_ = tokenNumber; + } else { + token.type_ = tokenPosInf; + ok = features_.allowSpecialFloats_ && match("nfinity", 7); + } + break; case 't': token.type_ = tokenTrue; ok = match("rue", 3); @@ -1521,7 +1491,7 @@ bool OurReader::readToken(Token& token) { if (!ok) token.type_ = tokenError; token.end_ = current_; - return true; + return ok; } void OurReader::skipSpaces() { @@ -1534,7 +1504,17 @@ void OurReader::skipSpaces() { } } -bool OurReader::match(Location pattern, int patternLength) { +void OurReader::skipBom(bool skipBom) { + // The default behavior is to skip BOM. + if (skipBom) { + if ((end_ - begin_) >= 3 && strncmp(begin_, "\xEF\xBB\xBF", 3) == 0) { + begin_ += 3; + current_ = begin_; + } + } +} + +bool OurReader::match(const Char* pattern, int patternLength) { if (end_ - current_ < patternLength) return false; int index = patternLength; @@ -1546,21 +1526,32 @@ bool OurReader::match(Location pattern, int patternLength) { } bool OurReader::readComment() { - Location commentBegin = current_ - 1; - Char c = getNextChar(); + const Location commentBegin = current_ - 1; + const Char c = getNextChar(); bool successful = false; - if (c == '*') - successful = readCStyleComment(); - else if (c == '/') + bool cStyleWithEmbeddedNewline = false; + + const bool isCStyleComment = (c == '*'); + const bool isCppStyleComment = (c == '/'); + if (isCStyleComment) { + successful = readCStyleComment(&cStyleWithEmbeddedNewline); + } else if (isCppStyleComment) { successful = readCppStyleComment(); + } + if (!successful) return false; if (collectComments_) { CommentPlacement placement = commentBefore; - if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) { - if (c != '*' || !containsNewLine(commentBegin, current_)) - placement = commentAfterOnSameLine; + + if (!lastValueHasAComment_) { + if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) { + if (isCppStyleComment || !cStyleWithEmbeddedNewline) { + placement = commentAfterOnSameLine; + lastValueHasAComment_ = true; + } + } } addComment(commentBegin, current_, placement); @@ -1568,16 +1559,17 @@ bool OurReader::readComment() { return true; } -JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, OurReader::Location end) { - JSONCPP_STRING normalized; +String OurReader::normalizeEOL(OurReader::Location begin, + OurReader::Location end) { + String normalized; normalized.reserve(static_cast(end - begin)); OurReader::Location current = begin; while (current != end) { char c = *current++; if (c == '\r') { if (current != end && *current == '\n') - // convert dos EOL - ++current; + // convert dos EOL + ++current; // convert Mac EOL normalized += '\n'; } else { @@ -1587,24 +1579,29 @@ JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, OurReader::Loc return normalized; } -void -OurReader::addComment(Location begin, Location end, CommentPlacement placement) { +void OurReader::addComment(Location begin, Location end, + CommentPlacement placement) { assert(collectComments_); - const JSONCPP_STRING& normalized = normalizeEOL(begin, end); + const String& normalized = normalizeEOL(begin, end); if (placement == commentAfterOnSameLine) { - assert(lastValue_ != 0); + assert(lastValue_ != nullptr); lastValue_->setComment(normalized, placement); } else { commentsBefore_ += normalized; } } -bool OurReader::readCStyleComment() { +bool OurReader::readCStyleComment(bool* containsNewLineResult) { + *containsNewLineResult = false; + while ((current_ + 1) < end_) { Char c = getNextChar(); if (c == '*' && *current_ == '/') break; + if (c == '\n') + *containsNewLineResult = true; } + return getNextChar() == '/'; } @@ -1625,7 +1622,7 @@ bool OurReader::readCppStyleComment() { } bool OurReader::readNumber(bool checkInf) { - const char *p = current_; + Location p = current_; if (checkInf && p != end_ && *p == 'I') { current_ = ++p; return false; @@ -1662,7 +1659,6 @@ bool OurReader::readString() { return c == '"'; } - bool OurReader::readStringSingleQuote() { Char c = 0; while (current_ != end_) { @@ -1675,19 +1671,21 @@ bool OurReader::readStringSingleQuote() { return c == '\''; } -bool OurReader::readObject(Token& tokenStart) { +bool OurReader::readObject(Token& token) { Token tokenName; - JSONCPP_STRING name; + String name; Value init(objectValue); currentValue().swapPayload(init); - currentValue().setOffsetStart(tokenStart.start_ - begin_); + currentValue().setOffsetStart(token.start_ - begin_); while (readToken(tokenName)) { bool initialTokenOk = true; while (tokenName.type_ == tokenComment && initialTokenOk) initialTokenOk = readToken(tokenName); if (!initialTokenOk) break; - if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object + if (tokenName.type_ == tokenObjectEnd && + (name.empty() || + features_.allowTrailingCommas_)) // empty object or trailing comma return true; name.clear(); if (tokenName.type_ == tokenString) { @@ -1701,17 +1699,17 @@ bool OurReader::readObject(Token& tokenStart) { } else { break; } + if (name.length() >= (1U << 30)) + throwRuntimeError("keylength >= 2^30"); + if (features_.rejectDupKeys_ && currentValue().isMember(name)) { + String msg = "Duplicate key: '" + name + "'"; + return addErrorAndRecover(msg, tokenName, tokenObjectEnd); + } Token colon; if (!readToken(colon) || colon.type_ != tokenMemberSeparator) { - return addErrorAndRecover( - "Missing ':' after object member name", colon, tokenObjectEnd); - } - if (name.length() >= (1U<<30)) throwRuntimeError("keylength >= 2^30"); - if (features_.rejectDupKeys_ && currentValue().isMember(name)) { - JSONCPP_STRING msg = "Duplicate key: '" + name + "'"; - return addErrorAndRecover( - msg, tokenName, tokenObjectEnd); + return addErrorAndRecover("Missing ':' after object member name", colon, + tokenObjectEnd); } Value& value = currentValue()[name]; nodes_.push(&value); @@ -1724,8 +1722,8 @@ bool OurReader::readObject(Token& tokenStart) { if (!readToken(comma) || (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator && comma.type_ != tokenComment)) { - return addErrorAndRecover( - "Missing ',' or '}' in object declaration", comma, tokenObjectEnd); + return addErrorAndRecover("Missing ',' or '}' in object declaration", + comma, tokenObjectEnd); } bool finalizeTokenOk = true; while (comma.type_ == tokenComment && finalizeTokenOk) @@ -1733,23 +1731,27 @@ bool OurReader::readObject(Token& tokenStart) { if (comma.type_ == tokenObjectEnd) return true; } - return addErrorAndRecover( - "Missing '}' or object member name", tokenName, tokenObjectEnd); + return addErrorAndRecover("Missing '}' or object member name", tokenName, + tokenObjectEnd); } -bool OurReader::readArray(Token& tokenStart) { +bool OurReader::readArray(Token& token) { Value init(arrayValue); currentValue().swapPayload(init); - currentValue().setOffsetStart(tokenStart.start_ - begin_); - skipSpaces(); - if (current_ != end_ && *current_ == ']') // empty array - { - Token endArray; - readToken(endArray); - return true; - } + currentValue().setOffsetStart(token.start_ - begin_); int index = 0; for (;;) { + skipSpaces(); + if (current_ != end_ && *current_ == ']' && + (index == 0 || + (features_.allowTrailingCommas_ && + !features_.allowDroppedNullPlaceholders_))) // empty array or trailing + // comma + { + Token endArray; + readToken(endArray); + return true; + } Value& value = currentValue()[index++]; nodes_.push(&value); bool ok = readValue(); @@ -1757,19 +1759,19 @@ bool OurReader::readArray(Token& tokenStart) { if (!ok) // error already set return recoverFromError(tokenArrayEnd); - Token token; + Token currentToken; // Accept Comment after last item in the array. - ok = readToken(token); - while (token.type_ == tokenComment && ok) { - ok = readToken(token); + ok = readToken(currentToken); + while (currentToken.type_ == tokenComment && ok) { + ok = readToken(currentToken); } - bool badTokenType = - (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd); + bool badTokenType = (currentToken.type_ != tokenArraySeparator && + currentToken.type_ != tokenArrayEnd); if (!ok || badTokenType) { - return addErrorAndRecover( - "Missing ',' or ']' in array declaration", token, tokenArrayEnd); + return addErrorAndRecover("Missing ',' or ']' in array declaration", + currentToken, tokenArrayEnd); } - if (token.type_ == tokenArrayEnd) + if (currentToken.type_ == tokenArrayEnd) break; } return true; @@ -1790,38 +1792,78 @@ bool OurReader::decodeNumber(Token& token, Value& decoded) { // larger than the maximum supported value of an integer then // we decode the number as a double. Location current = token.start_; - bool isNegative = *current == '-'; - if (isNegative) + const bool isNegative = *current == '-'; + if (isNegative) { ++current; - // TODO: Help the compiler do the div and mod at compile time or get rid of them. - Value::LargestUInt maxIntegerValue = - isNegative ? Value::LargestUInt(-Value::minLargestInt) - : Value::maxLargestUInt; - Value::LargestUInt threshold = maxIntegerValue / 10; + } + + // We assume we can represent the largest and smallest integer types as + // unsigned integers with separate sign. This is only true if they can fit + // into an unsigned integer. + static_assert(Value::maxLargestInt <= Value::maxLargestUInt, + "Int must be smaller than UInt"); + + // We need to convert minLargestInt into a positive number. The easiest way + // to do this conversion is to assume our "threshold" value of minLargestInt + // divided by 10 can fit in maxLargestInt when absolute valued. This should + // be a safe assumption. + static_assert(Value::minLargestInt <= -Value::maxLargestInt, + "The absolute value of minLargestInt must be greater than or " + "equal to maxLargestInt"); + static_assert(Value::minLargestInt / 10 >= -Value::maxLargestInt, + "The absolute value of minLargestInt must be only 1 magnitude " + "larger than maxLargest Int"); + + static constexpr Value::LargestUInt positive_threshold = + Value::maxLargestUInt / 10; + static constexpr Value::UInt positive_last_digit = Value::maxLargestUInt % 10; + + // For the negative values, we have to be more careful. Since typically + // -Value::minLargestInt will cause an overflow, we first divide by 10 and + // then take the inverse. This assumes that minLargestInt is only a single + // power of 10 different in magnitude, which we check above. For the last + // digit, we take the modulus before negating for the same reason. + static constexpr auto negative_threshold = + Value::LargestUInt(-(Value::minLargestInt / 10)); + static constexpr auto negative_last_digit = + Value::UInt(-(Value::minLargestInt % 10)); + + const Value::LargestUInt threshold = + isNegative ? negative_threshold : positive_threshold; + const Value::UInt max_last_digit = + isNegative ? negative_last_digit : positive_last_digit; + Value::LargestUInt value = 0; while (current < token.end_) { Char c = *current++; if (c < '0' || c > '9') return decodeDouble(token, decoded); - Value::UInt digit(static_cast(c - '0')); + + const auto digit(static_cast(c - '0')); if (value >= threshold) { // We've hit or exceeded the max value divided by 10 (rounded down). If - // a) we've only just touched the limit, b) this is the last digit, and + // a) we've only just touched the limit, meaing value == threshold, + // b) this is the last digit, or // c) it's small enough to fit in that rounding delta, we're okay. // Otherwise treat this number as a double to avoid overflow. if (value > threshold || current != token.end_ || - digit > maxIntegerValue % 10) { + digit > max_last_digit) { return decodeDouble(token, decoded); } } value = value * 10 + digit; } - if (isNegative) - decoded = -Value::LargestInt(value); - else if (value <= Value::LargestUInt(Value::maxInt)) + + if (isNegative) { + // We use the same magnitude assumption here, just in case. + const auto last_digit = static_cast(value % 10); + decoded = -Value::LargestInt(value / 10) * 10 - last_digit; + } else if (value <= Value::LargestUInt(Value::maxLargestInt)) { decoded = Value::LargestInt(value); - else + } else { decoded = value; + } + return true; } @@ -1837,44 +1879,18 @@ bool OurReader::decodeDouble(Token& token) { bool OurReader::decodeDouble(Token& token, Value& decoded) { double value = 0; - const int bufferSize = 32; - int count; - ptrdiff_t const length = token.end_ - token.start_; - - // Sanity check to avoid buffer overflow exploits. - if (length < 0) { - return addError("Unable to parse token length", token); + const String buffer(token.start_, token.end_); + IStringStream is(buffer); + if (!(is >> value)) { + return addError( + "'" + String(token.start_, token.end_) + "' is not a number.", token); } - size_t const ulength = static_cast(length); - - // Avoid using a string constant for the format control string given to - // sscanf, as this can cause hard to debug crashes on OS X. See here for more - // info: - // - // http://developer.apple.com/library/mac/#DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/Incompatibilities.html - char format[] = "%lf"; - - if (length <= bufferSize) { - Char buffer[bufferSize + 1]; - memcpy(buffer, token.start_, ulength); - buffer[length] = 0; - fixNumericLocaleInput(buffer, buffer + length); - count = sscanf(buffer, format, &value); - } else { - JSONCPP_STRING buffer(token.start_, token.end_); - count = sscanf(buffer.c_str(), format, &value); - } - - if (count != 1) - return addError("'" + JSONCPP_STRING(token.start_, token.end_) + - "' is not a number.", - token); decoded = value; return true; } bool OurReader::decodeString(Token& token) { - JSONCPP_STRING decoded_string; + String decoded_string; if (!decodeString(token, decoded_string)) return false; Value decoded(decoded_string); @@ -1884,7 +1900,7 @@ bool OurReader::decodeString(Token& token) { return true; } -bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) { +bool OurReader::decodeString(Token& token, String& decoded) { decoded.reserve(static_cast(token.end_ - token.start_ - 2)); Location current = token.start_ + 1; // skip '"' Location end = token.end_ - 1; // do not include '"' @@ -1892,7 +1908,7 @@ bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) { Char c = *current++; if (c == '"') break; - else if (c == '\\') { + if (c == '\\') { if (current == end) return addError("Empty escape sequence in string", token, current); Char escape = *current++; @@ -1937,10 +1953,8 @@ bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) { return true; } -bool OurReader::decodeUnicodeCodePoint(Token& token, - Location& current, - Location end, - unsigned int& unicode) { +bool OurReader::decodeUnicodeCodePoint(Token& token, Location& current, + Location end, unsigned int& unicode) { if (!decodeUnicodeEscapeSequence(token, current, end, unicode)) return false; @@ -1949,10 +1963,9 @@ bool OurReader::decodeUnicodeCodePoint(Token& token, if (end - current < 6) return addError( "additional six characters expected to parse unicode surrogate pair.", - token, - current); - unsigned int surrogatePair; + token, current); if (*(current++) == '\\' && *(current++) == 'u') { + unsigned int surrogatePair; if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) { unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF); } else @@ -1960,20 +1973,17 @@ bool OurReader::decodeUnicodeCodePoint(Token& token, } else return addError("expecting another \\u token to begin the second half of " "a unicode surrogate pair", - token, - current); + token, current); } return true; } -bool OurReader::decodeUnicodeEscapeSequence(Token& token, - Location& current, - Location end, - unsigned int& ret_unicode) { +bool OurReader::decodeUnicodeEscapeSequence(Token& token, Location& current, + Location end, + unsigned int& ret_unicode) { if (end - current < 4) return addError( - "Bad unicode escape sequence in string: four digits expected.", - token, + "Bad unicode escape sequence in string: four digits expected.", token, current); int unicode = 0; for (int index = 0; index < 4; ++index) { @@ -1988,15 +1998,13 @@ bool OurReader::decodeUnicodeEscapeSequence(Token& token, else return addError( "Bad unicode escape sequence in string: hexadecimal digit expected.", - token, - current); + token, current); } ret_unicode = static_cast(unicode); return true; } -bool -OurReader::addError(const JSONCPP_STRING& message, Token& token, Location extra) { +bool OurReader::addError(const String& message, Token& token, Location extra) { ErrorInfo info; info.token_ = token; info.message_ = message; @@ -2018,9 +2026,8 @@ bool OurReader::recoverFromError(TokenType skipUntilToken) { return false; } -bool OurReader::addErrorAndRecover(const JSONCPP_STRING& message, - Token& token, - TokenType skipUntilToken) { +bool OurReader::addErrorAndRecover(const String& message, Token& token, + TokenType skipUntilToken) { addError(message, token); return recoverFromError(skipUntilToken); } @@ -2033,9 +2040,8 @@ OurReader::Char OurReader::getNextChar() { return *current_++; } -void OurReader::getLocationLineAndColumn(Location location, - int& line, - int& column) const { +void OurReader::getLocationLineAndColumn(Location location, int& line, + int& column) const { Location current = begin_; Location lastLineStart = current; line = 0; @@ -2056,20 +2062,17 @@ void OurReader::getLocationLineAndColumn(Location location, ++line; } -JSONCPP_STRING OurReader::getLocationLineAndColumn(Location location) const { +String OurReader::getLocationLineAndColumn(Location location) const { int line, column; getLocationLineAndColumn(location, line, column); char buffer[18 + 16 + 16 + 1]; - snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); + jsoncpp_snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); return buffer; } -JSONCPP_STRING OurReader::getFormattedErrorMessages() const { - JSONCPP_STRING formattedMessage; - for (Errors::const_iterator itError = errors_.begin(); - itError != errors_.end(); - ++itError) { - const ErrorInfo& error = *itError; +String OurReader::getFormattedErrorMessages() const { + String formattedMessage; + for (const auto& error : errors_) { formattedMessage += "* " + getLocationLineAndColumn(error.token_.start_) + "\n"; formattedMessage += " " + error.message_ + "\n"; @@ -2082,10 +2085,7 @@ JSONCPP_STRING OurReader::getFormattedErrorMessages() const { std::vector OurReader::getStructuredErrors() const { std::vector allErrors; - for (Errors::const_iterator itError = errors_.begin(); - itError != errors_.end(); - ++itError) { - const ErrorInfo& error = *itError; + for (const auto& error : errors_) { OurReader::StructuredError structured; structured.offset_start = error.token_.start_ - begin_; structured.offset_limit = error.token_.end_ - begin_; @@ -2095,59 +2095,15 @@ std::vector OurReader::getStructuredErrors() const { return allErrors; } -bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message) { - ptrdiff_t length = end_ - begin_; - if(value.getOffsetStart() > length - || value.getOffsetLimit() > length) - return false; - Token token; - token.type_ = tokenError; - token.start_ = begin_ + value.getOffsetStart(); - token.end_ = end_ + value.getOffsetLimit(); - ErrorInfo info; - info.token_ = token; - info.message_ = message; - info.extra_ = 0; - errors_.push_back(info); - return true; -} - -bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) { - ptrdiff_t length = end_ - begin_; - if(value.getOffsetStart() > length - || value.getOffsetLimit() > length - || extra.getOffsetLimit() > length) - return false; - Token token; - token.type_ = tokenError; - token.start_ = begin_ + value.getOffsetStart(); - token.end_ = begin_ + value.getOffsetLimit(); - ErrorInfo info; - info.token_ = token; - info.message_ = message; - info.extra_ = begin_ + extra.getOffsetStart(); - errors_.push_back(info); - return true; -} - -bool OurReader::good() const { - return !errors_.size(); -} - - class OurCharReader : public CharReader { bool const collectComments_; OurReader reader_; + public: - OurCharReader( - bool collectComments, - OurFeatures const& features) - : collectComments_(collectComments) - , reader_(features) - {} - bool parse( - char const* beginDoc, char const* endDoc, - Value* root, JSONCPP_STRING* errs) JSONCPP_OVERRIDE { + OurCharReader(bool collectComments, OurFeatures const& features) + : collectComments_(collectComments), reader_(features) {} + bool parse(char const* beginDoc, char const* endDoc, Value* root, + String* errs) override { bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_); if (errs) { *errs = reader_.getFormattedErrorMessages(); @@ -2156,67 +2112,64 @@ public: } }; -CharReaderBuilder::CharReaderBuilder() -{ - setDefaults(&settings_); -} -CharReaderBuilder::~CharReaderBuilder() -{} -CharReader* CharReaderBuilder::newCharReader() const -{ +CharReaderBuilder::CharReaderBuilder() { setDefaults(&settings_); } +CharReaderBuilder::~CharReaderBuilder() = default; +CharReader* CharReaderBuilder::newCharReader() const { bool collectComments = settings_["collectComments"].asBool(); OurFeatures features = OurFeatures::all(); features.allowComments_ = settings_["allowComments"].asBool(); + features.allowTrailingCommas_ = settings_["allowTrailingCommas"].asBool(); features.strictRoot_ = settings_["strictRoot"].asBool(); - features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool(); + features.allowDroppedNullPlaceholders_ = + settings_["allowDroppedNullPlaceholders"].asBool(); features.allowNumericKeys_ = settings_["allowNumericKeys"].asBool(); features.allowSingleQuotes_ = settings_["allowSingleQuotes"].asBool(); - features.stackLimit_ = settings_["stackLimit"].asInt(); + + // Stack limit is always a size_t, so we get this as an unsigned int + // regardless of it we have 64-bit integer support enabled. + features.stackLimit_ = static_cast(settings_["stackLimit"].asUInt()); features.failIfExtra_ = settings_["failIfExtra"].asBool(); features.rejectDupKeys_ = settings_["rejectDupKeys"].asBool(); features.allowSpecialFloats_ = settings_["allowSpecialFloats"].asBool(); + features.skipBom_ = settings_["skipBom"].asBool(); return new OurCharReader(collectComments, features); } -static void getValidReaderKeys(std::set* valid_keys) -{ - valid_keys->clear(); - valid_keys->insert("collectComments"); - valid_keys->insert("allowComments"); - valid_keys->insert("strictRoot"); - valid_keys->insert("allowDroppedNullPlaceholders"); - valid_keys->insert("allowNumericKeys"); - valid_keys->insert("allowSingleQuotes"); - valid_keys->insert("stackLimit"); - valid_keys->insert("failIfExtra"); - valid_keys->insert("rejectDupKeys"); - valid_keys->insert("allowSpecialFloats"); -} -bool CharReaderBuilder::validate(Json::Value* invalid) const -{ - Json::Value my_invalid; - if (!invalid) invalid = &my_invalid; // so we do not need to test for NULL - Json::Value& inv = *invalid; - std::set valid_keys; - getValidReaderKeys(&valid_keys); - Value::Members keys = settings_.getMemberNames(); - size_t n = keys.size(); - for (size_t i = 0; i < n; ++i) { - JSONCPP_STRING const& key = keys[i]; - if (valid_keys.find(key) == valid_keys.end()) { - inv[key] = settings_[key]; - } + +bool CharReaderBuilder::validate(Json::Value* invalid) const { + static const auto& valid_keys = *new std::set{ + "collectComments", + "allowComments", + "allowTrailingCommas", + "strictRoot", + "allowDroppedNullPlaceholders", + "allowNumericKeys", + "allowSingleQuotes", + "stackLimit", + "failIfExtra", + "rejectDupKeys", + "allowSpecialFloats", + "skipBom", + }; + for (auto si = settings_.begin(); si != settings_.end(); ++si) { + auto key = si.name(); + if (valid_keys.count(key)) + continue; + if (invalid) + (*invalid)[std::move(key)] = *si; + else + return false; } - return 0u == inv.size(); + return invalid ? invalid->empty() : true; } -Value& CharReaderBuilder::operator[](JSONCPP_STRING key) -{ + +Value& CharReaderBuilder::operator[](const String& key) { return settings_[key]; } // static -void CharReaderBuilder::strictMode(Json::Value* settings) -{ -//! [CharReaderBuilderStrictMode] +void CharReaderBuilder::strictMode(Json::Value* settings) { + //! [CharReaderBuilderStrictMode] (*settings)["allowComments"] = false; + (*settings)["allowTrailingCommas"] = false; (*settings)["strictRoot"] = true; (*settings)["allowDroppedNullPlaceholders"] = false; (*settings)["allowNumericKeys"] = false; @@ -2225,14 +2178,15 @@ void CharReaderBuilder::strictMode(Json::Value* settings) (*settings)["failIfExtra"] = true; (*settings)["rejectDupKeys"] = true; (*settings)["allowSpecialFloats"] = false; -//! [CharReaderBuilderStrictMode] + (*settings)["skipBom"] = true; + //! [CharReaderBuilderStrictMode] } // static -void CharReaderBuilder::setDefaults(Json::Value* settings) -{ -//! [CharReaderBuilderDefaults] +void CharReaderBuilder::setDefaults(Json::Value* settings) { + //! [CharReaderBuilderDefaults] (*settings)["collectComments"] = true; (*settings)["allowComments"] = true; + (*settings)["allowTrailingCommas"] = true; (*settings)["strictRoot"] = false; (*settings)["allowDroppedNullPlaceholders"] = false; (*settings)["allowNumericKeys"] = false; @@ -2241,19 +2195,18 @@ void CharReaderBuilder::setDefaults(Json::Value* settings) (*settings)["failIfExtra"] = false; (*settings)["rejectDupKeys"] = false; (*settings)["allowSpecialFloats"] = false; -//! [CharReaderBuilderDefaults] + (*settings)["skipBom"] = true; + //! [CharReaderBuilderDefaults] } ////////////////////////////////// // global functions -bool parseFromStream( - CharReader::Factory const& fact, JSONCPP_ISTREAM& sin, - Value* root, JSONCPP_STRING* errs) -{ - JSONCPP_OSTRINGSTREAM ssin; +bool parseFromStream(CharReader::Factory const& fact, IStream& sin, Value* root, + String* errs) { + OStringStream ssin; ssin << sin.rdbuf(); - JSONCPP_STRING doc = ssin.str(); + String doc = ssin.str(); char const* begin = doc.data(); char const* end = begin + doc.size(); // Note that we do not actually need a null-terminator. @@ -2261,9 +2214,9 @@ bool parseFromStream( return reader->parse(begin, end, root, errs); } -JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) { +IStream& operator>>(IStream& sin, Value& root) { CharReaderBuilder b; - JSONCPP_STRING errs; + String errs; bool ok = parseFromStream(b, sin, &root, &errs); if (!ok) { throwRuntimeError(errs); @@ -2303,31 +2256,21 @@ namespace Json { // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// -ValueIteratorBase::ValueIteratorBase() - : current_(), isNull_(true) { -} +ValueIteratorBase::ValueIteratorBase() : current_() {} ValueIteratorBase::ValueIteratorBase( const Value::ObjectValues::iterator& current) : current_(current), isNull_(false) {} -Value& ValueIteratorBase::deref() const { - return current_->second; -} +Value& ValueIteratorBase::deref() { return current_->second; } +const Value& ValueIteratorBase::deref() const { return current_->second; } -void ValueIteratorBase::increment() { - ++current_; -} +void ValueIteratorBase::increment() { ++current_; } -void ValueIteratorBase::decrement() { - --current_; -} +void ValueIteratorBase::decrement() { --current_; } ValueIteratorBase::difference_type ValueIteratorBase::computeDistance(const SelfType& other) const { -#ifdef JSON_USE_CPPTL_SMALLMAP - return other.current_ - current_; -#else // Iterator for null value are initialized using the default // constructor, which initialize current_ to the default // std::map::iterator. As begin() and end() are two instance @@ -2348,7 +2291,6 @@ ValueIteratorBase::computeDistance(const SelfType& other) const { ++myDistance; } return myDistance; -#endif } bool ValueIteratorBase::isEqual(const SelfType& other) const { @@ -2380,12 +2322,13 @@ UInt ValueIteratorBase::index() const { return Value::UInt(-1); } -JSONCPP_STRING ValueIteratorBase::name() const { +String ValueIteratorBase::name() const { char const* keey; char const* end; keey = memberName(&end); - if (!keey) return JSONCPP_STRING(); - return JSONCPP_STRING(keey, end); + if (!keey) + return String(); + return String(keey, end); } char const* ValueIteratorBase::memberName() const { @@ -2396,8 +2339,8 @@ char const* ValueIteratorBase::memberName() const { char const* ValueIteratorBase::memberName(char const** end) const { const char* cname = (*current_).first.data(); if (!cname) { - *end = NULL; - return NULL; + *end = nullptr; + return nullptr; } *end = cname + (*current_).first.length(); return cname; @@ -2411,7 +2354,7 @@ char const* ValueIteratorBase::memberName(char const** end) const { // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// -ValueConstIterator::ValueConstIterator() {} +ValueConstIterator::ValueConstIterator() = default; ValueConstIterator::ValueConstIterator( const Value::ObjectValues::iterator& current) @@ -2434,7 +2377,7 @@ operator=(const ValueIteratorBase& other) { // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// -ValueIterator::ValueIterator() {} +ValueIterator::ValueIterator() = default; ValueIterator::ValueIterator(const Value::ObjectValues::iterator& current) : ValueIteratorBase(current) {} @@ -2444,8 +2387,7 @@ ValueIterator::ValueIterator(const ValueConstIterator& other) throwRuntimeError("ConstIterator to Iterator should never be allowed."); } -ValueIterator::ValueIterator(const ValueIterator& other) - : ValueIteratorBase(other) {} +ValueIterator::ValueIterator(const ValueIterator& other) = default; ValueIterator& ValueIterator::operator=(const SelfType& other) { copy(other); @@ -2477,20 +2419,54 @@ ValueIterator& ValueIterator::operator=(const SelfType& other) { #include #include #endif // if !defined(JSON_IS_AMALGAMATION) -#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#ifdef JSON_USE_CPPTL -#include + +// Provide implementation equivalent of std::snprintf for older _MSC compilers +#if defined(_MSC_VER) && _MSC_VER < 1900 +#include +static int msvc_pre1900_c99_vsnprintf(char* outBuf, size_t size, + const char* format, va_list ap) { + int count = -1; + if (size != 0) + count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap); + if (count == -1) + count = _vscprintf(format, ap); + return count; +} + +int JSON_API msvc_pre1900_c99_snprintf(char* outBuf, size_t size, + const char* format, ...) { + va_list ap; + va_start(ap, format); + const int count = msvc_pre1900_c99_vsnprintf(outBuf, size, format, ap); + va_end(ap); + return count; +} +#endif + +// Disable warning C4702 : unreachable code +#if defined(_MSC_VER) +#pragma warning(disable : 4702) #endif -#include // size_t -#include // min() #define JSON_ASSERT_UNREACHABLE assert(false) namespace Json { +template +static std::unique_ptr cloneUnique(const std::unique_ptr& p) { + std::unique_ptr r; + if (p) { + r = std::unique_ptr(new T(*p)); + } + return r; +} // This is a walkaround to avoid the static initialization of Value::null. // kNull must be word-aligned to avoid crashing on ARM. We use an alignment of @@ -2500,50 +2476,34 @@ namespace Json { #else #define ALIGNAS(byte_alignment) #endif -//static const unsigned char ALIGNAS(8) kNull[sizeof(Value)] = { 0 }; -//const unsigned char& kNullRef = kNull[0]; -//const Value& Value::null = reinterpret_cast(kNullRef); -//const Value& Value::nullRef = null; // static -Value const& Value::nullSingleton() -{ - static Value const nullStatic; - return nullStatic; +Value const& Value::nullSingleton() { + static Value const nullStatic; + return nullStatic; } -// for backwards compatibility, we'll leave these global references around, but DO NOT -// use them in JSONCPP library code any more! +#if JSON_USE_NULLREF +// for backwards compatibility, we'll leave these global references around, but +// DO NOT use them in JSONCPP library code any more! +// static Value const& Value::null = Value::nullSingleton(); -Value const& Value::nullRef = Value::nullSingleton(); -const Int Value::minInt = Int(~(UInt(-1) / 2)); -const Int Value::maxInt = Int(UInt(-1) / 2); -const UInt Value::maxUInt = UInt(-1); -#if defined(JSON_HAS_INT64) -const Int64 Value::minInt64 = Int64(~(UInt64(-1) / 2)); -const Int64 Value::maxInt64 = Int64(UInt64(-1) / 2); -const UInt64 Value::maxUInt64 = UInt64(-1); -// The constant is hard-coded because some compiler have trouble -// converting Value::maxUInt64 to a double correctly (AIX/xlC). -// Assumes that UInt64 is a 64 bits integer. -static const double maxUInt64AsDouble = 18446744073709551615.0; -#endif // defined(JSON_HAS_INT64) -const LargestInt Value::minLargestInt = LargestInt(~(LargestUInt(-1) / 2)); -const LargestInt Value::maxLargestInt = LargestInt(LargestUInt(-1) / 2); -const LargestUInt Value::maxLargestUInt = LargestUInt(-1); +// static +Value const& Value::nullRef = Value::nullSingleton(); +#endif #if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) template static inline bool InRange(double d, T min, U max) { // The casts can lose precision, but we are looking only for // an approximate range. Might fail on edge cases though. ~cdunn - //return d >= static_cast(min) && d <= static_cast(max); - return d >= min && d <= max; + return d >= static_cast(min) && d <= static_cast(max); } #else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) static inline double integerToDouble(Json::UInt64 value) { - return static_cast(Int64(value / 2)) * 2.0 + static_cast(Int64(value & 1)); + return static_cast(Int64(value / 2)) * 2.0 + + static_cast(Int64(value & 1)); } template static inline double integerToDouble(T value) { @@ -2563,19 +2523,16 @@ static inline bool InRange(double d, T min, U max) { * computed using strlen(value). * @return Pointer on the duplicate instance of string. */ -static inline char* duplicateStringValue(const char* value, - size_t length) -{ +static inline char* duplicateStringValue(const char* value, size_t length) { // Avoid an integer overflow in the call to malloc below by limiting length // to a sane value. if (length >= static_cast(Value::maxInt)) length = Value::maxInt - 1; - char* newString = static_cast(malloc(length + 1)); - if (newString == NULL) { - throwRuntimeError( - "in Json::Value::duplicateStringValue(): " - "Failed to allocate string value buffer"); + auto newString = static_cast(malloc(length + 1)); + if (newString == nullptr) { + throwRuntimeError("in Json::Value::duplicateStringValue(): " + "Failed to allocate string value buffer"); } memcpy(newString, value, length); newString[length] = 0; @@ -2584,31 +2541,28 @@ static inline char* duplicateStringValue(const char* value, /* Record the length as a prefix. */ -static inline char* duplicateAndPrefixStringValue( - const char* value, - unsigned int length) -{ +static inline char* duplicateAndPrefixStringValue(const char* value, + unsigned int length) { // Avoid an integer overflow in the call to malloc below by limiting length // to a sane value. - JSON_ASSERT_MESSAGE(length <= static_cast(Value::maxInt) - sizeof(unsigned) - 1U, + JSON_ASSERT_MESSAGE(length <= static_cast(Value::maxInt) - + sizeof(unsigned) - 1U, "in Json::Value::duplicateAndPrefixStringValue(): " "length too big for prefixing"); - unsigned actualLength = length + static_cast(sizeof(unsigned)) + 1U; - char* newString = static_cast(malloc(actualLength)); - if (newString == 0) { - throwRuntimeError( - "in Json::Value::duplicateAndPrefixStringValue(): " - "Failed to allocate string value buffer"); + size_t actualLength = sizeof(length) + length + 1; + auto newString = static_cast(malloc(actualLength)); + if (newString == nullptr) { + throwRuntimeError("in Json::Value::duplicateAndPrefixStringValue(): " + "Failed to allocate string value buffer"); } *reinterpret_cast(newString) = length; memcpy(newString + sizeof(unsigned), value, length); - newString[actualLength - 1U] = 0; // to avoid buffer over-run accidents by users later + newString[actualLength - 1U] = + 0; // to avoid buffer over-run accidents by users later return newString; } -inline static void decodePrefixedString( - bool isPrefixed, char const* prefixed, - unsigned* length, char const** value) -{ +inline static void decodePrefixedString(bool isPrefixed, char const* prefixed, + unsigned* length, char const** value) { if (!isPrefixed) { *length = static_cast(strlen(prefixed)); *value = prefixed; @@ -2617,7 +2571,8 @@ inline static void decodePrefixedString( *value = prefixed + sizeof(unsigned); } } -/** Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue(). +/** Free the string duplicated by + * duplicateStringValue()/duplicateAndPrefixStringValue(). */ #if JSONCPP_USING_SECURE_MEMORY static inline void releasePrefixedStringValue(char* value) { @@ -2630,17 +2585,13 @@ static inline void releasePrefixedStringValue(char* value) { } static inline void releaseStringValue(char* value, unsigned length) { // length==0 => we allocated the strings memory - size_t size = (length==0) ? strlen(value) : length; + size_t size = (length == 0) ? strlen(value) : length; memset(value, 0, size); free(value); } -#else // !JSONCPP_USING_SECURE_MEMORY -static inline void releasePrefixedStringValue(char* value) { - free(value); -} -static inline void releaseStringValue(char* value, unsigned) { - free(value); -} +#else // !JSONCPP_USING_SECURE_MEMORY +static inline void releasePrefixedStringValue(char* value) { free(value); } +static inline void releaseStringValue(char* value, unsigned) { free(value); } #endif // JSONCPP_USING_SECURE_MEMORY } // namespace Json @@ -2659,58 +2610,28 @@ static inline void releaseStringValue(char* value, unsigned) { namespace Json { -Exception::Exception(JSONCPP_STRING const& msg) - : msg_(msg) -{} -Exception::~Exception() JSONCPP_NOEXCEPT -{} -char const* Exception::what() const JSONCPP_NOEXCEPT -{ - return msg_.c_str(); -} -RuntimeError::RuntimeError(JSONCPP_STRING const& msg) - : Exception(msg) -{} -LogicError::LogicError(JSONCPP_STRING const& msg) - : Exception(msg) -{} -JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg) -{ +#if JSON_USE_EXCEPTION +Exception::Exception(String msg) : msg_(std::move(msg)) {} +Exception::~Exception() noexcept = default; +char const* Exception::what() const noexcept { return msg_.c_str(); } +RuntimeError::RuntimeError(String const& msg) : Exception(msg) {} +LogicError::LogicError(String const& msg) : Exception(msg) {} +JSONCPP_NORETURN void throwRuntimeError(String const& msg) { throw RuntimeError(msg); } -JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg) -{ +JSONCPP_NORETURN void throwLogicError(String const& msg) { throw LogicError(msg); } - -// ////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////// -// class Value::CommentInfo -// ////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////// - -Value::CommentInfo::CommentInfo() : comment_(0) -{} - -Value::CommentInfo::~CommentInfo() { - if (comment_) - releaseStringValue(comment_, 0u); +#else // !JSON_USE_EXCEPTION +JSONCPP_NORETURN void throwRuntimeError(String const& msg) { + std::cerr << msg << std::endl; + abort(); } - -void Value::CommentInfo::setComment(const char* text, size_t len) { - if (comment_) { - releaseStringValue(comment_, 0u); - comment_ = 0; - } - JSON_ASSERT(text != 0); - JSON_ASSERT_MESSAGE( - text[0] == '\0' || text[0] == '/', - "in Json::Value::setComment(): Comments must start with /"); - // It seems that /**/ style comments are acceptable as well. - comment_ = duplicateStringValue(text, len); +JSONCPP_NORETURN void throwLogicError(String const& msg) { + std::cerr << msg << std::endl; + abort(); } +#endif // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// @@ -2723,36 +2644,44 @@ void Value::CommentInfo::setComment(const char* text, size_t len) { // Notes: policy_ indicates if the string was allocated when // a string is stored. -Value::CZString::CZString(ArrayIndex aindex) : cstr_(0), index_(aindex) {} +Value::CZString::CZString(ArrayIndex index) : cstr_(nullptr), index_(index) {} -Value::CZString::CZString(char const* str, unsigned ulength, DuplicationPolicy allocate) +Value::CZString::CZString(char const* str, unsigned length, + DuplicationPolicy allocate) : cstr_(str) { // allocate != duplicate storage_.policy_ = allocate & 0x3; - storage_.length_ = ulength & 0x3FFFFFFF; + storage_.length_ = length & 0x3FFFFFFF; } Value::CZString::CZString(const CZString& other) { - cstr_ = (other.storage_.policy_ != noDuplication && other.cstr_ != 0 - ? duplicateStringValue(other.cstr_, other.storage_.length_) - : other.cstr_); - storage_.policy_ = static_cast(other.cstr_ - ? (static_cast(other.storage_.policy_) == noDuplication - ? noDuplication : duplicate) - : static_cast(other.storage_.policy_)) & 3U; + cstr_ = (other.storage_.policy_ != noDuplication && other.cstr_ != nullptr + ? duplicateStringValue(other.cstr_, other.storage_.length_) + : other.cstr_); + storage_.policy_ = + static_cast( + other.cstr_ + ? (static_cast(other.storage_.policy_) == + noDuplication + ? noDuplication + : duplicate) + : static_cast(other.storage_.policy_)) & + 3U; storage_.length_ = other.storage_.length_; } -#if JSON_HAS_RVALUE_REFERENCES Value::CZString::CZString(CZString&& other) - : cstr_(other.cstr_), index_(other.index_) { + : cstr_(other.cstr_), index_(other.index_) { other.cstr_ = nullptr; } -#endif Value::CZString::~CZString() { if (cstr_ && storage_.policy_ == duplicate) { - releaseStringValue(const_cast(cstr_), storage_.length_ + 1u); //+1 for null terminating character for sake of completeness but not actually necessary + releaseStringValue(const_cast(cstr_), + storage_.length_ + 1U); // +1 for null terminating + // character for sake of + // completeness but not actually + // necessary } } @@ -2767,36 +2696,39 @@ Value::CZString& Value::CZString::operator=(const CZString& other) { return *this; } -#if JSON_HAS_RVALUE_REFERENCES Value::CZString& Value::CZString::operator=(CZString&& other) { cstr_ = other.cstr_; index_ = other.index_; other.cstr_ = nullptr; return *this; } -#endif bool Value::CZString::operator<(const CZString& other) const { - if (!cstr_) return index_ < other.index_; - //return strcmp(cstr_, other.cstr_) < 0; + if (!cstr_) + return index_ < other.index_; + // return strcmp(cstr_, other.cstr_) < 0; // Assume both are strings. unsigned this_len = this->storage_.length_; unsigned other_len = other.storage_.length_; unsigned min_len = std::min(this_len, other_len); JSON_ASSERT(this->cstr_ && other.cstr_); int comp = memcmp(this->cstr_, other.cstr_, min_len); - if (comp < 0) return true; - if (comp > 0) return false; + if (comp < 0) + return true; + if (comp > 0) + return false; return (this_len < other_len); } bool Value::CZString::operator==(const CZString& other) const { - if (!cstr_) return index_ == other.index_; - //return strcmp(cstr_, other.cstr_) == 0; + if (!cstr_) + return index_ == other.index_; + // return strcmp(cstr_, other.cstr_) == 0; // Assume both are strings. unsigned this_len = this->storage_.length_; unsigned other_len = other.storage_.length_; - if (this_len != other_len) return false; + if (this_len != other_len) + return false; JSON_ASSERT(this->cstr_ && other.cstr_); int comp = memcmp(this->cstr_, other.cstr_, this_len); return comp == 0; @@ -2804,10 +2736,12 @@ bool Value::CZString::operator==(const CZString& other) const { ArrayIndex Value::CZString::index() const { return index_; } -//const char* Value::CZString::c_str() const { return cstr_; } +// const char* Value::CZString::c_str() const { return cstr_; } const char* Value::CZString::data() const { return cstr_; } unsigned Value::CZString::length() const { return storage_.length_; } -bool Value::CZString::isStaticString() const { return storage_.policy_ == noDuplication; } +bool Value::CZString::isStaticString() const { + return storage_.policy_ == noDuplication; +} // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// @@ -2821,10 +2755,10 @@ bool Value::CZString::isStaticString() const { return storage_.policy_ == noDupl * memset( this, 0, sizeof(Value) ) * This optimization is used in ValueInternalMap fast allocator. */ -Value::Value(ValueType vtype) { +Value::Value(ValueType type) { static char const emptyString[] = ""; - initBasic(vtype); - switch (vtype) { + initBasic(type); + switch (type) { case nullValue: break; case intValue: @@ -2877,20 +2811,22 @@ Value::Value(double value) { Value::Value(const char* value) { initBasic(stringValue, true); - JSON_ASSERT_MESSAGE(value != NULL, "Null Value Passed to Value Constructor"); - value_.string_ = duplicateAndPrefixStringValue(value, static_cast(strlen(value))); + JSON_ASSERT_MESSAGE(value != nullptr, + "Null Value Passed to Value Constructor"); + value_.string_ = duplicateAndPrefixStringValue( + value, static_cast(strlen(value))); } -Value::Value(const char* beginValue, const char* endValue) { +Value::Value(const char* begin, const char* end) { initBasic(stringValue, true); value_.string_ = - duplicateAndPrefixStringValue(beginValue, static_cast(endValue - beginValue)); + duplicateAndPrefixStringValue(begin, static_cast(end - begin)); } -Value::Value(const JSONCPP_STRING& value) { +Value::Value(const String& value) { initBasic(stringValue, true); - value_.string_ = - duplicateAndPrefixStringValue(value.data(), static_cast(value.length())); + value_.string_ = duplicateAndPrefixStringValue( + value.data(), static_cast(value.length())); } Value::Value(const StaticString& value) { @@ -2898,114 +2834,44 @@ Value::Value(const StaticString& value) { value_.string_ = const_cast(value.c_str()); } -#ifdef JSON_USE_CPPTL -Value::Value(const CppTL::ConstString& value) { - initBasic(stringValue, true); - value_.string_ = duplicateAndPrefixStringValue(value, static_cast(value.length())); -} -#endif - Value::Value(bool value) { initBasic(booleanValue); value_.bool_ = value; } -Value::Value(Value const& other) - : type_(other.type_), allocated_(false) - , - comments_(0), start_(other.start_), limit_(other.limit_) -{ - switch (type_) { - case nullValue: - case intValue: - case uintValue: - case realValue: - case booleanValue: - value_ = other.value_; - break; - case stringValue: - if (other.value_.string_ && other.allocated_) { - unsigned len; - char const* str; - decodePrefixedString(other.allocated_, other.value_.string_, - &len, &str); - value_.string_ = duplicateAndPrefixStringValue(str, len); - allocated_ = true; - } else { - value_.string_ = other.value_.string_; - allocated_ = false; - } - break; - case arrayValue: - case objectValue: - value_.map_ = new ObjectValues(*other.value_.map_); - break; - default: - JSON_ASSERT_UNREACHABLE; - } - if (other.comments_) { - comments_ = new CommentInfo[numberOfCommentPlacement]; - for (int comment = 0; comment < numberOfCommentPlacement; ++comment) { - const CommentInfo& otherComment = other.comments_[comment]; - if (otherComment.comment_) - comments_[comment].setComment( - otherComment.comment_, strlen(otherComment.comment_)); - } - } +Value::Value(const Value& other) { + dupPayload(other); + dupMeta(other); } -#if JSON_HAS_RVALUE_REFERENCES -// Move constructor Value::Value(Value&& other) { initBasic(nullValue); swap(other); } -#endif Value::~Value() { - switch (type_) { - case nullValue: - case intValue: - case uintValue: - case realValue: - case booleanValue: - break; - case stringValue: - if (allocated_) - releasePrefixedStringValue(value_.string_); - break; - case arrayValue: - case objectValue: - delete value_.map_; - break; - default: - JSON_ASSERT_UNREACHABLE; - } - - delete[] comments_; - + releasePayload(); value_.uint_ = 0; } -Value& Value::operator=(Value other) { - swap(other); +Value& Value::operator=(const Value& other) { + Value(other).swap(*this); + return *this; +} + +Value& Value::operator=(Value&& other) { + other.swap(*this); return *this; } void Value::swapPayload(Value& other) { - ValueType temp = type_; - type_ = other.type_; - other.type_ = temp; + std::swap(bits_, other.bits_); std::swap(value_, other.value_); - int temp2 = allocated_; - allocated_ = other.allocated_; - other.allocated_ = temp2 & 0x1; } void Value::copyPayload(const Value& other) { - type_ = other.type_; - value_ = other.value_; - allocated_ = other.allocated_; + releasePayload(); + dupPayload(other); } void Value::swap(Value& other) { @@ -3017,12 +2883,12 @@ void Value::swap(Value& other) { void Value::copy(const Value& other) { copyPayload(other); - comments_ = other.comments_; - start_ = other.start_; - limit_ = other.limit_; + dupMeta(other); } -ValueType Value::type() const { return type_; } +ValueType Value::type() const { + return static_cast(bits_.value_type_); +} int Value::compare(const Value& other) const { if (*this < other) @@ -3033,10 +2899,10 @@ int Value::compare(const Value& other) const { } bool Value::operator<(const Value& other) const { - int typeDelta = type_ - other.type_; + int typeDelta = type() - other.type(); if (typeDelta) - return typeDelta < 0 ? true : false; - switch (type_) { + return typeDelta < 0; + switch (type()) { case nullValue: return false; case intValue: @@ -3047,30 +2913,33 @@ bool Value::operator<(const Value& other) const { return value_.real_ < other.value_.real_; case booleanValue: return value_.bool_ < other.value_.bool_; - case stringValue: - { - if ((value_.string_ == 0) || (other.value_.string_ == 0)) { - if (other.value_.string_) return true; - else return false; + case stringValue: { + if ((value_.string_ == nullptr) || (other.value_.string_ == nullptr)) { + return other.value_.string_ != nullptr; } unsigned this_len; unsigned other_len; char const* this_str; char const* other_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); - decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str); + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); + decodePrefixedString(other.isAllocated(), other.value_.string_, &other_len, + &other_str); unsigned min_len = std::min(this_len, other_len); JSON_ASSERT(this_str && other_str); int comp = memcmp(this_str, other_str, min_len); - if (comp < 0) return true; - if (comp > 0) return false; + if (comp < 0) + return true; + if (comp > 0) + return false; return (this_len < other_len); } case arrayValue: case objectValue: { - int delta = int(value_.map_->size() - other.value_.map_->size()); - if (delta) - return delta < 0; + auto thisSize = value_.map_->size(); + auto otherSize = other.value_.map_->size(); + if (thisSize != otherSize) + return thisSize < otherSize; return (*value_.map_) < (*other.value_.map_); } default: @@ -3086,14 +2955,9 @@ bool Value::operator>=(const Value& other) const { return !(*this < other); } bool Value::operator>(const Value& other) const { return other < *this; } bool Value::operator==(const Value& other) const { - // if ( type_ != other.type_ ) - // GCC 2.95.3 says: - // attempt to take address of bit-field structure member `Json::Value::type_' - // Beats me, but a temp solves the problem. - int temp = other.type_; - if (type_ != temp) + if (type() != other.type()) return false; - switch (type_) { + switch (type()) { case nullValue: return true; case intValue: @@ -3104,18 +2968,20 @@ bool Value::operator==(const Value& other) const { return value_.real_ == other.value_.real_; case booleanValue: return value_.bool_ == other.value_.bool_; - case stringValue: - { - if ((value_.string_ == 0) || (other.value_.string_ == 0)) { + case stringValue: { + if ((value_.string_ == nullptr) || (other.value_.string_ == nullptr)) { return (value_.string_ == other.value_.string_); } unsigned this_len; unsigned other_len; char const* this_str; char const* other_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); - decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str); - if (this_len != other_len) return false; + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); + decodePrefixedString(other.isAllocated(), other.value_.string_, &other_len, + &other_str); + if (this_len != other_len) + return false; JSON_ASSERT(this_str && other_str); int comp = memcmp(this_str, other_str, this_len); return comp == 0; @@ -3133,47 +2999,55 @@ bool Value::operator==(const Value& other) const { bool Value::operator!=(const Value& other) const { return !(*this == other); } const char* Value::asCString() const { - JSON_ASSERT_MESSAGE(type_ == stringValue, + JSON_ASSERT_MESSAGE(type() == stringValue, "in Json::Value::asCString(): requires stringValue"); - if (value_.string_ == 0) return 0; + if (value_.string_ == nullptr) + return nullptr; unsigned this_len; char const* this_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); return this_str; } #if JSONCPP_USING_SECURE_MEMORY unsigned Value::getCStringLength() const { - JSON_ASSERT_MESSAGE(type_ == stringValue, - "in Json::Value::asCString(): requires stringValue"); - if (value_.string_ == 0) return 0; + JSON_ASSERT_MESSAGE(type() == stringValue, + "in Json::Value::asCString(): requires stringValue"); + if (value_.string_ == 0) + return 0; unsigned this_len; char const* this_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); return this_len; } #endif -bool Value::getString(char const** str, char const** cend) const { - if (type_ != stringValue) return false; - if (value_.string_ == 0) return false; +bool Value::getString(char const** begin, char const** end) const { + if (type() != stringValue) + return false; + if (value_.string_ == nullptr) + return false; unsigned length; - decodePrefixedString(this->allocated_, this->value_.string_, &length, str); - *cend = *str + length; + decodePrefixedString(this->isAllocated(), this->value_.string_, &length, + begin); + *end = *begin + length; return true; } -JSONCPP_STRING Value::asString() const { - switch (type_) { +String Value::asString() const { + switch (type()) { case nullValue: return ""; - case stringValue: - { - if (value_.string_ == 0) return ""; + case stringValue: { + if (value_.string_ == nullptr) + return ""; unsigned this_len; char const* this_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); - return JSONCPP_STRING(this_str, this_len); + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); + return String(this_str, this_len); } case booleanValue: return value_.bool_ ? "true" : "false"; @@ -3188,18 +3062,8 @@ JSONCPP_STRING Value::asString() const { } } -#ifdef JSON_USE_CPPTL -CppTL::ConstString Value::asConstString() const { - unsigned len; - char const* str; - decodePrefixedString(allocated_, value_.string_, - &len, &str); - return CppTL::ConstString(str, len); -} -#endif - Value::Int Value::asInt() const { - switch (type_) { + switch (type()) { case intValue: JSON_ASSERT_MESSAGE(isInt(), "LargestInt out of Int range"); return Int(value_.int_); @@ -3221,7 +3085,7 @@ Value::Int Value::asInt() const { } Value::UInt Value::asUInt() const { - switch (type_) { + switch (type()) { case intValue: JSON_ASSERT_MESSAGE(isUInt(), "LargestInt out of UInt range"); return UInt(value_.int_); @@ -3245,7 +3109,7 @@ Value::UInt Value::asUInt() const { #if defined(JSON_HAS_INT64) Value::Int64 Value::asInt64() const { - switch (type_) { + switch (type()) { case intValue: return Int64(value_.int_); case uintValue: @@ -3266,7 +3130,7 @@ Value::Int64 Value::asInt64() const { } Value::UInt64 Value::asUInt64() const { - switch (type_) { + switch (type()) { case intValue: JSON_ASSERT_MESSAGE(isUInt64(), "LargestInt out of UInt64 range"); return UInt64(value_.int_); @@ -3304,7 +3168,7 @@ LargestUInt Value::asLargestUInt() const { } double Value::asDouble() const { - switch (type_) { + switch (type()) { case intValue: return static_cast(value_.int_); case uintValue: @@ -3326,7 +3190,7 @@ double Value::asDouble() const { } float Value::asFloat() const { - switch (type_) { + switch (type()) { case intValue: return static_cast(value_.int_); case uintValue: @@ -3341,7 +3205,7 @@ float Value::asFloat() const { case nullValue: return 0.0; case booleanValue: - return value_.bool_ ? 1.0f : 0.0f; + return value_.bool_ ? 1.0F : 0.0F; default: break; } @@ -3349,18 +3213,20 @@ float Value::asFloat() const { } bool Value::asBool() const { - switch (type_) { + switch (type()) { case booleanValue: return value_.bool_; case nullValue: return false; case intValue: - return value_.int_ ? true : false; + return value_.int_ != 0; case uintValue: - return value_.uint_ ? true : false; - case realValue: - // This is kind of strange. Not recommended. - return (value_.real_ != 0.0) ? true : false; + return value_.uint_ != 0; + case realValue: { + // According to JavaScript language zero or NaN is regarded as false + const auto value_classification = std::fpclassify(value_.real_); + return value_classification != FP_ZERO && value_classification != FP_NAN; + } default: break; } @@ -3371,30 +3237,30 @@ bool Value::isConvertibleTo(ValueType other) const { switch (other) { case nullValue: return (isNumeric() && asDouble() == 0.0) || - (type_ == booleanValue && value_.bool_ == false) || - (type_ == stringValue && asString().empty()) || - (type_ == arrayValue && value_.map_->size() == 0) || - (type_ == objectValue && value_.map_->size() == 0) || - type_ == nullValue; + (type() == booleanValue && !value_.bool_) || + (type() == stringValue && asString().empty()) || + (type() == arrayValue && value_.map_->empty()) || + (type() == objectValue && value_.map_->empty()) || + type() == nullValue; case intValue: return isInt() || - (type_ == realValue && InRange(value_.real_, minInt, maxInt)) || - type_ == booleanValue || type_ == nullValue; + (type() == realValue && InRange(value_.real_, minInt, maxInt)) || + type() == booleanValue || type() == nullValue; case uintValue: return isUInt() || - (type_ == realValue && InRange(value_.real_, 0, maxUInt)) || - type_ == booleanValue || type_ == nullValue; + (type() == realValue && InRange(value_.real_, 0, maxUInt)) || + type() == booleanValue || type() == nullValue; case realValue: - return isNumeric() || type_ == booleanValue || type_ == nullValue; + return isNumeric() || type() == booleanValue || type() == nullValue; case booleanValue: - return isNumeric() || type_ == booleanValue || type_ == nullValue; + return isNumeric() || type() == booleanValue || type() == nullValue; case stringValue: - return isNumeric() || type_ == booleanValue || type_ == stringValue || - type_ == nullValue; + return isNumeric() || type() == booleanValue || type() == stringValue || + type() == nullValue; case arrayValue: - return type_ == arrayValue || type_ == nullValue; + return type() == arrayValue || type() == nullValue; case objectValue: - return type_ == objectValue || type_ == nullValue; + return type() == objectValue || type() == nullValue; } JSON_ASSERT_UNREACHABLE; return false; @@ -3402,7 +3268,7 @@ bool Value::isConvertibleTo(ValueType other) const { /// Number of values in array or object ArrayIndex Value::size() const { - switch (type_) { + switch (type()) { case nullValue: case intValue: case uintValue: @@ -3426,20 +3292,19 @@ ArrayIndex Value::size() const { bool Value::empty() const { if (isNull() || isArray() || isObject()) - return size() == 0u; - else - return false; + return size() == 0U; + return false; } -Value::operator bool() const { return ! isNull(); } +Value::operator bool() const { return !isNull(); } void Value::clear() { - JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue || - type_ == objectValue, + JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue || + type() == objectValue, "in Json::Value::clear(): requires complex value"); start_ = 0; limit_ = 0; - switch (type_) { + switch (type()) { case arrayValue: case objectValue: value_.map_->clear(); @@ -3450,15 +3315,15 @@ void Value::clear() { } void Value::resize(ArrayIndex newSize) { - JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue, + JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue, "in Json::Value::resize(): requires arrayValue"); - if (type_ == nullValue) + if (type() == nullValue) *this = Value(arrayValue); ArrayIndex oldSize = size(); if (newSize == 0) clear(); else if (newSize > oldSize) - (*this)[newSize - 1]; + this->operator[](newSize - 1); else { for (ArrayIndex index = newSize; index < oldSize; ++index) { value_.map_->erase(index); @@ -3469,12 +3334,12 @@ void Value::resize(ArrayIndex newSize) { Value& Value::operator[](ArrayIndex index) { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == arrayValue, + type() == nullValue || type() == arrayValue, "in Json::Value::operator[](ArrayIndex): requires arrayValue"); - if (type_ == nullValue) + if (type() == nullValue) *this = Value(arrayValue); CZString key(index); - ObjectValues::iterator it = value_.map_->lower_bound(key); + auto it = value_.map_->lower_bound(key); if (it != value_.map_->end() && (*it).first == key) return (*it).second; @@ -3492,9 +3357,9 @@ Value& Value::operator[](int index) { const Value& Value::operator[](ArrayIndex index) const { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == arrayValue, + type() == nullValue || type() == arrayValue, "in Json::Value::operator[](ArrayIndex)const: requires arrayValue"); - if (type_ == nullValue) + if (type() == nullValue) return nullSingleton(); CZString key(index); ObjectValues::const_iterator it = value_.map_->find(key); @@ -3510,26 +3375,85 @@ const Value& Value::operator[](int index) const { return (*this)[ArrayIndex(index)]; } -void Value::initBasic(ValueType vtype, bool allocated) { - type_ = vtype; - allocated_ = allocated; - comments_ = 0; +void Value::initBasic(ValueType type, bool allocated) { + setType(type); + setIsAllocated(allocated); + comments_ = Comments{}; start_ = 0; limit_ = 0; } +void Value::dupPayload(const Value& other) { + setType(other.type()); + setIsAllocated(false); + switch (type()) { + case nullValue: + case intValue: + case uintValue: + case realValue: + case booleanValue: + value_ = other.value_; + break; + case stringValue: + if (other.value_.string_ && other.isAllocated()) { + unsigned len; + char const* str; + decodePrefixedString(other.isAllocated(), other.value_.string_, &len, + &str); + value_.string_ = duplicateAndPrefixStringValue(str, len); + setIsAllocated(true); + } else { + value_.string_ = other.value_.string_; + } + break; + case arrayValue: + case objectValue: + value_.map_ = new ObjectValues(*other.value_.map_); + break; + default: + JSON_ASSERT_UNREACHABLE; + } +} + +void Value::releasePayload() { + switch (type()) { + case nullValue: + case intValue: + case uintValue: + case realValue: + case booleanValue: + break; + case stringValue: + if (isAllocated()) + releasePrefixedStringValue(value_.string_); + break; + case arrayValue: + case objectValue: + delete value_.map_; + break; + default: + JSON_ASSERT_UNREACHABLE; + } +} + +void Value::dupMeta(const Value& other) { + comments_ = other.comments_; + start_ = other.start_; + limit_ = other.limit_; +} + // Access an object value by name, create a null member if it does not exist. // @pre Type of '*this' is object or null. // @param key is null-terminated. Value& Value::resolveReference(const char* key) { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == objectValue, + type() == nullValue || type() == objectValue, "in Json::Value::resolveReference(): requires objectValue"); - if (type_ == nullValue) + if (type() == nullValue) *this = Value(objectValue); - CZString actualKey( - key, static_cast(strlen(key)), CZString::noDuplication); // NOTE! - ObjectValues::iterator it = value_.map_->lower_bound(actualKey); + CZString actualKey(key, static_cast(strlen(key)), + CZString::noDuplication); // NOTE! + auto it = value_.map_->lower_bound(actualKey); if (it != value_.map_->end() && (*it).first == actualKey) return (*it).second; @@ -3540,16 +3464,15 @@ Value& Value::resolveReference(const char* key) { } // @param key is not null-terminated. -Value& Value::resolveReference(char const* key, char const* cend) -{ +Value& Value::resolveReference(char const* key, char const* end) { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == objectValue, + type() == nullValue || type() == objectValue, "in Json::Value::resolveReference(key, end): requires objectValue"); - if (type_ == nullValue) + if (type() == nullValue) *this = Value(objectValue); - CZString actualKey( - key, static_cast(cend-key), CZString::duplicateOnCopy); - ObjectValues::iterator it = value_.map_->lower_bound(actualKey); + CZString actualKey(key, static_cast(end - key), + CZString::duplicateOnCopy); + auto it = value_.map_->lower_bound(actualKey); if (it != value_.map_->end() && (*it).first == actualKey) return (*it).second; @@ -3566,27 +3489,35 @@ Value Value::get(ArrayIndex index, const Value& defaultValue) const { bool Value::isValidIndex(ArrayIndex index) const { return index < size(); } -Value const* Value::find(char const* key, char const* cend) const -{ - JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == objectValue, - "in Json::Value::find(key, end, found): requires objectValue or nullValue"); - if (type_ == nullValue) return NULL; - CZString actualKey(key, static_cast(cend-key), CZString::noDuplication); +Value const* Value::find(char const* begin, char const* end) const { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue, + "in Json::Value::find(begin, end): requires " + "objectValue or nullValue"); + if (type() == nullValue) + return nullptr; + CZString actualKey(begin, static_cast(end - begin), + CZString::noDuplication); ObjectValues::const_iterator it = value_.map_->find(actualKey); - if (it == value_.map_->end()) return NULL; + if (it == value_.map_->end()) + return nullptr; return &(*it).second; } -const Value& Value::operator[](const char* key) const -{ +Value* Value::demand(char const* begin, char const* end) { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue, + "in Json::Value::demand(begin, end): requires " + "objectValue or nullValue"); + return &resolveReference(begin, end); +} +const Value& Value::operator[](const char* key) const { Value const* found = find(key, key + strlen(key)); - if (!found) return nullSingleton(); + if (!found) + return nullSingleton(); return *found; } -Value const& Value::operator[](JSONCPP_STRING const& key) const -{ +Value const& Value::operator[](const String& key) const { Value const* found = find(key.data(), key.data() + key.length()); - if (!found) return nullSingleton(); + if (!found) + return nullSingleton(); return *found; } @@ -3594,7 +3525,7 @@ Value& Value::operator[](const char* key) { return resolveReference(key, key + strlen(key)); } -Value& Value::operator[](const JSONCPP_STRING& key) { +Value& Value::operator[](const String& key) { return resolveReference(key.data(), key.data() + key.length()); } @@ -3602,178 +3533,140 @@ Value& Value::operator[](const StaticString& key) { return resolveReference(key.c_str()); } -#ifdef JSON_USE_CPPTL -Value& Value::operator[](const CppTL::ConstString& key) { - return resolveReference(key.c_str(), key.end_c_str()); +Value& Value::append(const Value& value) { return append(Value(value)); } + +Value& Value::append(Value&& value) { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue, + "in Json::Value::append: requires arrayValue"); + if (type() == nullValue) { + *this = Value(arrayValue); + } + return this->value_.map_->emplace(size(), std::move(value)).first->second; } -Value const& Value::operator[](CppTL::ConstString const& key) const -{ - Value const* found = find(key.c_str(), key.end_c_str()); - if (!found) return nullSingleton(); - return *found; + +bool Value::insert(ArrayIndex index, const Value& newValue) { + return insert(index, Value(newValue)); } -#endif -Value& Value::append(const Value& value) { return (*this)[size()] = value; } +bool Value::insert(ArrayIndex index, Value&& newValue) { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue, + "in Json::Value::insert: requires arrayValue"); + ArrayIndex length = size(); + if (index > length) { + return false; + } + for (ArrayIndex i = length; i > index; i--) { + (*this)[i] = std::move((*this)[i - 1]); + } + (*this)[index] = std::move(newValue); + return true; +} -#if JSON_HAS_RVALUE_REFERENCES - Value& Value::append(Value&& value) { return (*this)[size()] = std::move(value); } -#endif - -Value Value::get(char const* key, char const* cend, Value const& defaultValue) const -{ - Value const* found = find(key, cend); +Value Value::get(char const* begin, char const* end, + Value const& defaultValue) const { + Value const* found = find(begin, end); return !found ? defaultValue : *found; } -Value Value::get(char const* key, Value const& defaultValue) const -{ +Value Value::get(char const* key, Value const& defaultValue) const { return get(key, key + strlen(key), defaultValue); } -Value Value::get(JSONCPP_STRING const& key, Value const& defaultValue) const -{ +Value Value::get(String const& key, Value const& defaultValue) const { return get(key.data(), key.data() + key.length(), defaultValue); } - -bool Value::removeMember(const char* key, const char* cend, Value* removed) -{ - if (type_ != objectValue) { +bool Value::removeMember(const char* begin, const char* end, Value* removed) { + if (type() != objectValue) { return false; } - CZString actualKey(key, static_cast(cend-key), CZString::noDuplication); - ObjectValues::iterator it = value_.map_->find(actualKey); + CZString actualKey(begin, static_cast(end - begin), + CZString::noDuplication); + auto it = value_.map_->find(actualKey); if (it == value_.map_->end()) return false; - *removed = it->second; + if (removed) + *removed = std::move(it->second); value_.map_->erase(it); return true; } -bool Value::removeMember(const char* key, Value* removed) -{ +bool Value::removeMember(const char* key, Value* removed) { return removeMember(key, key + strlen(key), removed); } -bool Value::removeMember(JSONCPP_STRING const& key, Value* removed) -{ +bool Value::removeMember(String const& key, Value* removed) { return removeMember(key.data(), key.data() + key.length(), removed); } -void Value::removeMember(const char* key) -{ - JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == objectValue, +void Value::removeMember(const char* key) { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue, "in Json::Value::removeMember(): requires objectValue"); - if (type_ == nullValue) + if (type() == nullValue) return; CZString actualKey(key, unsigned(strlen(key)), CZString::noDuplication); value_.map_->erase(actualKey); } -void Value::removeMember(const JSONCPP_STRING& key) -{ - removeMember(key.c_str()); -} +void Value::removeMember(const String& key) { removeMember(key.c_str()); } bool Value::removeIndex(ArrayIndex index, Value* removed) { - if (type_ != arrayValue) { + if (type() != arrayValue) { return false; } CZString key(index); - ObjectValues::iterator it = value_.map_->find(key); + auto it = value_.map_->find(key); if (it == value_.map_->end()) { return false; } - *removed = it->second; + if (removed) + *removed = it->second; ArrayIndex oldSize = size(); // shift left all items left, into the place of the "removed" - for (ArrayIndex i = index; i < (oldSize - 1); ++i){ + for (ArrayIndex i = index; i < (oldSize - 1); ++i) { CZString keey(i); (*value_.map_)[keey] = (*this)[i + 1]; } // erase the last one ("leftover") CZString keyLast(oldSize - 1); - ObjectValues::iterator itLast = value_.map_->find(keyLast); + auto itLast = value_.map_->find(keyLast); value_.map_->erase(itLast); return true; } -#ifdef JSON_USE_CPPTL -Value Value::get(const CppTL::ConstString& key, - const Value& defaultValue) const { - return get(key.c_str(), key.end_c_str(), defaultValue); +bool Value::isMember(char const* begin, char const* end) const { + Value const* value = find(begin, end); + return nullptr != value; } -#endif - -bool Value::isMember(char const* key, char const* cend) const -{ - Value const* value = find(key, cend); - return NULL != value; -} -bool Value::isMember(char const* key) const -{ +bool Value::isMember(char const* key) const { return isMember(key, key + strlen(key)); } -bool Value::isMember(JSONCPP_STRING const& key) const -{ +bool Value::isMember(String const& key) const { return isMember(key.data(), key.data() + key.length()); } -#ifdef JSON_USE_CPPTL -bool Value::isMember(const CppTL::ConstString& key) const { - return isMember(key.c_str(), key.end_c_str()); -} -#endif - Value::Members Value::getMemberNames() const { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == objectValue, + type() == nullValue || type() == objectValue, "in Json::Value::getMemberNames(), value must be objectValue"); - if (type_ == nullValue) + if (type() == nullValue) return Value::Members(); Members members; members.reserve(value_.map_->size()); ObjectValues::const_iterator it = value_.map_->begin(); ObjectValues::const_iterator itEnd = value_.map_->end(); for (; it != itEnd; ++it) { - members.push_back(JSONCPP_STRING((*it).first.data(), - (*it).first.length())); + members.push_back(String((*it).first.data(), (*it).first.length())); } return members; } -// -//# ifdef JSON_USE_CPPTL -// EnumMemberNames -// Value::enumMemberNames() const -//{ -// if ( type_ == objectValue ) -// { -// return CppTL::Enum::any( CppTL::Enum::transform( -// CppTL::Enum::keys( *(value_.map_), CppTL::Type() ), -// MemberNamesTransform() ) ); -// } -// return EnumMemberNames(); -//} -// -// -// EnumValues -// Value::enumValues() const -//{ -// if ( type_ == objectValue || type_ == arrayValue ) -// return CppTL::Enum::anyValues( *(value_.map_), -// CppTL::Type() ); -// return EnumValues(); -//} -// -//# endif static bool IsIntegral(double d) { double integral_part; return modf(d, &integral_part) == 0.0; } -bool Value::isNull() const { return type_ == nullValue; } +bool Value::isNull() const { return type() == nullValue; } -bool Value::isBool() const { return type_ == booleanValue; } +bool Value::isBool() const { return type() == booleanValue; } bool Value::isInt() const { - switch (type_) { + switch (type()) { case intValue: #if defined(JSON_HAS_INT64) return value_.int_ >= minInt && value_.int_ <= maxInt; @@ -3792,7 +3685,7 @@ bool Value::isInt() const { } bool Value::isUInt() const { - switch (type_) { + switch (type()) { case intValue: #if defined(JSON_HAS_INT64) return value_.int_ >= 0 && LargestUInt(value_.int_) <= LargestUInt(maxUInt); @@ -3816,7 +3709,7 @@ bool Value::isUInt() const { bool Value::isInt64() const { #if defined(JSON_HAS_INT64) - switch (type_) { + switch (type()) { case intValue: return true; case uintValue: @@ -3836,7 +3729,7 @@ bool Value::isInt64() const { bool Value::isUInt64() const { #if defined(JSON_HAS_INT64) - switch (type_) { + switch (type()) { case intValue: return value_.int_ >= 0; case uintValue: @@ -3855,61 +3748,92 @@ bool Value::isUInt64() const { } bool Value::isIntegral() const { - switch (type_) { - case intValue: - case uintValue: - return true; - case realValue: + switch (type()) { + case intValue: + case uintValue: + return true; + case realValue: #if defined(JSON_HAS_INT64) - // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a - // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we - // require the value to be strictly less than the limit. - return value_.real_ >= double(minInt64) && value_.real_ < maxUInt64AsDouble && IsIntegral(value_.real_); + // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a + // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we + // require the value to be strictly less than the limit. + return value_.real_ >= double(minInt64) && + value_.real_ < maxUInt64AsDouble && IsIntegral(value_.real_); #else - return value_.real_ >= minInt && value_.real_ <= maxUInt && IsIntegral(value_.real_); + return value_.real_ >= minInt && value_.real_ <= maxUInt && + IsIntegral(value_.real_); #endif // JSON_HAS_INT64 - default: - break; + default: + break; } return false; } -bool Value::isDouble() const { return type_ == intValue || type_ == uintValue || type_ == realValue; } +bool Value::isDouble() const { + return type() == intValue || type() == uintValue || type() == realValue; +} bool Value::isNumeric() const { return isDouble(); } -bool Value::isString() const { return type_ == stringValue; } +bool Value::isString() const { return type() == stringValue; } -bool Value::isArray() const { return type_ == arrayValue; } +bool Value::isArray() const { return type() == arrayValue; } -bool Value::isObject() const { return type_ == objectValue; } +bool Value::isObject() const { return type() == objectValue; } -void Value::setComment(const char* comment, size_t len, CommentPlacement placement) { - if (!comments_) - comments_ = new CommentInfo[numberOfCommentPlacement]; - if ((len > 0) && (comment[len-1] == '\n')) { - // Always discard trailing newline, to aid indentation. - len -= 1; +Value::Comments::Comments(const Comments& that) + : ptr_{cloneUnique(that.ptr_)} {} + +Value::Comments::Comments(Comments&& that) : ptr_{std::move(that.ptr_)} {} + +Value::Comments& Value::Comments::operator=(const Comments& that) { + ptr_ = cloneUnique(that.ptr_); + return *this; +} + +Value::Comments& Value::Comments::operator=(Comments&& that) { + ptr_ = std::move(that.ptr_); + return *this; +} + +bool Value::Comments::has(CommentPlacement slot) const { + return ptr_ && !(*ptr_)[slot].empty(); +} + +String Value::Comments::get(CommentPlacement slot) const { + if (!ptr_) + return {}; + return (*ptr_)[slot]; +} + +void Value::Comments::set(CommentPlacement slot, String comment) { + if (!ptr_) { + ptr_ = std::unique_ptr(new Array()); + } + // check comments array boundry. + if (slot < CommentPlacement::numberOfCommentPlacement) { + (*ptr_)[slot] = std::move(comment); } - comments_[placement].setComment(comment, len); } -void Value::setComment(const char* comment, CommentPlacement placement) { - setComment(comment, strlen(comment), placement); -} - -void Value::setComment(const JSONCPP_STRING& comment, CommentPlacement placement) { - setComment(comment.c_str(), comment.length(), placement); +void Value::setComment(String comment, CommentPlacement placement) { + if (!comment.empty() && (comment.back() == '\n')) { + // Always discard trailing newline, to aid indentation. + comment.pop_back(); + } + JSON_ASSERT(!comment.empty()); + JSON_ASSERT_MESSAGE( + comment[0] == '\0' || comment[0] == '/', + "in Json::Value::setComment(): Comments must start with /"); + comments_.set(placement, std::move(comment)); } bool Value::hasComment(CommentPlacement placement) const { - return comments_ != 0 && comments_[placement].comment_ != 0; + return comments_.has(placement); } -JSONCPP_STRING Value::getComment(CommentPlacement placement) const { - if (hasComment(placement)) - return comments_[placement].comment_; - return ""; +String Value::getComment(CommentPlacement placement) const { + return comments_.get(placement); } void Value::setOffsetStart(ptrdiff_t start) { start_ = start; } @@ -3920,18 +3844,18 @@ ptrdiff_t Value::getOffsetStart() const { return start_; } ptrdiff_t Value::getOffsetLimit() const { return limit_; } -JSONCPP_STRING Value::toStyledString() const { +String Value::toStyledString() const { StreamWriterBuilder builder; - JSONCPP_STRING out = this->hasComment(commentBefore) ? "\n" : ""; + String out = this->hasComment(commentBefore) ? "\n" : ""; out += Json::writeString(builder, *this); - out += "\n"; + out += '\n'; return out; } Value::const_iterator Value::begin() const { - switch (type_) { + switch (type()) { case arrayValue: case objectValue: if (value_.map_) @@ -3940,11 +3864,11 @@ Value::const_iterator Value::begin() const { default: break; } - return const_iterator(); + return {}; } Value::const_iterator Value::end() const { - switch (type_) { + switch (type()) { case arrayValue: case objectValue: if (value_.map_) @@ -3953,11 +3877,11 @@ Value::const_iterator Value::end() const { default: break; } - return const_iterator(); + return {}; } Value::iterator Value::begin() { - switch (type_) { + switch (type()) { case arrayValue: case objectValue: if (value_.map_) @@ -3970,7 +3894,7 @@ Value::iterator Value::begin() { } Value::iterator Value::end() { - switch (type_) { + switch (type()) { case arrayValue: case objectValue: if (value_.map_) @@ -3985,25 +3909,20 @@ Value::iterator Value::end() { // class PathArgument // ////////////////////////////////////////////////////////////////// -PathArgument::PathArgument() : key_(), index_(), kind_(kindNone) {} +PathArgument::PathArgument() = default; PathArgument::PathArgument(ArrayIndex index) - : key_(), index_(index), kind_(kindIndex) {} + : index_(index), kind_(kindIndex) {} -PathArgument::PathArgument(const char* key) - : key_(key), index_(), kind_(kindKey) {} +PathArgument::PathArgument(const char* key) : key_(key), kind_(kindKey) {} -PathArgument::PathArgument(const JSONCPP_STRING& key) - : key_(key.c_str()), index_(), kind_(kindKey) {} +PathArgument::PathArgument(String key) : key_(std::move(key)), kind_(kindKey) {} // class Path // ////////////////////////////////////////////////////////////////// -Path::Path(const JSONCPP_STRING& path, - const PathArgument& a1, - const PathArgument& a2, - const PathArgument& a3, - const PathArgument& a4, +Path::Path(const String& path, const PathArgument& a1, const PathArgument& a2, + const PathArgument& a3, const PathArgument& a4, const PathArgument& a5) { InArgs in; in.reserve(5); @@ -4015,10 +3934,10 @@ Path::Path(const JSONCPP_STRING& path, makePath(path, in); } -void Path::makePath(const JSONCPP_STRING& path, const InArgs& in) { +void Path::makePath(const String& path, const InArgs& in) { const char* current = path.c_str(); const char* end = current + path.length(); - InArgs::const_iterator itInArg = in.begin(); + auto itInArg = in.begin(); while (current != end) { if (*current == '[') { ++current; @@ -4041,13 +3960,12 @@ void Path::makePath(const JSONCPP_STRING& path, const InArgs& in) { const char* beginName = current; while (current != end && !strchr("[.", *current)) ++current; - args_.push_back(JSONCPP_STRING(beginName, current)); + args_.push_back(String(beginName, current)); } } } -void Path::addPathInArg(const JSONCPP_STRING& /*path*/, - const InArgs& in, +void Path::addPathInArg(const String& /*path*/, const InArgs& in, InArgs::const_iterator& itInArg, PathArgument::Kind kind) { if (itInArg == in.end()) { @@ -4059,30 +3977,29 @@ void Path::addPathInArg(const JSONCPP_STRING& /*path*/, } } -void Path::invalidPath(const JSONCPP_STRING& /*path*/, int /*location*/) { +void Path::invalidPath(const String& /*path*/, int /*location*/) { // Error: invalid path. } const Value& Path::resolve(const Value& root) const { const Value* node = &root; - for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) { - const PathArgument& arg = *it; + for (const auto& arg : args_) { if (arg.kind_ == PathArgument::kindIndex) { if (!node->isArray() || !node->isValidIndex(arg.index_)) { - // Error: unable to resolve path (array value expected at position... - return Value::null; + // Error: unable to resolve path (array value expected at position... ) + return Value::nullSingleton(); } node = &((*node)[arg.index_]); } else if (arg.kind_ == PathArgument::kindKey) { if (!node->isObject()) { // Error: unable to resolve path (object value expected at position...) - return Value::null; + return Value::nullSingleton(); } node = &((*node)[arg.key_]); if (node == &Value::nullSingleton()) { // Error: unable to resolve path (object has no member named '' at // position...) - return Value::null; + return Value::nullSingleton(); } } } @@ -4091,8 +4008,7 @@ const Value& Path::resolve(const Value& root) const { Value Path::resolve(const Value& root, const Value& defaultValue) const { const Value* node = &root; - for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) { - const PathArgument& arg = *it; + for (const auto& arg : args_) { if (arg.kind_ == PathArgument::kindIndex) { if (!node->isArray() || !node->isValidIndex(arg.index_)) return defaultValue; @@ -4110,8 +4026,7 @@ Value Path::resolve(const Value& root, const Value& defaultValue) const { Value& Path::make(Value& root) const { Value* node = &root; - for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) { - const PathArgument& arg = *it; + for (const auto& arg : args_) { if (arg.kind_ == PathArgument::kindIndex) { if (!node->isArray()) { // Error: node is not an array at position ... @@ -4148,71 +4063,81 @@ Value& Path::make(Value& root) const { // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #if !defined(JSON_IS_AMALGAMATION) -#include #include "json_tool.h" +#include #endif // if !defined(JSON_IS_AMALGAMATION) +#include +#include +#include +#include #include #include +#include #include #include -#include -#include -#include + +#if __cplusplus >= 201103L +#include #include -#if defined(_MSC_VER) && _MSC_VER >= 1200 && _MSC_VER < 1800 // Between VC++ 6.0 and VC++ 11.0 +#if !defined(isnan) +#define isnan std::isnan +#endif + +#if !defined(isfinite) +#define isfinite std::isfinite +#endif + +#else +#include +#include + +#if defined(_MSC_VER) +#if !defined(isnan) +#include +#define isnan _isnan +#endif + +#if !defined(isfinite) #include #define isfinite _finite -#elif defined(__sun) && defined(__SVR4) //Solaris +#endif + +#if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES) +#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 +#endif //_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES + +#endif //_MSC_VER + +#if defined(__sun) && defined(__SVR4) // Solaris #if !defined(isfinite) #include #define isfinite finite #endif -#elif defined(_AIX) -#if !defined(isfinite) -#include -#define isfinite finite #endif -#elif defined(__hpux) + +#if defined(__hpux) #if !defined(isfinite) #if defined(__ia64) && !defined(finite) -#define isfinite(x) ((sizeof(x) == sizeof(float) ? \ - _Isfinitef(x) : _IsFinite(x))) -#else -#include +#define isfinite(x) \ + ((sizeof(x) == sizeof(float) ? _Isfinitef(x) : _IsFinite(x))) +#endif +#endif +#endif + +#if !defined(isnan) +// IEEE standard states that NaN values will not compare to themselves +#define isnan(x) (x != x) +#endif + +#if !defined(__APPLE__) +#if !defined(isfinite) #define isfinite finite #endif #endif -#else -#include -#if !(defined(__QNXNTO__)) // QNX already defines isfinite -#define isfinite std::isfinite -#endif #endif #if defined(_MSC_VER) -#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above -#define snprintf sprintf_s -#elif _MSC_VER >= 1900 // VC++ 14.0 and above -#define snprintf std::snprintf -#else -#define snprintf _snprintf -#endif -#elif defined(__ANDROID__) || defined(__QNXNTO__) -#define snprintf snprintf -#elif __cplusplus >= 201103L -#if !defined(__MINGW32__) && !defined(__CYGWIN__) -#define snprintf std::snprintf -#endif -#endif - -#if defined(__BORLANDC__) -#include -#define isfinite _finite -#define snprintf _snprintf -#endif - -#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0 // Disable warning about strdup being deprecated. #pragma warning(disable : 4996) #endif @@ -4220,12 +4145,12 @@ Value& Path::make(Value& root) const { namespace Json { #if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) -typedef std::unique_ptr StreamWriterPtr; +using StreamWriterPtr = std::unique_ptr; #else -typedef std::auto_ptr StreamWriterPtr; +using StreamWriterPtr = std::auto_ptr; #endif -JSONCPP_STRING valueToString(LargestInt value) { +String valueToString(LargestInt value) { UIntToStringBuffer buffer; char* current = buffer + sizeof(buffer); if (value == Value::minLargestInt) { @@ -4241,7 +4166,7 @@ JSONCPP_STRING valueToString(LargestInt value) { return current; } -JSONCPP_STRING valueToString(LargestUInt value) { +String valueToString(LargestUInt value) { UIntToStringBuffer buffer; char* current = buffer + sizeof(buffer); uintToString(value, current); @@ -4251,67 +4176,70 @@ JSONCPP_STRING valueToString(LargestUInt value) { #if defined(JSON_HAS_INT64) -JSONCPP_STRING valueToString(Int value) { - return valueToString(LargestInt(value)); -} +String valueToString(Int value) { return valueToString(LargestInt(value)); } -JSONCPP_STRING valueToString(UInt value) { - return valueToString(LargestUInt(value)); -} +String valueToString(UInt value) { return valueToString(LargestUInt(value)); } #endif // # if defined(JSON_HAS_INT64) namespace { -JSONCPP_STRING valueToString(double value, bool useSpecialFloats, unsigned int precision) { - // Allocate a buffer that is more than large enough to store the 16 digits of - // precision requested below. - char buffer[36]; - int len = -1; - - char formatString[15]; - snprintf(formatString, sizeof(formatString), "%%.%ug", precision); - +String valueToString(double value, bool useSpecialFloats, + unsigned int precision, PrecisionType precisionType) { // Print into the buffer. We need not request the alternative representation // that always has a decimal point because JSON doesn't distinguish the // concepts of reals and integers. - if (isfinite(value)) { - len = snprintf(buffer, sizeof(buffer), formatString, value); - fixNumericLocale(buffer, buffer + len); - - // try to ensure we preserve the fact that this was given to us as a double on input - if (!strchr(buffer, '.') && !strchr(buffer, 'e')) { - strcat(buffer, ".0"); - } - - } else { - // IEEE standard states that NaN values will not compare to themselves - if (value != value) { - len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "NaN" : "null"); - } else if (value < 0) { - len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "-Infinity" : "-1e+9999"); - } else { - len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "Infinity" : "1e+9999"); - } + if (!isfinite(value)) { + static const char* const reps[2][3] = {{"NaN", "-Infinity", "Infinity"}, + {"null", "-1e+9999", "1e+9999"}}; + return reps[useSpecialFloats ? 0 : 1] + [isnan(value) ? 0 : (value < 0) ? 1 : 2]; + } + + String buffer(size_t(36), '\0'); + while (true) { + int len = jsoncpp_snprintf( + &*buffer.begin(), buffer.size(), + (precisionType == PrecisionType::significantDigits) ? "%.*g" : "%.*f", + precision, value); + assert(len >= 0); + auto wouldPrint = static_cast(len); + if (wouldPrint >= buffer.size()) { + buffer.resize(wouldPrint + 1); + continue; + } + buffer.resize(wouldPrint); + break; + } + + buffer.erase(fixNumericLocale(buffer.begin(), buffer.end()), buffer.end()); + + // strip the zero padding from the right + if (precisionType == PrecisionType::decimalPlaces) { + buffer.erase(fixZerosInTheEnd(buffer.begin(), buffer.end()), buffer.end()); + } + + // try to ensure we preserve the fact that this was given to us as a double on + // input + if (buffer.find('.') == buffer.npos && buffer.find('e') == buffer.npos) { + buffer += ".0"; } - assert(len >= 0); return buffer; } +} // namespace + +String valueToString(double value, unsigned int precision, + PrecisionType precisionType) { + return valueToString(value, false, precision, precisionType); } -JSONCPP_STRING valueToString(double value) { return valueToString(value, false, 17); } +String valueToString(bool value) { return value ? "true" : "false"; } -JSONCPP_STRING valueToString(bool value) { return value ? "true" : "false"; } - -static bool isAnyCharRequiredQuoting(char const* s, size_t n) { +static bool doesAnyCharRequireEscaping(char const* s, size_t n) { assert(s || !n); - char const* const end = s + n; - for (char const* cur = s; cur < end; ++cur) { - if (*cur == '\\' || *cur == '\"' || *cur < ' ' - || static_cast(*cur) < 0x80) - return true; - } - return false; + return std::any_of(s, s + n, [](unsigned char c) { + return c == '\\' || c == '"' || c < 0x20 || c > 0x7F; + }); } static unsigned int utf8ToCodepoint(const char*& s, const char* e) { @@ -4326,8 +4254,8 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) { if (e - s < 2) return REPLACEMENT_CHARACTER; - unsigned int calculated = ((firstByte & 0x1F) << 6) - | (static_cast(s[1]) & 0x3F); + unsigned int calculated = + ((firstByte & 0x1F) << 6) | (static_cast(s[1]) & 0x3F); s += 1; // oversized encoded characters are invalid return calculated < 0x80 ? REPLACEMENT_CHARACTER : calculated; @@ -4337,9 +4265,9 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) { if (e - s < 3) return REPLACEMENT_CHARACTER; - unsigned int calculated = ((firstByte & 0x0F) << 12) - | ((static_cast(s[1]) & 0x3F) << 6) - | (static_cast(s[2]) & 0x3F); + unsigned int calculated = ((firstByte & 0x0F) << 12) | + ((static_cast(s[1]) & 0x3F) << 6) | + (static_cast(s[2]) & 0x3F); s += 2; // surrogates aren't valid codepoints itself // shouldn't be UTF-8 encoded @@ -4353,10 +4281,10 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) { if (e - s < 4) return REPLACEMENT_CHARACTER; - unsigned int calculated = ((firstByte & 0x07) << 24) - | ((static_cast(s[1]) & 0x3F) << 12) - | ((static_cast(s[2]) & 0x3F) << 6) - | (static_cast(s[3]) & 0x3F); + unsigned int calculated = ((firstByte & 0x07) << 18) | + ((static_cast(s[1]) & 0x3F) << 12) | + ((static_cast(s[2]) & 0x3F) << 6) | + (static_cast(s[3]) & 0x3F); s += 3; // oversized encoded characters are invalid return calculated < 0x10000 ? REPLACEMENT_CHARACTER : calculated; @@ -4365,28 +4293,27 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) { return REPLACEMENT_CHARACTER; } -static const char hex2[] = - "000102030405060708090a0b0c0d0e0f" - "101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f" - "303132333435363738393a3b3c3d3e3f" - "404142434445464748494a4b4c4d4e4f" - "505152535455565758595a5b5c5d5e5f" - "606162636465666768696a6b6c6d6e6f" - "707172737475767778797a7b7c7d7e7f" - "808182838485868788898a8b8c8d8e8f" - "909192939495969798999a9b9c9d9e9f" - "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf" - "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" - "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf" - "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf" - "e0e1e2e3e4e5e6e7e8e9eaebecedeeef" - "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff"; +static const char hex2[] = "000102030405060708090a0b0c0d0e0f" + "101112131415161718191a1b1c1d1e1f" + "202122232425262728292a2b2c2d2e2f" + "303132333435363738393a3b3c3d3e3f" + "404142434445464748494a4b4c4d4e4f" + "505152535455565758595a5b5c5d5e5f" + "606162636465666768696a6b6c6d6e6f" + "707172737475767778797a7b7c7d7e7f" + "808182838485868788898a8b8c8d8e8f" + "909192939495969798999a9b9c9d9e9f" + "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf" + "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" + "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf" + "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf" + "e0e1e2e3e4e5e6e7e8e9eaebecedeeef" + "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff"; -static JSONCPP_STRING toHex16Bit(unsigned int x) { +static String toHex16Bit(unsigned int x) { const unsigned int hi = (x >> 8) & 0xff; const unsigned int lo = x & 0xff; - JSONCPP_STRING result(4, ' '); + String result(4, ' '); result[0] = hex2[2 * hi]; result[1] = hex2[2 * hi + 1]; result[2] = hex2[2 * lo]; @@ -4394,18 +4321,26 @@ static JSONCPP_STRING toHex16Bit(unsigned int x) { return result; } -static JSONCPP_STRING valueToQuotedStringN(const char* value, unsigned length) { - if (value == NULL) +static void appendRaw(String& result, unsigned ch) { + result += static_cast(ch); +} + +static void appendHex(String& result, unsigned ch) { + result.append("\\u").append(toHex16Bit(ch)); +} + +static String valueToQuotedStringN(const char* value, unsigned length, + bool emitUTF8 = false) { + if (value == nullptr) return ""; - if (!isAnyCharRequiredQuoting(value, length)) - return JSONCPP_STRING("\"") + value + "\""; + if (!doesAnyCharRequireEscaping(value, length)) + return String("\"") + value + "\""; // We have to walk value and escape any special characters. - // Appending to JSONCPP_STRING is not efficient, but this should be rare. + // Appending to String is not efficient, but this should be rare. // (Note: forward slashes are *not* rare, but I am not escaping them.) - JSONCPP_STRING::size_type maxsize = - length * 2 + 3; // allescaped+quotes+NULL - JSONCPP_STRING result; + String::size_type maxsize = length * 2 + 3; // allescaped+quotes+NULL + String result; result.reserve(maxsize); // to avoid lots of mallocs result += "\""; char const* end = value + length; @@ -4441,45 +4376,50 @@ static JSONCPP_STRING valueToQuotedStringN(const char* value, unsigned length) { // Should add a flag to allow this compatibility mode and prevent this // sequence from occurring. default: { - unsigned int cp = utf8ToCodepoint(c, end); - // don't escape non-control characters - // (short escape sequence are applied above) - if (cp < 0x80 && cp >= 0x20) - result += static_cast(cp); - else if (cp < 0x10000) { // codepoint is in Basic Multilingual Plane - result += "\\u"; - result += toHex16Bit(cp); + if (emitUTF8) { + unsigned codepoint = static_cast(*c); + if (codepoint < 0x20) { + appendHex(result, codepoint); + } else { + appendRaw(result, codepoint); } - else { // codepoint is not in Basic Multilingual Plane - // convert to surrogate pair first - cp -= 0x10000; - result += "\\u"; - result += toHex16Bit((cp >> 10) + 0xD800); - result += "\\u"; - result += toHex16Bit((cp & 0x3FF) + 0xDC00); + } else { + unsigned codepoint = utf8ToCodepoint(c, end); // modifies `c` + if (codepoint < 0x20) { + appendHex(result, codepoint); + } else if (codepoint < 0x80) { + appendRaw(result, codepoint); + } else if (codepoint < 0x10000) { + // Basic Multilingual Plane + appendHex(result, codepoint); + } else { + // Extended Unicode. Encode 20 bits as a surrogate pair. + codepoint -= 0x10000; + appendHex(result, 0xd800 + ((codepoint >> 10) & 0x3ff)); + appendHex(result, 0xdc00 + (codepoint & 0x3ff)); } } - break; + } break; } } result += "\""; return result; } -JSONCPP_STRING valueToQuotedString(const char* value) { +String valueToQuotedString(const char* value) { return valueToQuotedStringN(value, static_cast(strlen(value))); } // Class Writer // ////////////////////////////////////////////////////////////////// -Writer::~Writer() {} +Writer::~Writer() = default; // Class FastWriter // ////////////////////////////////////////////////////////////////// FastWriter::FastWriter() - : yamlCompatibilityEnabled_(false), dropNullPlaceholders_(false), - omitEndingLineFeed_(false) {} + + = default; void FastWriter::enableYAMLCompatibility() { yamlCompatibilityEnabled_ = true; } @@ -4487,11 +4427,11 @@ void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; } void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; } -JSONCPP_STRING FastWriter::write(const Value& root) { +String FastWriter::write(const Value& root) { document_.clear(); writeValue(root); if (!omitEndingLineFeed_) - document_ += "\n"; + document_ += '\n'; return document_; } @@ -4510,13 +4450,13 @@ void FastWriter::writeValue(const Value& value) { case realValue: document_ += valueToString(value.asDouble()); break; - case stringValue: - { + case stringValue: { // Is NULL possible for value.string_? No. char const* str; char const* end; bool ok = value.getString(&str, &end); - if (ok) document_ += valueToQuotedStringN(str, static_cast(end-str)); + if (ok) + document_ += valueToQuotedStringN(str, static_cast(end - str)); break; } case booleanValue: @@ -4535,12 +4475,12 @@ void FastWriter::writeValue(const Value& value) { case objectValue: { Value::Members members(value.getMemberNames()); document_ += '{'; - for (Value::Members::iterator it = members.begin(); it != members.end(); - ++it) { - const JSONCPP_STRING& name = *it; + for (auto it = members.begin(); it != members.end(); ++it) { + const String& name = *it; if (it != members.begin()) document_ += ','; - document_ += valueToQuotedStringN(name.data(), static_cast(name.length())); + document_ += valueToQuotedStringN(name.data(), + static_cast(name.length())); document_ += yamlCompatibilityEnabled_ ? ": " : ":"; writeValue(value[name]); } @@ -4552,17 +4492,16 @@ void FastWriter::writeValue(const Value& value) { // Class StyledWriter // ////////////////////////////////////////////////////////////////// -StyledWriter::StyledWriter() - : rightMargin_(74), indentSize_(3), addChildValues_() {} +StyledWriter::StyledWriter() = default; -JSONCPP_STRING StyledWriter::write(const Value& root) { +String StyledWriter::write(const Value& root) { document_.clear(); addChildValues_ = false; indentString_.clear(); writeCommentBeforeValue(root); writeValue(root); writeCommentAfterValueOnSameLine(root); - document_ += "\n"; + document_ += '\n'; return document_; } @@ -4580,14 +4519,15 @@ void StyledWriter::writeValue(const Value& value) { case realValue: pushValue(valueToString(value.asDouble())); break; - case stringValue: - { + case stringValue: { // Is NULL possible for value.string_? No. char const* str; char const* end; bool ok = value.getString(&str, &end); - if (ok) pushValue(valueToQuotedStringN(str, static_cast(end-str))); - else pushValue(""); + if (ok) + pushValue(valueToQuotedStringN(str, static_cast(end - str))); + else + pushValue(""); break; } case booleanValue: @@ -4603,9 +4543,9 @@ void StyledWriter::writeValue(const Value& value) { else { writeWithIndent("{"); indent(); - Value::Members::iterator it = members.begin(); + auto it = members.begin(); for (;;) { - const JSONCPP_STRING& name = *it; + const String& name = *it; const Value& childValue = value[name]; writeCommentBeforeValue(childValue); writeWithIndent(valueToQuotedString(name.c_str())); @@ -4675,7 +4615,7 @@ bool StyledWriter::isMultilineArray(const Value& value) { for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) { const Value& childValue = value[index]; isMultiLine = ((childValue.isArray() || childValue.isObject()) && - childValue.size() > 0); + !childValue.empty()); } if (!isMultiLine) // check if line length > max line length { @@ -4695,7 +4635,7 @@ bool StyledWriter::isMultilineArray(const Value& value) { return isMultiLine; } -void StyledWriter::pushValue(const JSONCPP_STRING& value) { +void StyledWriter::pushValue(const String& value) { if (addChildValues_) childValues_.push_back(value); else @@ -4713,12 +4653,12 @@ void StyledWriter::writeIndent() { document_ += indentString_; } -void StyledWriter::writeWithIndent(const JSONCPP_STRING& value) { +void StyledWriter::writeWithIndent(const String& value) { writeIndent(); document_ += value; } -void StyledWriter::indent() { indentString_ += JSONCPP_STRING(indentSize_, ' '); } +void StyledWriter::indent() { indentString_ += String(indentSize_, ' '); } void StyledWriter::unindent() { assert(indentString_.size() >= indentSize_); @@ -4729,20 +4669,19 @@ void StyledWriter::writeCommentBeforeValue(const Value& root) { if (!root.hasComment(commentBefore)) return; - document_ += "\n"; + document_ += '\n'; writeIndent(); - const JSONCPP_STRING& comment = root.getComment(commentBefore); - JSONCPP_STRING::const_iterator iter = comment.begin(); + const String& comment = root.getComment(commentBefore); + String::const_iterator iter = comment.begin(); while (iter != comment.end()) { document_ += *iter; - if (*iter == '\n' && - ((iter+1) != comment.end() && *(iter + 1) == '/')) + if (*iter == '\n' && ((iter + 1) != comment.end() && *(iter + 1) == '/')) writeIndent(); ++iter; } // Comments are stripped of trailing newlines, so add one here - document_ += "\n"; + document_ += '\n'; } void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) { @@ -4750,9 +4689,9 @@ void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) { document_ += " " + root.getComment(commentAfterOnSameLine); if (root.hasComment(commentAfter)) { - document_ += "\n"; + document_ += '\n'; document_ += root.getComment(commentAfter); - document_ += "\n"; + document_ += '\n'; } } @@ -4765,22 +4704,23 @@ bool StyledWriter::hasCommentForValue(const Value& value) { // Class StyledStreamWriter // ////////////////////////////////////////////////////////////////// -StyledStreamWriter::StyledStreamWriter(JSONCPP_STRING indentation) - : document_(NULL), rightMargin_(74), indentation_(indentation), - addChildValues_() {} +StyledStreamWriter::StyledStreamWriter(String indentation) + : document_(nullptr), indentation_(std::move(indentation)), + addChildValues_(), indented_(false) {} -void StyledStreamWriter::write(JSONCPP_OSTREAM& out, const Value& root) { +void StyledStreamWriter::write(OStream& out, const Value& root) { document_ = &out; addChildValues_ = false; indentString_.clear(); indented_ = true; writeCommentBeforeValue(root); - if (!indented_) writeIndent(); + if (!indented_) + writeIndent(); indented_ = true; writeValue(root); writeCommentAfterValueOnSameLine(root); *document_ << "\n"; - document_ = NULL; // Forget the stream, for safety. + document_ = nullptr; // Forget the stream, for safety. } void StyledStreamWriter::writeValue(const Value& value) { @@ -4797,14 +4737,15 @@ void StyledStreamWriter::writeValue(const Value& value) { case realValue: pushValue(valueToString(value.asDouble())); break; - case stringValue: - { + case stringValue: { // Is NULL possible for value.string_? No. char const* str; char const* end; bool ok = value.getString(&str, &end); - if (ok) pushValue(valueToQuotedStringN(str, static_cast(end-str))); - else pushValue(""); + if (ok) + pushValue(valueToQuotedStringN(str, static_cast(end - str))); + else + pushValue(""); break; } case booleanValue: @@ -4820,9 +4761,9 @@ void StyledStreamWriter::writeValue(const Value& value) { else { writeWithIndent("{"); indent(); - Value::Members::iterator it = members.begin(); + auto it = members.begin(); for (;;) { - const JSONCPP_STRING& name = *it; + const String& name = *it; const Value& childValue = value[name]; writeCommentBeforeValue(childValue); writeWithIndent(valueToQuotedString(name.c_str())); @@ -4859,7 +4800,8 @@ void StyledStreamWriter::writeArrayValue(const Value& value) { if (hasChildValue) writeWithIndent(childValues_[index]); else { - if (!indented_) writeIndent(); + if (!indented_) + writeIndent(); indented_ = true; writeValue(childValue); indented_ = false; @@ -4894,7 +4836,7 @@ bool StyledStreamWriter::isMultilineArray(const Value& value) { for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) { const Value& childValue = value[index]; isMultiLine = ((childValue.isArray() || childValue.isObject()) && - childValue.size() > 0); + !childValue.empty()); } if (!isMultiLine) // check if line length > max line length { @@ -4914,7 +4856,7 @@ bool StyledStreamWriter::isMultilineArray(const Value& value) { return isMultiLine; } -void StyledStreamWriter::pushValue(const JSONCPP_STRING& value) { +void StyledStreamWriter::pushValue(const String& value) { if (addChildValues_) childValues_.push_back(value); else @@ -4929,8 +4871,9 @@ void StyledStreamWriter::writeIndent() { *document_ << '\n' << indentString_; } -void StyledStreamWriter::writeWithIndent(const JSONCPP_STRING& value) { - if (!indented_) writeIndent(); +void StyledStreamWriter::writeWithIndent(const String& value) { + if (!indented_) + writeIndent(); *document_ << value; indented_ = false; } @@ -4946,13 +4889,13 @@ void StyledStreamWriter::writeCommentBeforeValue(const Value& root) { if (!root.hasComment(commentBefore)) return; - if (!indented_) writeIndent(); - const JSONCPP_STRING& comment = root.getComment(commentBefore); - JSONCPP_STRING::const_iterator iter = comment.begin(); + if (!indented_) + writeIndent(); + const String& comment = root.getComment(commentBefore); + String::const_iterator iter = comment.begin(); while (iter != comment.end()) { *document_ << *iter; - if (*iter == '\n' && - ((iter+1) != comment.end() && *(iter + 1) == '/')) + if (*iter == '\n' && ((iter + 1) != comment.end() && *(iter + 1) == '/')) // writeIndent(); // would include newline *document_ << indentString_; ++iter; @@ -4984,84 +4927,73 @@ bool StyledStreamWriter::hasCommentForValue(const Value& value) { struct CommentStyle { /// Decide whether to write comments. enum Enum { - None, ///< Drop all comments. - Most, ///< Recover odd behavior of previous versions (not implemented yet). - All ///< Keep all comments. + None, ///< Drop all comments. + Most, ///< Recover odd behavior of previous versions (not implemented yet). + All ///< Keep all comments. }; }; -struct BuiltStyledStreamWriter : public StreamWriter -{ - BuiltStyledStreamWriter( - JSONCPP_STRING const& indentation, - CommentStyle::Enum cs, - JSONCPP_STRING const& colonSymbol, - JSONCPP_STRING const& nullSymbol, - JSONCPP_STRING const& endingLineFeedSymbol, - bool useSpecialFloats, - unsigned int precision); - int write(Value const& root, JSONCPP_OSTREAM* sout) JSONCPP_OVERRIDE; +struct BuiltStyledStreamWriter : public StreamWriter { + BuiltStyledStreamWriter(String indentation, CommentStyle::Enum cs, + String colonSymbol, String nullSymbol, + String endingLineFeedSymbol, bool useSpecialFloats, + bool emitUTF8, unsigned int precision, + PrecisionType precisionType); + int write(Value const& root, OStream* sout) override; + private: void writeValue(Value const& value); void writeArrayValue(Value const& value); bool isMultilineArray(Value const& value); - void pushValue(JSONCPP_STRING const& value); + void pushValue(String const& value); void writeIndent(); - void writeWithIndent(JSONCPP_STRING const& value); + void writeWithIndent(String const& value); void indent(); void unindent(); void writeCommentBeforeValue(Value const& root); void writeCommentAfterValueOnSameLine(Value const& root); static bool hasCommentForValue(const Value& value); - typedef std::vector ChildValues; + using ChildValues = std::vector; ChildValues childValues_; - JSONCPP_STRING indentString_; + String indentString_; unsigned int rightMargin_; - JSONCPP_STRING indentation_; + String indentation_; CommentStyle::Enum cs_; - JSONCPP_STRING colonSymbol_; - JSONCPP_STRING nullSymbol_; - JSONCPP_STRING endingLineFeedSymbol_; + String colonSymbol_; + String nullSymbol_; + String endingLineFeedSymbol_; bool addChildValues_ : 1; bool indented_ : 1; bool useSpecialFloats_ : 1; + bool emitUTF8_ : 1; unsigned int precision_; + PrecisionType precisionType_; }; BuiltStyledStreamWriter::BuiltStyledStreamWriter( - JSONCPP_STRING const& indentation, - CommentStyle::Enum cs, - JSONCPP_STRING const& colonSymbol, - JSONCPP_STRING const& nullSymbol, - JSONCPP_STRING const& endingLineFeedSymbol, - bool useSpecialFloats, - unsigned int precision) - : rightMargin_(74) - , indentation_(indentation) - , cs_(cs) - , colonSymbol_(colonSymbol) - , nullSymbol_(nullSymbol) - , endingLineFeedSymbol_(endingLineFeedSymbol) - , addChildValues_(false) - , indented_(false) - , useSpecialFloats_(useSpecialFloats) - , precision_(precision) -{ -} -int BuiltStyledStreamWriter::write(Value const& root, JSONCPP_OSTREAM* sout) -{ + String indentation, CommentStyle::Enum cs, String colonSymbol, + String nullSymbol, String endingLineFeedSymbol, bool useSpecialFloats, + bool emitUTF8, unsigned int precision, PrecisionType precisionType) + : rightMargin_(74), indentation_(std::move(indentation)), cs_(cs), + colonSymbol_(std::move(colonSymbol)), nullSymbol_(std::move(nullSymbol)), + endingLineFeedSymbol_(std::move(endingLineFeedSymbol)), + addChildValues_(false), indented_(false), + useSpecialFloats_(useSpecialFloats), emitUTF8_(emitUTF8), + precision_(precision), precisionType_(precisionType) {} +int BuiltStyledStreamWriter::write(Value const& root, OStream* sout) { sout_ = sout; addChildValues_ = false; indented_ = true; indentString_.clear(); writeCommentBeforeValue(root); - if (!indented_) writeIndent(); + if (!indented_) + writeIndent(); indented_ = true; writeValue(root); writeCommentAfterValueOnSameLine(root); *sout_ << endingLineFeedSymbol_; - sout_ = NULL; + sout_ = nullptr; return 0; } void BuiltStyledStreamWriter::writeValue(Value const& value) { @@ -5076,16 +5008,19 @@ void BuiltStyledStreamWriter::writeValue(Value const& value) { pushValue(valueToString(value.asLargestUInt())); break; case realValue: - pushValue(valueToString(value.asDouble(), useSpecialFloats_, precision_)); + pushValue(valueToString(value.asDouble(), useSpecialFloats_, precision_, + precisionType_)); break; - case stringValue: - { + case stringValue: { // Is NULL is possible for value.string_? No. char const* str; char const* end; bool ok = value.getString(&str, &end); - if (ok) pushValue(valueToQuotedStringN(str, static_cast(end-str))); - else pushValue(""); + if (ok) + pushValue(valueToQuotedStringN(str, static_cast(end - str), + emitUTF8_)); + else + pushValue(""); break; } case booleanValue: @@ -5101,12 +5036,13 @@ void BuiltStyledStreamWriter::writeValue(Value const& value) { else { writeWithIndent("{"); indent(); - Value::Members::iterator it = members.begin(); + auto it = members.begin(); for (;;) { - JSONCPP_STRING const& name = *it; + String const& name = *it; Value const& childValue = value[name]; writeCommentBeforeValue(childValue); - writeWithIndent(valueToQuotedStringN(name.data(), static_cast(name.length()))); + writeWithIndent(valueToQuotedStringN( + name.data(), static_cast(name.length()), emitUTF8_)); *sout_ << colonSymbol_; writeValue(childValue); if (++it == members.end()) { @@ -5140,7 +5076,8 @@ void BuiltStyledStreamWriter::writeArrayValue(Value const& value) { if (hasChildValue) writeWithIndent(childValues_[index]); else { - if (!indented_) writeIndent(); + if (!indented_) + writeIndent(); indented_ = true; writeValue(childValue); indented_ = false; @@ -5158,13 +5095,15 @@ void BuiltStyledStreamWriter::writeArrayValue(Value const& value) { { assert(childValues_.size() == size); *sout_ << "["; - if (!indentation_.empty()) *sout_ << " "; + if (!indentation_.empty()) + *sout_ << " "; for (unsigned index = 0; index < size; ++index) { if (index > 0) *sout_ << ((!indentation_.empty()) ? ", " : ","); *sout_ << childValues_[index]; } - if (!indentation_.empty()) *sout_ << " "; + if (!indentation_.empty()) + *sout_ << " "; *sout_ << "]"; } } @@ -5177,7 +5116,7 @@ bool BuiltStyledStreamWriter::isMultilineArray(Value const& value) { for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) { Value const& childValue = value[index]; isMultiLine = ((childValue.isArray() || childValue.isObject()) && - childValue.size() > 0); + !childValue.empty()); } if (!isMultiLine) // check if line length > max line length { @@ -5197,7 +5136,7 @@ bool BuiltStyledStreamWriter::isMultilineArray(Value const& value) { return isMultiLine; } -void BuiltStyledStreamWriter::pushValue(JSONCPP_STRING const& value) { +void BuiltStyledStreamWriter::pushValue(String const& value) { if (addChildValues_) childValues_.push_back(value); else @@ -5216,8 +5155,9 @@ void BuiltStyledStreamWriter::writeIndent() { } } -void BuiltStyledStreamWriter::writeWithIndent(JSONCPP_STRING const& value) { - if (!indented_) writeIndent(); +void BuiltStyledStreamWriter::writeWithIndent(String const& value) { + if (!indented_) + writeIndent(); *sout_ << value; indented_ = false; } @@ -5230,17 +5170,18 @@ void BuiltStyledStreamWriter::unindent() { } void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) { - if (cs_ == CommentStyle::None) return; + if (cs_ == CommentStyle::None) + return; if (!root.hasComment(commentBefore)) return; - if (!indented_) writeIndent(); - const JSONCPP_STRING& comment = root.getComment(commentBefore); - JSONCPP_STRING::const_iterator iter = comment.begin(); + if (!indented_) + writeIndent(); + const String& comment = root.getComment(commentBefore); + String::const_iterator iter = comment.begin(); while (iter != comment.end()) { *sout_ << *iter; - if (*iter == '\n' && - ((iter+1) != comment.end() && *(iter + 1) == '/')) + if (*iter == '\n' && ((iter + 1) != comment.end() && *(iter + 1) == '/')) // writeIndent(); // would write extra newline *sout_ << indentString_; ++iter; @@ -5248,8 +5189,10 @@ void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) { indented_ = false; } -void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine(Value const& root) { - if (cs_ == CommentStyle::None) return; +void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine( + Value const& root) { + if (cs_ == CommentStyle::None) + return; if (root.hasComment(commentAfterOnSameLine)) *sout_ << " " + root.getComment(commentAfterOnSameLine); @@ -5269,28 +5212,19 @@ bool BuiltStyledStreamWriter::hasCommentForValue(const Value& value) { /////////////// // StreamWriter -StreamWriter::StreamWriter() - : sout_(NULL) -{ -} -StreamWriter::~StreamWriter() -{ -} -StreamWriter::Factory::~Factory() -{} -StreamWriterBuilder::StreamWriterBuilder() -{ - setDefaults(&settings_); -} -StreamWriterBuilder::~StreamWriterBuilder() -{} -StreamWriter* StreamWriterBuilder::newStreamWriter() const -{ - JSONCPP_STRING indentation = settings_["indentation"].asString(); - JSONCPP_STRING cs_str = settings_["commentStyle"].asString(); - bool eyc = settings_["enableYAMLCompatibility"].asBool(); - bool dnp = settings_["dropNullPlaceholders"].asBool(); - bool usf = settings_["useSpecialFloats"].asBool(); +StreamWriter::StreamWriter() : sout_(nullptr) {} +StreamWriter::~StreamWriter() = default; +StreamWriter::Factory::~Factory() = default; +StreamWriterBuilder::StreamWriterBuilder() { setDefaults(&settings_); } +StreamWriterBuilder::~StreamWriterBuilder() = default; +StreamWriter* StreamWriterBuilder::newStreamWriter() const { + const String indentation = settings_["indentation"].asString(); + const String cs_str = settings_["commentStyle"].asString(); + const String pt_str = settings_["precisionType"].asString(); + const bool eyc = settings_["enableYAMLCompatibility"].asBool(); + const bool dnp = settings_["dropNullPlaceholders"].asBool(); + const bool usf = settings_["useSpecialFloats"].asBool(); + const bool emitUTF8 = settings_["emitUTF8"].asBool(); unsigned int pre = settings_["precision"].asUInt(); CommentStyle::Enum cs = CommentStyle::All; if (cs_str == "All") { @@ -5300,74 +5234,80 @@ StreamWriter* StreamWriterBuilder::newStreamWriter() const } else { throwRuntimeError("commentStyle must be 'All' or 'None'"); } - JSONCPP_STRING colonSymbol = " : "; + PrecisionType precisionType(significantDigits); + if (pt_str == "significant") { + precisionType = PrecisionType::significantDigits; + } else if (pt_str == "decimal") { + precisionType = PrecisionType::decimalPlaces; + } else { + throwRuntimeError("precisionType must be 'significant' or 'decimal'"); + } + String colonSymbol = " : "; if (eyc) { colonSymbol = ": "; } else if (indentation.empty()) { colonSymbol = ":"; } - JSONCPP_STRING nullSymbol = "null"; + String nullSymbol = "null"; if (dnp) { nullSymbol.clear(); } - if (pre > 17) pre = 17; - JSONCPP_STRING endingLineFeedSymbol; - return new BuiltStyledStreamWriter( - indentation, cs, - colonSymbol, nullSymbol, endingLineFeedSymbol, usf, pre); + if (pre > 17) + pre = 17; + String endingLineFeedSymbol; + return new BuiltStyledStreamWriter(indentation, cs, colonSymbol, nullSymbol, + endingLineFeedSymbol, usf, emitUTF8, pre, + precisionType); } -static void getValidWriterKeys(std::set* valid_keys) -{ - valid_keys->clear(); - valid_keys->insert("indentation"); - valid_keys->insert("commentStyle"); - valid_keys->insert("enableYAMLCompatibility"); - valid_keys->insert("dropNullPlaceholders"); - valid_keys->insert("useSpecialFloats"); - valid_keys->insert("precision"); -} -bool StreamWriterBuilder::validate(Json::Value* invalid) const -{ - Json::Value my_invalid; - if (!invalid) invalid = &my_invalid; // so we do not need to test for NULL - Json::Value& inv = *invalid; - std::set valid_keys; - getValidWriterKeys(&valid_keys); - Value::Members keys = settings_.getMemberNames(); - size_t n = keys.size(); - for (size_t i = 0; i < n; ++i) { - JSONCPP_STRING const& key = keys[i]; - if (valid_keys.find(key) == valid_keys.end()) { - inv[key] = settings_[key]; - } + +bool StreamWriterBuilder::validate(Json::Value* invalid) const { + static const auto& valid_keys = *new std::set{ + "indentation", + "commentStyle", + "enableYAMLCompatibility", + "dropNullPlaceholders", + "useSpecialFloats", + "emitUTF8", + "precision", + "precisionType", + }; + for (auto si = settings_.begin(); si != settings_.end(); ++si) { + auto key = si.name(); + if (valid_keys.count(key)) + continue; + if (invalid) + (*invalid)[std::move(key)] = *si; + else + return false; } - return 0u == inv.size(); + return invalid ? invalid->empty() : true; } -Value& StreamWriterBuilder::operator[](JSONCPP_STRING key) -{ + +Value& StreamWriterBuilder::operator[](const String& key) { return settings_[key]; } // static -void StreamWriterBuilder::setDefaults(Json::Value* settings) -{ +void StreamWriterBuilder::setDefaults(Json::Value* settings) { //! [StreamWriterBuilderDefaults] (*settings)["commentStyle"] = "All"; (*settings)["indentation"] = "\t"; (*settings)["enableYAMLCompatibility"] = false; (*settings)["dropNullPlaceholders"] = false; (*settings)["useSpecialFloats"] = false; + (*settings)["emitUTF8"] = false; (*settings)["precision"] = 17; + (*settings)["precisionType"] = "significant"; //! [StreamWriterBuilderDefaults] } -JSONCPP_STRING writeString(StreamWriter::Factory const& builder, Value const& root) { - JSONCPP_OSTRINGSTREAM sout; - StreamWriterPtr const writer(builder.newStreamWriter()); +String writeString(StreamWriter::Factory const& factory, Value const& root) { + OStringStream sout; + StreamWriterPtr const writer(factory.newStreamWriter()); writer->write(root, &sout); return sout.str(); } -JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& root) { +OStream& operator<<(OStream& sout, Value const& root) { StreamWriterBuilder builder; StreamWriterPtr const writer(builder.newStreamWriter()); writer->write(root, &sout); From 5c0a57f6068000b0414cf2a3ef76a8bf4852b379 Mon Sep 17 00:00:00 2001 From: Maksim Date: Wed, 21 Oct 2020 21:42:40 +0200 Subject: [PATCH 246/624] Fix Media... 0% on loading screen (#9478) --- src/client/game.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client/game.cpp b/src/client/game.cpp index a7e367ae2..0380c1661 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -1641,7 +1641,10 @@ bool Game::getServerContent(bool *aborted) std::stringstream message; std::fixed(message); message.precision(0); - message << gettext("Media...") << " " << (client->mediaReceiveProgress()*100) << "%"; + float receive = client->mediaReceiveProgress() * 100; + message << gettext("Media..."); + if (receive > 0) + message << " " << receive << "%"; message.precision(2); if ((USE_CURL == 0) || From 9d370b78da61997f46f228cb3e4b54b8ee9295ff Mon Sep 17 00:00:00 2001 From: DS Date: Wed, 21 Oct 2020 22:05:32 +0200 Subject: [PATCH 247/624] Add documentation to builtin core.run_callbacks (#10494) --- builtin/client/register.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/builtin/client/register.lua b/builtin/client/register.lua index acd36ab36..27a6b02d9 100644 --- a/builtin/client/register.lua +++ b/builtin/client/register.lua @@ -4,6 +4,13 @@ core.callback_origins = {} local getinfo = debug.getinfo debug.getinfo = nil +--- Runs given callbacks. +-- +-- Note: this function is also called from C++ +-- @tparam table callbacks a table with registered callbacks, like `core.registered_on_*` +-- @tparam number mode a RunCallbacksMode, as defined in src/script/common/c_internal.h +-- @param ... arguments for the callback +-- @return depends on mode function core.run_callbacks(callbacks, mode, ...) assert(type(callbacks) == "table") local cb_len = #callbacks From 33b2c5f5b1c565171296f26395d803b08f4575e9 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Thu, 22 Oct 2020 17:18:01 +0200 Subject: [PATCH 248/624] Clean up l_object.cpp (#10512) Co-authored-by: Zughy <4279489-marco_a@users.noreply.gitlab.com> --- doc/lua_api.txt | 48 +- src/script/lua_api/l_object.cpp | 1169 +++++++++++++++---------------- src/script/lua_api/l_object.h | 56 +- 3 files changed, 605 insertions(+), 668 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 9a46c7b57..daf0da3d2 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6217,18 +6217,18 @@ object you are working with still exists. * `rot` is a vector (radians). X is pitch (elevation), Y is yaw (heading) and Z is roll (bank). * `get_rotation()`: returns the rotation, a vector (radians) -* `set_yaw(radians)`: sets the yaw (heading). +* `set_yaw(yaw)`: sets the yaw in radians (heading). * `get_yaw()`: returns number in radians * `set_texture_mod(mod)` * Set a texture modifier to the base texture, for sprites and meshes. * When calling `set_texture_mod` again, the previous one is discarded. * `mod` the texture modifier. See [Texture modifiers]. * `get_texture_mod()` returns current texture modifier -* `set_sprite(p, num_frames, framelength, select_x_by_camera)` +* `set_sprite(start_frame, num_frames, framelength, select_x_by_camera)` * Specifies and starts a sprite animation * Animations iterate along the frame `y` position. - * `p`: {x=column number, y=row number}, the coordinate of the first frame - default: `{x=0, y=0}` + * `start_frame`: {x=column number, y=row number}, the coordinate of the + first frame, default: `{x=0, y=0}` * `num_frames`: Total frames in the texture, default: `1` * `framelength`: Time per animated frame in seconds, default: `0.2` * `select_x_by_camera`: Only for visual = `sprite`. Changes the frame `x` @@ -6391,8 +6391,8 @@ object you are working with still exists. nodes square) * `selected_mode` is the mode index to be selected after modes have been changed (0 is the first mode). -* `set_sky(parameters)` - * `parameters` is a table with the following optional fields: +* `set_sky(sky_parameters)` + * `sky_parameters` is a table with the following optional fields: * `base_color`: ColorSpec, changes fog in "skybox" and "plain". * `type`: Available types: * `"regular"`: Uses 0 textures, `base_color` ignored @@ -6436,8 +6436,8 @@ object you are working with still exists. * `get_sky()`: returns base_color, type, table of textures, clouds. * `get_sky_color()`: returns a table with the `sky_color` parameters as in `set_sky`. -* `set_sun(parameters)`: - * `parameters` is a table with the following optional fields: +* `set_sun(sun_parameters)`: + * `sun_parameters` is a table with the following optional fields: * `visible`: Boolean for whether the sun is visible. (default: `true`) * `texture`: A regular texture for the sun. Setting to `""` @@ -6451,8 +6451,8 @@ object you are working with still exists. * `scale`: Float controlling the overall size of the sun. (default: `1`) * `get_sun()`: returns a table with the current sun parameters as in `set_sun`. -* `set_moon(parameters)`: - * `parameters` is a table with the following optional fields: +* `set_moon(moon_parameters)`: + * `moon_parameters` is a table with the following optional fields: * `visible`: Boolean for whether the moon is visible. (default: `true`) * `texture`: A regular texture for the moon. Setting to `""` @@ -6462,8 +6462,8 @@ object you are working with still exists. * `scale`: Float controlling the overall size of the moon (default: `1`) * `get_moon()`: returns a table with the current moon parameters as in `set_moon`. -* `set_stars(parameters)`: - * `parameters` is a table with the following optional fields: +* `set_stars(star_parameters)`: + * `star_parameters` is a table with the following optional fields: * `visible`: Boolean for whether the stars are visible. (default: `true`) * `count`: Integer number to set the number of stars in @@ -6475,8 +6475,8 @@ object you are working with still exists. * `scale`: Float controlling the overall size of the stars (default: `1`) * `get_stars()`: returns a table with the current stars parameters as in `set_stars`. -* `set_clouds(parameters)`: set cloud parameters - * `parameters` is a table with the following optional fields: +* `set_clouds(cloud_parameters)`: set cloud parameters + * `cloud_parameters` is a table with the following optional fields: * `density`: from `0` (no clouds) to `1` (full clouds) (default `0.4`) * `color`: basic cloud color with alpha channel, ColorSpec (default `#fff0f0e5`). @@ -6494,21 +6494,17 @@ object you are working with still exists. amount. * `nil`: Disables override, defaulting to sunlight based on day-night cycle * `get_day_night_ratio()`: returns the ratio or nil if it isn't overridden -* `set_local_animation(stand/idle, walk, dig, walk+dig, frame_speed=frame_speed)`: - set animation for player model in third person view - - set_local_animation({x=0, y=79}, -- stand/idle animation key frames - {x=168, y=187}, -- walk animation key frames - {x=189, y=198}, -- dig animation key frames - {x=200, y=219}, -- walk+dig animation key frames - frame_speed=30) -- animation frame speed -* `get_local_animation()`: returns stand, walk, dig, dig+walk tables and +* `set_local_animation(idle, walk, dig, walk_while_dig, frame_speed)`: + set animation for player model in third person view. + * Every animation equals to a `{x=starting frame, y=ending frame}` table. + * `frame_speed` sets the animations frame speed. Default is 30. +* `get_local_animation()`: returns idle, walk, dig, walk_while_dig tables and `frame_speed`. -* `set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})`: defines offset value for - camera per player. +* `set_eye_offset(firstperson, thirdperson)`: defines offset vectors for camera + per player. * in first person view * in third person view (max. values `{x=-10/10,y=-10,15,z=-5/5}`) -* `get_eye_offset()`: returns `offset_first` and `offset_third` +* `get_eye_offset()`: returns first and third person offsets. * `send_mapblock(blockpos)`: * Sends a server-side loaded mapblock to the player. * Returns `false` if failed. diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 96c8c687c..c3f0ec8e0 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -44,43 +44,44 @@ ObjectRef* ObjectRef::checkobject(lua_State *L, int narg) { luaL_checktype(L, narg, LUA_TUSERDATA); void *ud = luaL_checkudata(L, narg, className); - if (!ud) luaL_typerror(L, narg, className); + if (ud == nullptr) + luaL_typerror(L, narg, className); return *(ObjectRef**)ud; // unbox pointer } ServerActiveObject* ObjectRef::getobject(ObjectRef *ref) { - ServerActiveObject *co = ref->m_object; - if (co && co->isGone()) - return NULL; - return co; + ServerActiveObject *sao = ref->m_object; + if (sao && sao->isGone()) + return nullptr; + return sao; } LuaEntitySAO* ObjectRef::getluaobject(ObjectRef *ref) { - ServerActiveObject *obj = getobject(ref); - if (obj == NULL) - return NULL; - if (obj->getType() != ACTIVEOBJECT_TYPE_LUAENTITY) - return NULL; - return (LuaEntitySAO*)obj; + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return nullptr; + if (sao->getType() != ACTIVEOBJECT_TYPE_LUAENTITY) + return nullptr; + return (LuaEntitySAO*)sao; } PlayerSAO* ObjectRef::getplayersao(ObjectRef *ref) { - ServerActiveObject *obj = getobject(ref); - if (obj == NULL) - return NULL; - if (obj->getType() != ACTIVEOBJECT_TYPE_PLAYER) - return NULL; - return (PlayerSAO*)obj; + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return nullptr; + if (sao->getType() != ACTIVEOBJECT_TYPE_PLAYER) + return nullptr; + return (PlayerSAO*)sao; } RemotePlayer *ObjectRef::getplayer(ObjectRef *ref) { PlayerSAO *playersao = getplayersao(ref); - if (playersao == NULL) - return NULL; + if (playersao == nullptr) + return nullptr; return playersao->getPlayer(); } @@ -88,9 +89,8 @@ RemotePlayer *ObjectRef::getplayer(ObjectRef *ref) // garbage collector int ObjectRef::gc_object(lua_State *L) { - ObjectRef *o = *(ObjectRef **)(lua_touserdata(L, 1)); - //infostream<<"ObjectRef::gc_object: o="<getType() == ACTIVEOBJECT_TYPE_PLAYER) + if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) return 0; - co->clearChildAttachments(); - co->clearParentAttachment(); + sao->clearChildAttachments(); + sao->clearParentAttachment(); - verbosestream << "ObjectRef::l_remove(): id=" << co->getId() << std::endl; - co->m_pending_removal = true; + verbosestream << "ObjectRef::l_remove(): id=" << sao->getId() << std::endl; + sao->m_pending_removal = true; return 0; } // get_pos(self) -// returns: {x=num, y=num, z=num} int ObjectRef::l_get_pos(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - push_v3f(L, co->getBasePosition() / BS); + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + push_v3f(L, sao->getBasePosition() / BS); return 1; } @@ -131,28 +132,29 @@ int ObjectRef::l_set_pos(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // pos + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + v3f pos = checkFloatPos(L, 2); - // Do it - co->setPos(pos); + + sao->setPos(pos); return 0; } -// move_to(self, pos, continuous=false) +// move_to(self, pos, continuous) int ObjectRef::l_move_to(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // pos + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + v3f pos = checkFloatPos(L, 2); - // continuous bool continuous = readParam(L, 3); - // Do it - co->moveTo(pos, continuous); + + sao->moveTo(pos, continuous); return 0; } @@ -162,32 +164,28 @@ int ObjectRef::l_punch(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ObjectRef *puncher_ref = checkobject(L, 2); - ServerActiveObject *co = getobject(ref); + ServerActiveObject *sao = getobject(ref); ServerActiveObject *puncher = getobject(puncher_ref); - if (!co || !puncher) + if (sao == nullptr || puncher == nullptr) return 0; - v3f dir; - if (lua_type(L, 5) != LUA_TTABLE) - dir = co->getBasePosition() - puncher->getBasePosition(); - else - dir = read_v3f(L, 5); - float time_from_last_punch = 1000000; - if (lua_isnumber(L, 3)) - time_from_last_punch = lua_tonumber(L, 3); - ToolCapabilities toolcap = read_tool_capabilities(L, 4); - dir.normalize(); - u16 src_original_hp = co->getHP(); + float time_from_last_punch = lua_isnil(L, 3) ? + 1000000.0f : readParam(L,3); + ToolCapabilities toolcap = read_tool_capabilities(L, 4); + v3f dir = lua_isnil(L, 5) ? + sao->getBasePosition() - puncher->getBasePosition() : check_v3f(L, 5); + + dir.normalize(); + u16 src_original_hp = sao->getHP(); u16 dst_origin_hp = puncher->getHP(); - // Do it - u16 wear = co->punch(dir, &toolcap, puncher, time_from_last_punch); + u16 wear = sao->punch(dir, &toolcap, puncher, time_from_last_punch); lua_pushnumber(L, wear); // If the punched is a player, and its HP changed - if (src_original_hp != co->getHP() && - co->getType() == ACTIVEOBJECT_TYPE_PLAYER) { - getServer(L)->SendPlayerHPOrDie((PlayerSAO *)co, + if (src_original_hp != sao->getHP() && + sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + getServer(L)->SendPlayerHPOrDie((PlayerSAO *)sao, PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, puncher)); } @@ -195,45 +193,38 @@ int ObjectRef::l_punch(lua_State *L) if (dst_origin_hp != puncher->getHP() && puncher->getType() == ACTIVEOBJECT_TYPE_PLAYER) { getServer(L)->SendPlayerHPOrDie((PlayerSAO *)puncher, - PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, co)); + PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, sao)); } return 1; } -// right_click(self, clicker); clicker = an another ObjectRef +// right_click(self, clicker) int ObjectRef::l_right_click(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ObjectRef *ref2 = checkobject(L, 2); - ServerActiveObject *co = getobject(ref); - ServerActiveObject *co2 = getobject(ref2); - if (co == NULL) return 0; - if (co2 == NULL) return 0; - // Do it - co->rightClick(co2); + ServerActiveObject *sao = getobject(ref); + ServerActiveObject *sao2 = getobject(ref2); + if (sao == nullptr || sao2 == nullptr) + return 0; + + sao->rightClick(sao2); return 0; } -// set_hp(self, hp) -// hp = number of hitpoints (2 * number of hearts) -// returns: nil +// set_hp(self, hp, reason) int ObjectRef::l_set_hp(lua_State *L) { NO_MAP_LOCK_REQUIRED; - - // Get Object ObjectRef *ref = checkobject(L, 1); - luaL_checknumber(L, 2); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Get HP - int hp = lua_tonumber(L, 2); - - // Get Reason + int hp = readParam(L, 2); PlayerHPChangeReason reason(PlayerHPChangeReason::SET_HP); + reason.from_mod = true; if (lua_istable(L, 3)) { lua_pushvalue(L, 3); @@ -248,35 +239,28 @@ int ObjectRef::l_set_hp(lua_State *L) reason.lua_reference = luaL_ref(L, LUA_REGISTRYINDEX); } - // Do it - co->setHP(hp, reason); - if (co->getType() == ACTIVEOBJECT_TYPE_PLAYER) - getServer(L)->SendPlayerHPOrDie((PlayerSAO *)co, reason); - + sao->setHP(hp, reason); + if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) + getServer(L)->SendPlayerHPOrDie((PlayerSAO *)sao, reason); if (reason.hasLuaReference()) luaL_unref(L, LUA_REGISTRYINDEX, reason.lua_reference); - - // Return return 0; } // get_hp(self) -// returns: number of hitpoints (2 * number of hearts) -// 0 if not applicable to this type of object int ObjectRef::l_get_hp(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) { + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) { // Default hp is 1 lua_pushnumber(L, 1); return 1; } - int hp = co->getHP(); - /*infostream<<"ObjectRef::l_get_hp(): id="<getId() - <<" hp="<getHP(); + lua_pushnumber(L, hp); return 1; } @@ -286,11 +270,12 @@ int ObjectRef::l_get_inventory(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it - InventoryLocation loc = co->getInventoryLocation(); - if (getServerInventoryMgr(L)->getInventory(loc) != NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + InventoryLocation loc = sao->getInventoryLocation(); + if (getServerInventoryMgr(L)->getInventory(loc) != nullptr) InvRef::create(L, loc); else lua_pushnil(L); // An object may have no inventory (nil) @@ -302,11 +287,11 @@ int ObjectRef::l_get_wield_list(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (!co) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - lua_pushstring(L, co->getWieldList().c_str()); + lua_pushstring(L, sao->getWieldList().c_str()); return 1; } @@ -315,11 +300,11 @@ int ObjectRef::l_get_wield_index(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (!co) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - lua_pushinteger(L, co->getWieldIndex() + 1); + lua_pushinteger(L, sao->getWieldIndex() + 1); return 1; } @@ -328,31 +313,33 @@ int ObjectRef::l_get_wielded_item(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (!co) { + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) { // Empty ItemStack LuaItemStack::create(L, ItemStack()); return 1; } ItemStack selected_item; - co->getWieldedItem(&selected_item, nullptr); + sao->getWieldedItem(&selected_item, nullptr); LuaItemStack::create(L, selected_item); return 1; } -// set_wielded_item(self, itemstack or itemstring or table or nil) +// set_wielded_item(self, item) int ObjectRef::l_set_wielded_item(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + ItemStack item = read_item(L, 2, getServer(L)->idef()); - bool success = co->setWieldedItem(item); - if (success && co->getType() == ACTIVEOBJECT_TYPE_PLAYER) { - getServer(L)->SendInventory((PlayerSAO *)co, true); + + bool success = sao->setWieldedItem(item); + if (success && sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + getServer(L)->SendInventory((PlayerSAO *)sao, true); } lua_pushboolean(L, success); return 1; @@ -363,12 +350,14 @@ int ObjectRef::l_set_armor_groups(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + ItemGroupList groups; + read_groups(L, 2, groups); - co->setArmorGroups(groups); + sao->setArmorGroups(groups); return 0; } @@ -377,77 +366,11 @@ int ObjectRef::l_get_armor_groups(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it - push_groups(L, co->getArmorGroups()); - return 1; -} -// set_physics_override(self, physics_override_speed, physics_override_jump, -// physics_override_gravity, sneak, sneak_glitch, new_move) -int ObjectRef::l_set_physics_override(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = (PlayerSAO *) getobject(ref); - if (co == NULL) return 0; - // Do it - if (lua_istable(L, 2)) { - co->m_physics_override_speed = getfloatfield_default( - L, 2, "speed", co->m_physics_override_speed); - co->m_physics_override_jump = getfloatfield_default( - L, 2, "jump", co->m_physics_override_jump); - co->m_physics_override_gravity = getfloatfield_default( - L, 2, "gravity", co->m_physics_override_gravity); - co->m_physics_override_sneak = getboolfield_default( - L, 2, "sneak", co->m_physics_override_sneak); - co->m_physics_override_sneak_glitch = getboolfield_default( - L, 2, "sneak_glitch", co->m_physics_override_sneak_glitch); - co->m_physics_override_new_move = getboolfield_default( - L, 2, "new_move", co->m_physics_override_new_move); - co->m_physics_override_sent = false; - } else { - // old, non-table format - if (!lua_isnil(L, 2)) { - co->m_physics_override_speed = lua_tonumber(L, 2); - co->m_physics_override_sent = false; - } - if (!lua_isnil(L, 3)) { - co->m_physics_override_jump = lua_tonumber(L, 3); - co->m_physics_override_sent = false; - } - if (!lua_isnil(L, 4)) { - co->m_physics_override_gravity = lua_tonumber(L, 4); - co->m_physics_override_sent = false; - } - } - return 0; -} - -// get_physics_override(self) -int ObjectRef::l_get_physics_override(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = (PlayerSAO *)getobject(ref); - if (co == NULL) - return 0; - // Do it - lua_newtable(L); - lua_pushnumber(L, co->m_physics_override_speed); - lua_setfield(L, -2, "speed"); - lua_pushnumber(L, co->m_physics_override_jump); - lua_setfield(L, -2, "jump"); - lua_pushnumber(L, co->m_physics_override_gravity); - lua_setfield(L, -2, "gravity"); - lua_pushboolean(L, co->m_physics_override_sneak); - lua_setfield(L, -2, "sneak"); - lua_pushboolean(L, co->m_physics_override_sneak_glitch); - lua_setfield(L, -2, "sneak_glitch"); - lua_pushboolean(L, co->m_physics_override_new_move); - lua_setfield(L, -2, "new_move"); + push_groups(L, sao->getArmorGroups()); return 1; } @@ -456,9 +379,10 @@ int ObjectRef::l_set_animation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + v2f frames = v2f(1, 1); if (!lua_isnil(L, 2)) frames = readParam(L, 2); @@ -471,7 +395,8 @@ int ObjectRef::l_set_animation(lua_State *L) bool frame_loop = true; if (lua_isboolean(L, 5)) frame_loop = readParam(L, 5); - co->setAnimation(frames, frame_speed, frame_blend, frame_loop); + + sao->setAnimation(frames, frame_speed, frame_blend, frame_loop); return 0; } @@ -480,16 +405,16 @@ int ObjectRef::l_get_animation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it + v2f frames = v2f(1,1); float frame_speed = 15; float frame_blend = 0; bool frame_loop = true; - co->getAnimation(&frames, &frame_speed, &frame_blend, &frame_loop); + sao->getAnimation(&frames, &frame_speed, &frame_blend, &frame_loop); push_v2f(L, frames); lua_pushnumber(L, frame_speed); lua_pushnumber(L, frame_blend); @@ -497,23 +422,21 @@ int ObjectRef::l_get_animation(lua_State *L) return 4; } -// set_local_animation(self, {stand/idle}, {walk}, {dig}, {walk+dig}, frame_speed) +// set_local_animation(self, idle, walk, dig, walk_while_dig, frame_speed) int ObjectRef::l_set_local_animation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - // Do it + v2s32 frames[4]; for (int i=0;i<4;i++) { if (!lua_isnil(L, 2+1)) frames[i] = read_v2s32(L, 2+i); } - float frame_speed = 30; - if (!lua_isnil(L, 6)) - frame_speed = lua_tonumber(L, 6); + float frame_speed = lua_isnil(L, 6) ? 30 : readParam(L, 6); getServer(L)->setLocalPlayerAnimations(player, frames, frame_speed); lua_pushboolean(L, true); @@ -526,7 +449,7 @@ int ObjectRef::l_get_local_animation(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; v2s32 frames[4]; @@ -541,27 +464,22 @@ int ObjectRef::l_get_local_animation(lua_State *L) return 5; } -// set_eye_offset(self, v3f first pv, v3f third pv) +// set_eye_offset(self, firstperson, thirdperson) int ObjectRef::l_set_eye_offset(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - // Do it - v3f offset_first = v3f(0, 0, 0); - v3f offset_third = v3f(0, 0, 0); - if (!lua_isnil(L, 2)) - offset_first = read_v3f(L, 2); - if (!lua_isnil(L, 3)) - offset_third = read_v3f(L, 3); + v3f offset_first = read_v3f(L, 2); + v3f offset_third = read_v3f(L, 3); // Prevent abuse of offset values (keep player always visible) offset_third.X = rangelim(offset_third.X,-10,10); offset_third.Z = rangelim(offset_third.Z,-5,5); - /* TODO: if possible: improve the camera colision detetion to allow Y <= -1.5) */ + /* TODO: if possible: improve the camera collision detection to allow Y <= -1.5) */ offset_third.Y = rangelim(offset_third.Y,-10,15); //1.5*BS getServer(L)->setPlayerEyeOffset(player, offset_first, offset_third); @@ -575,9 +493,9 @@ int ObjectRef::l_get_eye_offset(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - // Do it + push_v3f(L, player->eye_offset_first); push_v3f(L, player->eye_offset_third); return 2; @@ -588,14 +506,14 @@ int ObjectRef::l_send_mapblock(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; - v3s16 p = read_v3s16(L, 2); + + v3s16 pos = read_v3s16(L, 2); session_t peer_id = player->getPeerId(); - bool r = getServer(L)->SendBlock(peer_id, p); + bool r = getServer(L)->SendBlock(peer_id, pos); lua_pushboolean(L, r); return 1; @@ -606,14 +524,13 @@ int ObjectRef::l_set_animation_frame_speed(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it if (!lua_isnil(L, 2)) { - float frame_speed = lua_tonumber(L, 2); - co->setAnimationSpeed(frame_speed); + float frame_speed = readParam(L, 2); + sao->setAnimationSpeed(frame_speed); lua_pushboolean(L, true); } else { lua_pushboolean(L, false); @@ -621,24 +538,20 @@ int ObjectRef::l_set_animation_frame_speed(lua_State *L) return 1; } -// set_bone_position(self, std::string bone, v3f position, v3f rotation) +// set_bone_position(self, bone, position, rotation) int ObjectRef::l_set_bone_position(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it - std::string bone; - if (!lua_isnil(L, 2)) - bone = readParam(L, 2); - v3f position = v3f(0, 0, 0); - if (!lua_isnil(L, 3)) - position = check_v3f(L, 3); - v3f rotation = v3f(0, 0, 0); - if (!lua_isnil(L, 4)) - rotation = check_v3f(L, 4); - co->setBonePosition(bone, position, rotation); + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + std::string bone = readParam(L, 2); + v3f position = check_v3f(L, 3); + v3f rotation = check_v3f(L, 4); + + sao->setBonePosition(bone, position, rotation); return 0; } @@ -647,17 +560,15 @@ int ObjectRef::l_get_bone_position(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it - std::string bone; - if (!lua_isnil(L, 2)) - bone = readParam(L, 2); + + std::string bone = readParam(L, 2); v3f position = v3f(0, 0, 0); v3f rotation = v3f(0, 0, 0); - co->getBonePosition(bone, &position, &rotation); + sao->getBonePosition(bone, &position, &rotation); push_v3f(L, position); push_v3f(L, rotation); @@ -668,44 +579,34 @@ int ObjectRef::l_get_bone_position(lua_State *L) int ObjectRef::l_set_attach(lua_State *L) { GET_ENV_PTR; - ObjectRef *ref = checkobject(L, 1); ObjectRef *parent_ref = checkobject(L, 2); - ServerActiveObject *co = getobject(ref); + ServerActiveObject *sao = getobject(ref); ServerActiveObject *parent = getobject(parent_ref); - if (co == NULL) + if (sao == nullptr || parent == nullptr) return 0; - - if (parent == NULL) - return 0; - - if (co == parent) + if (sao == parent) throw LuaError("ObjectRef::set_attach: attaching object to itself is not allowed."); - // Do it int parent_id = 0; std::string bone; v3f position = v3f(0, 0, 0); v3f rotation = v3f(0, 0, 0); bool force_visible; - co->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); + + sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); if (parent_id) { ServerActiveObject *old_parent = env->getActiveObject(parent_id); - old_parent->removeAttachmentChild(co->getId()); + old_parent->removeAttachmentChild(sao->getId()); } - bone = ""; - if (!lua_isnil(L, 3)) - bone = readParam(L, 3); - position = v3f(0, 0, 0); - if (!lua_isnil(L, 4)) - position = read_v3f(L, 4); - rotation = v3f(0, 0, 0); - if (!lua_isnil(L, 5)) - rotation = read_v3f(L, 5); + bone = readParam(L, 3, ""); + position = read_v3f(L, 4); + rotation = read_v3f(L, 5); force_visible = readParam(L, 6, false); - co->setAttachment(parent->getId(), bone, position, rotation, force_visible); - parent->addAttachmentChild(co->getId()); + + sao->setAttachment(parent->getId(), bone, position, rotation, force_visible); + parent->addAttachmentChild(sao->getId()); return 0; } @@ -713,23 +614,22 @@ int ObjectRef::l_set_attach(lua_State *L) int ObjectRef::l_get_attach(lua_State *L) { GET_ENV_PTR; - ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it int parent_id = 0; std::string bone; v3f position = v3f(0, 0, 0); v3f rotation = v3f(0, 0, 0); bool force_visible; - co->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); - if (!parent_id) - return 0; - ServerActiveObject *parent = env->getActiveObject(parent_id); + sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); + if (parent_id == 0) + return 0; + + ServerActiveObject *parent = env->getActiveObject(parent_id); getScriptApiBase(L)->objectrefGetOrCreate(L, parent); lua_pushlstring(L, bone.c_str(), bone.size()); push_v3f(L, position); @@ -742,7 +642,6 @@ int ObjectRef::l_get_attach(lua_State *L) int ObjectRef::l_get_children(lua_State *L) { GET_ENV_PTR; - ObjectRef *ref = checkobject(L, 1); ServerActiveObject *sao = getobject(ref); if (sao == nullptr) @@ -750,6 +649,7 @@ int ObjectRef::l_get_children(lua_State *L) const std::unordered_set child_ids = sao->getAttachmentChildIds(); int i = 0; + lua_createtable(L, child_ids.size(), 0); for (const int id : child_ids) { ServerActiveObject *child = env->getActiveObject(id); @@ -763,13 +663,12 @@ int ObjectRef::l_get_children(lua_State *L) int ObjectRef::l_set_detach(lua_State *L) { GET_ENV_PTR; - ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - co->clearParentAttachment(); + sao->clearParentAttachment(); return 0; } @@ -778,16 +677,16 @@ int ObjectRef::l_set_properties(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (!co) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - ObjectProperties *prop = co->accessObjectProperties(); - if (!prop) + ObjectProperties *prop = sao->accessObjectProperties(); + if (prop == nullptr) return 0; - read_object_properties(L, 2, co, prop, getServer(L)->idef()); - co->notifyObjectPropertiesModified(); + read_object_properties(L, 2, sao, prop, getServer(L)->idef()); + sao->notifyObjectPropertiesModified(); return 0; } @@ -796,12 +695,14 @@ int ObjectRef::l_get_properties(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - ObjectProperties *prop = co->accessObjectProperties(); - if (!prop) + + ObjectProperties *prop = sao->accessObjectProperties(); + if (prop == nullptr) return 0; + push_object_properties(L, prop); return 1; } @@ -812,7 +713,7 @@ int ObjectRef::l_is_player(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - lua_pushboolean(L, (player != NULL)); + lua_pushboolean(L, (player != nullptr)); return 1; } @@ -821,12 +722,12 @@ int ObjectRef::l_set_nametag_attributes(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - ObjectProperties *prop = co->accessObjectProperties(); - if (!prop) + + ObjectProperties *prop = sao->accessObjectProperties(); + if (prop == nullptr) return 0; lua_getfield(L, 2, "color"); @@ -840,7 +741,7 @@ int ObjectRef::l_set_nametag_attributes(lua_State *L) std::string nametag = getstringfield_default(L, 2, "text", ""); prop->nametag = nametag; - co->notifyObjectPropertiesModified(); + sao->notifyObjectPropertiesModified(); lua_pushboolean(L, true); return 1; } @@ -850,11 +751,11 @@ int ObjectRef::l_get_nametag_attributes(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - ObjectProperties *prop = co->accessObjectProperties(); + + ObjectProperties *prop = sao->accessObjectProperties(); if (!prop) return 0; @@ -870,37 +771,39 @@ int ObjectRef::l_get_nametag_attributes(lua_State *L) /* LuaEntitySAO-only */ -// set_velocity(self, {x=num, y=num, z=num}) +// set_velocity(self, velocity) int ObjectRef::l_set_velocity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - v3f pos = checkFloatPos(L, 2); - // Do it - co->setVelocity(pos); + LuaEntitySAO *sao = getluaobject(ref); + if (sao == nullptr) + return 0; + + v3f vel = checkFloatPos(L, 2); + + sao->setVelocity(vel); return 0; } -// add_velocity(self, {x=num, y=num, z=num}) +// add_velocity(self, velocity) int ObjectRef::l_add_velocity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - v3f vel = checkFloatPos(L, 2); - - ServerActiveObject *obj = getobject(ref); - if (obj == nullptr) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - if (obj->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) { - LuaEntitySAO *co = dynamic_cast(obj); - co->addVelocity(vel); - } else if (obj->getType() == ACTIVEOBJECT_TYPE_PLAYER) { - PlayerSAO *player = dynamic_cast(obj); - player->setMaxSpeedOverride(vel); - getServer(L)->SendPlayerSpeed(player->getPeerID(), vel); + v3f vel = checkFloatPos(L, 2); + + if (sao->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) { + LuaEntitySAO *entitysao = dynamic_cast(sao); + entitysao->addVelocity(vel); + } else if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + PlayerSAO *playersao = dynamic_cast(sao); + playersao->setMaxSpeedOverride(vel); + getServer(L)->SendPlayerSpeed(playersao->getPeerID(), vel); } return 0; @@ -911,18 +814,17 @@ int ObjectRef::l_get_velocity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - - ServerActiveObject *obj = getobject(ref); - if (obj == nullptr) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - if (obj->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) { - LuaEntitySAO *co = dynamic_cast(obj); - v3f v = co->getVelocity(); - pushFloatPos(L, v); + if (sao->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) { + LuaEntitySAO *entitysao = dynamic_cast(sao); + v3f vel = entitysao->getVelocity(); + pushFloatPos(L, vel); return 1; - } else if (obj->getType() == ACTIVEOBJECT_TYPE_PLAYER) { - RemotePlayer *player = dynamic_cast(obj)->getPlayer(); + } else if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + RemotePlayer *player = dynamic_cast(sao)->getPlayer(); push_v3f(L, player->getSpeed() / BS); return 1; } @@ -931,17 +833,18 @@ int ObjectRef::l_get_velocity(lua_State *L) return 1; } -// set_acceleration(self, {x=num, y=num, z=num}) +// set_acceleration(self, acceleration) int ObjectRef::l_set_acceleration(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // pos - v3f pos = checkFloatPos(L, 2); - // Do it - co->setAcceleration(pos); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + v3f acceleration = checkFloatPos(L, 2); + + entitysao->setAcceleration(acceleration); return 0; } @@ -950,59 +853,61 @@ int ObjectRef::l_get_acceleration(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - v3f v = co->getAcceleration(); - pushFloatPos(L, v); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + v3f acceleration = entitysao->getAcceleration(); + pushFloatPos(L, acceleration); return 1; } -// set_rotation(self, {x=num, y=num, z=num}) -// Each 'num' is in radians +// set_rotation(self, rotation) int ObjectRef::l_set_rotation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (!co) + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) return 0; v3f rotation = check_v3f(L, 2) * core::RADTODEG; - co->setRotation(rotation); + + entitysao->setRotation(rotation); return 0; } // get_rotation(self) -// returns: {x=num, y=num, z=num} -// Each 'num' is in radians int ObjectRef::l_get_rotation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (!co) + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) return 0; + v3f rotation = entitysao->getRotation() * core::DEGTORAD; + lua_newtable(L); - v3f rotation = co->getRotation() * core::DEGTORAD; push_v3f(L, rotation); return 1; } -// set_yaw(self, radians) +// set_yaw(self, yaw) int ObjectRef::l_set_yaw(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; - if (co == NULL) return 0; if (isNaN(L, 2)) throw LuaError("ObjectRef::set_yaw: NaN value is not allowed."); float yaw = readParam(L, 2) * core::RADTODEG; - co->setRotation(v3f(0, yaw, 0)); + + entitysao->setRotation(v3f(0, yaw, 0)); return 0; } @@ -1011,11 +916,12 @@ int ObjectRef::l_get_yaw(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (!co) + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) return 0; - float yaw = co->getRotation().Y * core::DEGTORAD; + float yaw = entitysao->getRotation().Y * core::DEGTORAD; + lua_pushnumber(L, yaw); return 1; } @@ -1025,11 +931,13 @@ int ObjectRef::l_set_texture_mod(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - std::string mod = luaL_checkstring(L, 2); - co->setTextureMod(mod); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + std::string mod = readParam(L, 2); + + entitysao->setTextureMod(mod); return 0; } @@ -1038,36 +946,31 @@ int ObjectRef::l_get_texture_mod(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - std::string mod = co->getTextureMod(); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + std::string mod = entitysao->getTextureMod(); + lua_pushstring(L, mod.c_str()); return 1; } -// set_sprite(self, p={x=0,y=0}, num_frames=1, framelength=0.2, -// select_horiz_by_yawpitch=false) +// set_sprite(self, start_frame, num_frames, framelength, select_x_by_camera) int ObjectRef::l_set_sprite(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - v2s16 p(0,0); - if (!lua_isnil(L, 2)) - p = readParam(L, 2); - int num_frames = 1; - if (!lua_isnil(L, 3)) - num_frames = lua_tonumber(L, 3); - float framelength = 0.2; - if (!lua_isnil(L, 4)) - framelength = lua_tonumber(L, 4); - bool select_horiz_by_yawpitch = false; - if (!lua_isnil(L, 5)) - select_horiz_by_yawpitch = readParam(L, 5); - co->setSprite(p, num_frames, framelength, select_horiz_by_yawpitch); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + v2s16 start_frame = lua_isnil(L, 2) ? v2s16(0,0) : readParam(L, 2); + int num_frames = lua_isnil(L, 3) ? 1 : luaL_checkint(L, 3); + float framelength = lua_isnil(L, 4) ? 0.2 : lua_tonumber(L, 4); + bool select_x_by_camera = readParam(L, 5, false); + + entitysao->setSprite(start_frame, num_frames, framelength, select_x_by_camera); return 0; } @@ -1077,11 +980,13 @@ int ObjectRef::l_get_entity_name(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); + LuaEntitySAO *entitysao = getluaobject(ref); log_deprecated(L,"Deprecated call to \"get_entity_name"); - if (co == NULL) return 0; - // Do it - std::string name = co->getName(); + if (entitysao == nullptr) + return 0; + + std::string name = entitysao->getName(); + lua_pushstring(L, name.c_str()); return 1; } @@ -1091,39 +996,27 @@ int ObjectRef::l_get_luaentity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - luaentity_get(L, co->getId()); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + luaentity_get(L, entitysao->getId()); return 1; } /* Player-only */ -// is_player_connected(self) -int ObjectRef::l_is_player_connected(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - // This method was once added for a bugfix, but never documented - log_deprecated(L, "is_player_connected is undocumented and " - "will be removed in a future release"); - ObjectRef *ref = checkobject(L, 1); - RemotePlayer *player = getplayer(ref); - lua_pushboolean(L, (player != NULL && player->getPeerId() != PEER_ID_INEXISTENT)); - return 1; -} - // get_player_name(self) int ObjectRef::l_get_player_name(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) { + if (player == nullptr) { lua_pushlstring(L, "", 0); return 1; } - // Do it + lua_pushstring(L, player->getName()); return 1; } @@ -1133,13 +1026,15 @@ int ObjectRef::l_get_look_dir(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - float pitch = co->getRadLookPitchDep(); - float yaw = co->getRadYawDep(); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + float pitch = playersao->getRadLookPitchDep(); + float yaw = playersao->getRadYawDep(); v3f v(std::cos(pitch) * std::cos(yaw), std::sin(pitch), std::cos(pitch) * std::sin(yaw)); + push_v3f(L, v); return 1; } @@ -1154,10 +1049,11 @@ int ObjectRef::l_get_look_pitch(lua_State *L) "Deprecated call to get_look_pitch, use get_look_vertical instead"); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - lua_pushnumber(L, co->getRadLookPitchDep()); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + lua_pushnumber(L, playersao->getRadLookPitchDep()); return 1; } @@ -1171,34 +1067,37 @@ int ObjectRef::l_get_look_yaw(lua_State *L) "Deprecated call to get_look_yaw, use get_look_horizontal instead"); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - lua_pushnumber(L, co->getRadYawDep()); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + lua_pushnumber(L, playersao->getRadYawDep()); return 1; } -// get_look_pitch2(self) +// get_look_vertical(self) int ObjectRef::l_get_look_vertical(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - lua_pushnumber(L, co->getRadLookPitch()); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + lua_pushnumber(L, playersao->getRadLookPitch()); return 1; } -// get_look_yaw2(self) +// get_look_horizontal(self) int ObjectRef::l_get_look_horizontal(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - lua_pushnumber(L, co->getRadRotation().Y); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + lua_pushnumber(L, playersao->getRadRotation().Y); return 1; } @@ -1207,11 +1106,13 @@ int ObjectRef::l_set_look_vertical(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + float pitch = readParam(L, 2) * core::RADTODEG; - // Do it - co->setLookPitchAndSend(pitch); + + playersao->setLookPitchAndSend(pitch); return 1; } @@ -1220,11 +1121,13 @@ int ObjectRef::l_set_look_horizontal(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + float yaw = readParam(L, 2) * core::RADTODEG; - // Do it - co->setPlayerYawAndSend(yaw); + + playersao->setPlayerYawAndSend(yaw); return 1; } @@ -1238,11 +1141,13 @@ int ObjectRef::l_set_look_pitch(lua_State *L) "Deprecated call to set_look_pitch, use set_look_vertical instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + float pitch = readParam(L, 2) * core::RADTODEG; - // Do it - co->setLookPitchAndSend(pitch); + + playersao->setLookPitchAndSend(pitch); return 1; } @@ -1256,30 +1161,32 @@ int ObjectRef::l_set_look_yaw(lua_State *L) "Deprecated call to set_look_yaw, use set_look_horizontal instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + float yaw = readParam(L, 2) * core::RADTODEG; - // Do it - co->setPlayerYawAndSend(yaw); + + playersao->setPlayerYawAndSend(yaw); return 1; } -// set_fov(self, degrees[, is_multiplier, transition_time]) +// set_fov(self, degrees, is_multiplier, transition_time) int ObjectRef::l_set_fov(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; - player->setFov({ - static_cast(luaL_checknumber(L, 2)), - readParam(L, 3, false), - lua_isnumber(L, 4) ? static_cast(luaL_checknumber(L, 4)) : 0.0f - }); - getServer(L)->SendPlayerFov(player->getPeerId()); + float degrees = static_cast(luaL_checknumber(L, 2)); + bool is_multiplier = readParam(L, 3, false); + float transition_time = lua_isnumber(L, 4) ? + static_cast(luaL_checknumber(L, 4)) : 0.0f; + player->setFov({degrees, is_multiplier, transition_time}); + getServer(L)->SendPlayerFov(player->getPeerId()); return 0; } @@ -1289,14 +1196,14 @@ int ObjectRef::l_get_fov(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; PlayerFovSpec fov_spec = player->getFov(); + lua_pushnumber(L, fov_spec.fov); lua_pushboolean(L, fov_spec.is_multiplier); lua_pushnumber(L, fov_spec.transition_time); - return 3; } @@ -1305,11 +1212,13 @@ int ObjectRef::l_set_breath(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - u16 breath = luaL_checknumber(L, 2); - co->setBreath(breath); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + u16 breath = luaL_checknumber(L, 2); + + playersao->setBreath(breath); return 0; } @@ -1318,11 +1227,13 @@ int ObjectRef::l_get_breath(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - u16 breath = co->getBreath(); - lua_pushinteger (L, breath); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + u16 breath = playersao->getBreath(); + + lua_pushinteger(L, breath); return 1; } @@ -1333,16 +1244,16 @@ int ObjectRef::l_set_attribute(lua_State *L) "Deprecated call to set_attribute, use MetaDataRef methods instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) return 0; std::string attr = luaL_checkstring(L, 2); if (lua_isnil(L, 3)) { - co->getMeta().removeString(attr); + playersao->getMeta().removeString(attr); } else { std::string value = luaL_checkstring(L, 3); - co->getMeta().setString(attr, value); + playersao->getMeta().setString(attr, value); } return 1; } @@ -1354,14 +1265,14 @@ int ObjectRef::l_get_attribute(lua_State *L) "Deprecated call to get_attribute, use MetaDataRef methods instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) return 0; std::string attr = luaL_checkstring(L, 2); std::string value; - if (co->getMeta().getStringToRef(attr, value)) { + if (playersao->getMeta().getStringToRef(attr, value)) { lua_pushstring(L, value.c_str()); return 1; } @@ -1374,11 +1285,11 @@ int ObjectRef::l_get_attribute(lua_State *L) int ObjectRef::l_get_meta(lua_State *L) { ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) + PlayerSAO *playersao = getplayersao(ref); + if (playersao == nullptr) return 0; - PlayerMetaRef::create(L, &co->getMeta()); + PlayerMetaRef::create(L, &playersao->getMeta()); return 1; } @@ -1389,7 +1300,9 @@ int ObjectRef::l_set_inventory_formspec(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) return 0; + if (player == nullptr) + return 0; + std::string formspec = luaL_checkstring(L, 2); player->inventory_formspec = formspec; @@ -1404,9 +1317,11 @@ int ObjectRef::l_get_inventory_formspec(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) return 0; + if (player == nullptr) + return 0; std::string formspec = player->inventory_formspec; + lua_pushlstring(L, formspec.c_str(), formspec.size()); return 1; } @@ -1417,7 +1332,7 @@ int ObjectRef::l_set_formspec_prepend(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; std::string formspec = luaL_checkstring(L, 2); @@ -1428,16 +1343,17 @@ int ObjectRef::l_set_formspec_prepend(lua_State *L) return 1; } -// get_formspec_prepend(self) -> formspec +// get_formspec_prepend(self) int ObjectRef::l_get_formspec_prepend(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; std::string formspec = player->formspec_prepend; + lua_pushlstring(L, formspec.c_str(), formspec.size()); return 1; } @@ -1448,7 +1364,7 @@ int ObjectRef::l_get_player_control(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) { + if (player == nullptr) { lua_pushlstring(L, "", 0); return 1; } @@ -1489,22 +1405,73 @@ int ObjectRef::l_get_player_control_bits(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) { + if (player == nullptr) { lua_pushlstring(L, "", 0); return 1; } - // Do it + lua_pushnumber(L, player->keyPressed); return 1; } -// hud_add(self, form) +// set_physics_override(self, override_table) +int ObjectRef::l_set_physics_override(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + ObjectRef *ref = checkobject(L, 1); + PlayerSAO *playersao = (PlayerSAO *) getobject(ref); + if (playersao == nullptr) + return 0; + + luaL_checktype(L, 2, LUA_TTABLE); + playersao->m_physics_override_speed = getfloatfield_default( + L, 2, "speed", playersao->m_physics_override_speed); + playersao->m_physics_override_jump = getfloatfield_default( + L, 2, "jump", playersao->m_physics_override_jump); + playersao->m_physics_override_gravity = getfloatfield_default( + L, 2, "gravity", playersao->m_physics_override_gravity); + playersao->m_physics_override_sneak = getboolfield_default( + L, 2, "sneak", playersao->m_physics_override_sneak); + playersao->m_physics_override_sneak_glitch = getboolfield_default( + L, 2, "sneak_glitch", playersao->m_physics_override_sneak_glitch); + playersao->m_physics_override_new_move = getboolfield_default( + L, 2, "new_move", playersao->m_physics_override_new_move); + playersao->m_physics_override_sent = false; + return 0; +} + +// get_physics_override(self) +int ObjectRef::l_get_physics_override(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + ObjectRef *ref = checkobject(L, 1); + PlayerSAO *playersao = (PlayerSAO *)getobject(ref); + if (playersao == nullptr) + return 0; + + lua_newtable(L); + lua_pushnumber(L, playersao->m_physics_override_speed); + lua_setfield(L, -2, "speed"); + lua_pushnumber(L, playersao->m_physics_override_jump); + lua_setfield(L, -2, "jump"); + lua_pushnumber(L, playersao->m_physics_override_gravity); + lua_setfield(L, -2, "gravity"); + lua_pushboolean(L, playersao->m_physics_override_sneak); + lua_setfield(L, -2, "sneak"); + lua_pushboolean(L, playersao->m_physics_override_sneak_glitch); + lua_setfield(L, -2, "sneak_glitch"); + lua_pushboolean(L, playersao->m_physics_override_new_move); + lua_setfield(L, -2, "new_move"); + return 1; +} + +// hud_add(self, hud) int ObjectRef::l_hud_add(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; HudElement *elem = new HudElement; @@ -1526,12 +1493,10 @@ int ObjectRef::l_hud_remove(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - u32 id = -1; - if (!lua_isnil(L, 2)) - id = lua_tonumber(L, 2); + u32 id = luaL_checkint(L, 2); if (!getServer(L)->hudRemove(player, id)) return 0; @@ -1546,17 +1511,17 @@ int ObjectRef::l_hud_change(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - u32 id = lua_isnumber(L, 2) ? lua_tonumber(L, 2) : -1; + u32 id = luaL_checkint(L, 2); - HudElement *e = player->getHud(id); - if (!e) + HudElement *elem = player->getHud(id); + if (elem == nullptr) return 0; - void *value = NULL; - HudElementStat stat = read_hud_change(L, e, &value); + void *value = nullptr; + HudElementStat stat = read_hud_change(L, elem, &value); getServer(L)->hudChange(player, id, stat, value); @@ -1570,15 +1535,16 @@ int ObjectRef::l_hud_get(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - u32 id = lua_tonumber(L, -1); + u32 id = luaL_checkint(L, 2); - HudElement *e = player->getHud(id); - if (!e) + HudElement *elem = player->getHud(id); + if (elem == nullptr) return 0; - push_hud_element(L, e); + + push_hud_element(L, elem); return 1; } @@ -1588,7 +1554,7 @@ int ObjectRef::l_hud_set_flags(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; u32 flags = 0; @@ -1609,12 +1575,13 @@ int ObjectRef::l_hud_set_flags(lua_State *L) return 1; } +// hud_get_flags(self) int ObjectRef::l_hud_get_flags(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; lua_newtable(L); @@ -1632,7 +1599,6 @@ int ObjectRef::l_hud_get_flags(lua_State *L) lua_setfield(L, -2, "minimap"); lua_pushboolean(L, player->hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE); lua_setfield(L, -2, "minimap_radar"); - return 1; } @@ -1642,10 +1608,10 @@ int ObjectRef::l_hud_set_hotbar_itemcount(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - s32 hotbar_itemcount = lua_tonumber(L, 2); + s32 hotbar_itemcount = luaL_checkint(L, 2); if (!getServer(L)->hudSetHotbarItemcount(player, hotbar_itemcount)) return 0; @@ -1660,7 +1626,7 @@ int ObjectRef::l_hud_get_hotbar_itemcount(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; lua_pushnumber(L, player->getHotbarItemcount()); @@ -1673,7 +1639,7 @@ int ObjectRef::l_hud_set_hotbar_image(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; std::string name = readParam(L, 2); @@ -1688,10 +1654,11 @@ int ObjectRef::l_hud_get_hotbar_image(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; const std::string &name = player->getHotbarImage(); + lua_pushlstring(L, name.c_str(), name.size()); return 1; } @@ -1702,7 +1669,7 @@ int ObjectRef::l_hud_set_hotbar_selected_image(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; std::string name = readParam(L, 2); @@ -1717,44 +1684,45 @@ int ObjectRef::l_hud_get_hotbar_selected_image(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; const std::string &name = player->getHotbarSelectedImage(); + lua_pushlstring(L, name.c_str(), name.size()); return 1; } -// set_sky(self, {base_color=, type=, textures=, clouds=, sky_colors={}}) +// set_sky(self, sky_parameters) int ObjectRef::l_set_sky(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + SkyboxParams sky_params = player->getSkyParams(); bool is_colorspec = is_color_table(L, 2); - SkyboxParams skybox_params = player->getSkyParams(); if (lua_istable(L, 2) && !is_colorspec) { lua_getfield(L, 2, "base_color"); if (!lua_isnil(L, -1)) - read_color(L, -1, &skybox_params.bgcolor); + read_color(L, -1, &sky_params.bgcolor); lua_pop(L, 1); lua_getfield(L, 2, "type"); if (!lua_isnil(L, -1)) - skybox_params.type = luaL_checkstring(L, -1); + sky_params.type = luaL_checkstring(L, -1); lua_pop(L, 1); lua_getfield(L, 2, "textures"); - skybox_params.textures.clear(); - if (lua_istable(L, -1) && skybox_params.type == "skybox") { + sky_params.textures.clear(); + if (lua_istable(L, -1) && sky_params.type == "skybox") { lua_pushnil(L); while (lua_next(L, -2) != 0) { // Key is at index -2 and value at index -1 - skybox_params.textures.emplace_back(readParam(L, -1)); + sky_params.textures.emplace_back(readParam(L, -1)); // Removes the value, but keeps the key for iteration lua_pop(L, 1); } @@ -1767,56 +1735,56 @@ int ObjectRef::l_set_sky(lua_State *L) using "regular" or "plain" skybox modes as textures aren't needed. */ - if (skybox_params.textures.size() != 6 && skybox_params.textures.size() > 0) + if (sky_params.textures.size() != 6 && sky_params.textures.size() > 0) throw LuaError("Skybox expects 6 textures!"); - skybox_params.clouds = getboolfield_default(L, 2, - "clouds", skybox_params.clouds); + sky_params.clouds = getboolfield_default(L, 2, + "clouds", sky_params.clouds); lua_getfield(L, 2, "sky_color"); if (lua_istable(L, -1)) { lua_getfield(L, -1, "day_sky"); - read_color(L, -1, &skybox_params.sky_color.day_sky); + read_color(L, -1, &sky_params.sky_color.day_sky); lua_pop(L, 1); lua_getfield(L, -1, "day_horizon"); - read_color(L, -1, &skybox_params.sky_color.day_horizon); + read_color(L, -1, &sky_params.sky_color.day_horizon); lua_pop(L, 1); lua_getfield(L, -1, "dawn_sky"); - read_color(L, -1, &skybox_params.sky_color.dawn_sky); + read_color(L, -1, &sky_params.sky_color.dawn_sky); lua_pop(L, 1); lua_getfield(L, -1, "dawn_horizon"); - read_color(L, -1, &skybox_params.sky_color.dawn_horizon); + read_color(L, -1, &sky_params.sky_color.dawn_horizon); lua_pop(L, 1); lua_getfield(L, -1, "night_sky"); - read_color(L, -1, &skybox_params.sky_color.night_sky); + read_color(L, -1, &sky_params.sky_color.night_sky); lua_pop(L, 1); lua_getfield(L, -1, "night_horizon"); - read_color(L, -1, &skybox_params.sky_color.night_horizon); + read_color(L, -1, &sky_params.sky_color.night_horizon); lua_pop(L, 1); lua_getfield(L, -1, "indoors"); - read_color(L, -1, &skybox_params.sky_color.indoors); + read_color(L, -1, &sky_params.sky_color.indoors); lua_pop(L, 1); // Prevent flickering clouds at dawn/dusk: - skybox_params.fog_sun_tint = video::SColor(255, 255, 255, 255); + sky_params.fog_sun_tint = video::SColor(255, 255, 255, 255); lua_getfield(L, -1, "fog_sun_tint"); - read_color(L, -1, &skybox_params.fog_sun_tint); + read_color(L, -1, &sky_params.fog_sun_tint); lua_pop(L, 1); - skybox_params.fog_moon_tint = video::SColor(255, 255, 255, 255); + sky_params.fog_moon_tint = video::SColor(255, 255, 255, 255); lua_getfield(L, -1, "fog_moon_tint"); - read_color(L, -1, &skybox_params.fog_moon_tint); + read_color(L, -1, &sky_params.fog_moon_tint); lua_pop(L, 1); lua_getfield(L, -1, "fog_tint_type"); if (!lua_isnil(L, -1)) - skybox_params.fog_tint_type = luaL_checkstring(L, -1); + sky_params.fog_tint_type = luaL_checkstring(L, -1); lua_pop(L, 1); // Because we need to leave the "sky_color" table. @@ -1832,14 +1800,14 @@ int ObjectRef::l_set_sky(lua_State *L) StarParams star_params = player->getStarParams(); // Prevent erroneous background colors - skybox_params.bgcolor = video::SColor(255, 255, 255, 255); - read_color(L, 2, &skybox_params.bgcolor); + sky_params.bgcolor = video::SColor(255, 255, 255, 255); + read_color(L, 2, &sky_params.bgcolor); - skybox_params.type = luaL_checkstring(L, 3); + sky_params.type = luaL_checkstring(L, 3); // Preserve old behaviour of the sun, moon and stars // when using the old set_sky call. - if (skybox_params.type == "regular") { + if (sky_params.type == "regular") { sun_params.visible = true; sun_params.sunrise_visible = true; moon_params.visible = true; @@ -1851,31 +1819,31 @@ int ObjectRef::l_set_sky(lua_State *L) star_params.visible = false; } - skybox_params.textures.clear(); + sky_params.textures.clear(); if (lua_istable(L, 4)) { lua_pushnil(L); while (lua_next(L, 4) != 0) { // Key at index -2, and value at index -1 if (lua_isstring(L, -1)) - skybox_params.textures.emplace_back(readParam(L, -1)); + sky_params.textures.emplace_back(readParam(L, -1)); else - skybox_params.textures.emplace_back(""); + sky_params.textures.emplace_back(""); // Remove the value, keep the key for the next iteration lua_pop(L, 1); } } - if (skybox_params.type == "skybox" && skybox_params.textures.size() != 6) + if (sky_params.type == "skybox" && sky_params.textures.size() != 6) throw LuaError("Skybox expects 6 textures."); - skybox_params.clouds = true; + sky_params.clouds = true; if (lua_isboolean(L, 5)) - skybox_params.clouds = readParam(L, 5); + sky_params.clouds = readParam(L, 5); getServer(L)->setSun(player, sun_params); getServer(L)->setMoon(player, moon_params); getServer(L)->setStars(player, star_params); } - getServer(L)->setSky(player, skybox_params); + getServer(L)->setSky(player, sky_params); lua_pushboolean(L, true); return 1; } @@ -1886,18 +1854,17 @@ int ObjectRef::l_get_sky(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - - if (!player) + if (player == nullptr) return 0; - SkyboxParams skybox_params; - skybox_params = player->getSkyParams(); + + SkyboxParams skybox_params = player->getSkyParams(); push_ARGB8(L, skybox_params.bgcolor); lua_pushlstring(L, skybox_params.type.c_str(), skybox_params.type.size()); lua_newtable(L); s16 i = 1; - for (const std::string& texture : skybox_params.textures) { + for (const std::string &texture : skybox_params.textures) { lua_pushlstring(L, texture.c_str(), texture.size()); lua_rawseti(L, -2, i++); } @@ -1911,11 +1878,10 @@ int ObjectRef::l_get_sky_color(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - - if (!player) + if (player == nullptr) return 0; - const SkyboxParams& skybox_params = player->getSkyParams(); + const SkyboxParams &skybox_params = player->getSkyParams(); lua_newtable(L); if (skybox_params.type == "regular") { @@ -1943,18 +1909,16 @@ int ObjectRef::l_get_sky_color(lua_State *L) return 1; } -// set_sun(self, {visible, texture=, tonemap=, sunrise=, rotation=, scale=}) +// set_sun(self, sun_parameters) int ObjectRef::l_set_sun(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) - return 0; - - if (!lua_istable(L, 2)) + if (player == nullptr) return 0; + luaL_checktype(L, 2, LUA_TTABLE); SunParams sun_params = player->getSunParams(); sun_params.visible = getboolfield_default(L, 2, @@ -1981,8 +1945,9 @@ int ObjectRef::l_get_sun(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + const SunParams &sun_params = player->getSunParams(); lua_newtable(L); @@ -1998,21 +1963,19 @@ int ObjectRef::l_get_sun(lua_State *L) lua_setfield(L, -2, "sunrise_visible"); lua_pushnumber(L, sun_params.scale); lua_setfield(L, -2, "scale"); - return 1; } -// set_moon(self, {visible, texture=, tonemap=, sunrise=, rotation=, scale=}) +// set_moon(self, moon_parameters) int ObjectRef::l_set_moon(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) - return 0; - if (!lua_istable(L, 2)) + if (player == nullptr) return 0; + luaL_checktype(L, 2, LUA_TTABLE); MoonParams moon_params = player->getMoonParams(); moon_params.visible = getboolfield_default(L, 2, @@ -2035,8 +1998,9 @@ int ObjectRef::l_get_moon(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + const MoonParams &moon_params = player->getMoonParams(); lua_newtable(L); @@ -2048,21 +2012,19 @@ int ObjectRef::l_get_moon(lua_State *L) lua_setfield(L, -2, "tonemap"); lua_pushnumber(L, moon_params.scale); lua_setfield(L, -2, "scale"); - return 1; } -// set_stars(self, {visible, count=, starcolor=, rotation=, scale=}) +// set_stars(self, star_parameters) int ObjectRef::l_set_stars(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) - return 0; - if (!lua_istable(L, 2)) + if (player == nullptr) return 0; + luaL_checktype(L, 2, LUA_TTABLE); StarParams star_params = player->getStarParams(); star_params.visible = getboolfield_default(L, 2, @@ -2089,8 +2051,9 @@ int ObjectRef::l_get_stars(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + const StarParams &star_params = player->getStarParams(); lua_newtable(L); @@ -2102,21 +2065,19 @@ int ObjectRef::l_get_stars(lua_State *L) lua_setfield(L, -2, "star_color"); lua_pushnumber(L, star_params.scale); lua_setfield(L, -2, "scale"); - return 1; } -// set_clouds(self, {density=, color=, ambient=, height=, thickness=, speed=}) +// set_clouds(self, cloud_parameters) int ObjectRef::l_set_clouds(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) - return 0; - if (!lua_istable(L, 2)) + if (player == nullptr) return 0; + luaL_checktype(L, 2, LUA_TTABLE); CloudParams cloud_params = player->getCloudParams(); cloud_params.density = getfloatfield_default(L, 2, "density", cloud_params.density); @@ -2152,8 +2113,9 @@ int ObjectRef::l_get_clouds(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + const CloudParams &cloud_params = player->getCloudParams(); lua_newtable(L); @@ -2173,25 +2135,27 @@ int ObjectRef::l_get_clouds(lua_State *L) lua_pushnumber(L, cloud_params.speed.Y); lua_setfield(L, -2, "y"); lua_setfield(L, -2, "speed"); - return 1; } -// override_day_night_ratio(self, brightness=0...1) +// override_day_night_ratio(self, ratio) int ObjectRef::l_override_day_night_ratio(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; bool do_override = false; float ratio = 0.0f; + if (!lua_isnil(L, 2)) { do_override = true; ratio = readParam(L, 2); + luaL_argcheck(L, ratio >= 0.0f && ratio <= 1.0f, 1, + "value must be between 0 and 1"); } getServer(L)->overrideDayNightRatio(player, do_override, ratio); @@ -2205,7 +2169,7 @@ int ObjectRef::l_get_day_night_ratio(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; bool do_override; @@ -2220,26 +2184,18 @@ int ObjectRef::l_get_day_night_ratio(lua_State *L) return 1; } -// set_minimap_modes(self, modes, modeindex) +// set_minimap_modes(self, modes, selected_mode) int ObjectRef::l_set_minimap_modes(lua_State *L) { NO_MAP_LOCK_REQUIRED; - - // Arg 1 should be a player ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - // Arg 2 should be a table (of tables) - if (!lua_istable(L, 2)) { - return 0; - } - - // Arg 3 should be a number - s16 wantedmode = lua_tonumber(L, 3); - + luaL_checktype(L, 2, LUA_TTABLE); std::vector modes; + s16 selected_mode = luaL_checkint(L, 3); lua_pushnil(L); while (lua_next(L, 2) != 0) { @@ -2277,31 +2233,28 @@ int ObjectRef::l_set_minimap_modes(lua_State *L) } lua_pop(L, 1); // Remove key - getServer(L)->SendMinimapModes(player->getPeerId(), modes, wantedmode); + getServer(L)->SendMinimapModes(player->getPeerId(), modes, selected_mode); return 0; } ObjectRef::ObjectRef(ServerActiveObject *object): m_object(object) -{ - //infostream<<"ObjectRef created for id="<getId()< formspec + // get_inventory_formspec(self) static int l_get_inventory_formspec(lua_State *L); // set_formspec_prepend(self, formspec) static int l_set_formspec_prepend(lua_State *L); - // get_formspec_prepend(self) -> formspec + // get_formspec_prepend(self) static int l_get_formspec_prepend(lua_State *L); // get_player_control(self) @@ -321,7 +313,7 @@ private: // hud_get_hotbar_selected_image(self) static int l_hud_get_hotbar_selected_image(lua_State *L); - // set_sky({base_color=, type=, textures=, clouds=, sky_colors={}}) + // set_sky(self, sky_parameters) static int l_set_sky(lua_State *L); // get_sky(self) @@ -330,25 +322,25 @@ private: // get_sky_color(self) static int l_get_sky_color(lua_State* L); - // set_sun(self, {visible, texture=, tonemap=, sunrise=, rotation=, scale=}) + // set_sun(self, sun_parameters) static int l_set_sun(lua_State *L); // get_sun(self) static int l_get_sun(lua_State *L); - // set_moon(self, {visible, texture=, tonemap=, rotation, scale=}) + // set_moon(self, moon_parameters) static int l_set_moon(lua_State *L); // get_moon(self) static int l_get_moon(lua_State *L); - // set_stars(self, {visible, count=, starcolor=, rotation, scale=}) + // set_stars(self, star_parameters) static int l_set_stars(lua_State *L); // get_stars(self) static int l_get_stars(lua_State *L); - // set_clouds(self, {density=, color=, ambient=, height=, thickness=, speed=}) + // set_clouds(self, cloud_parameters) static int l_set_clouds(lua_State *L); // get_clouds(self) @@ -360,13 +352,13 @@ private: // get_day_night_ratio(self) static int l_get_day_night_ratio(lua_State *L); - // set_local_animation(self, {stand/idle}, {walk}, {dig}, {walk+dig}, frame_speed) + // set_local_animation(self, idle, walk, dig, walk_while_dig, frame_speed) static int l_set_local_animation(lua_State *L); // get_local_animation(self) static int l_get_local_animation(lua_State *L); - // set_eye_offset(self, v3f first pv, v3f third pv) + // set_eye_offset(self, firstperson, thirdperson) static int l_set_eye_offset(lua_State *L); // get_eye_offset(self) From 707c8c1e95d8db2d84909e7957b4dc9138e05599 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Sun, 25 Oct 2020 20:01:03 +0300 Subject: [PATCH 249/624] Shaders for Android (GLES 2) (#10506) Shader support for OpenGL ES 2 devices (Android) Co-authored-by: sfan5 --- build/android/app/build.gradle | 5 +- builtin/mainmenu/tab_settings.lua | 11 +- builtin/settingtypes.txt | 4 +- .../3d_interlaced_merge/opengl_fragment.glsl | 4 +- .../3d_interlaced_merge/opengl_vertex.glsl | 7 +- .../default_shader/opengl_fragment.glsl | 4 +- .../shaders/default_shader/opengl_vertex.glsl | 8 +- .../minimap_shader/opengl_fragment.glsl | 7 +- .../shaders/minimap_shader/opengl_vertex.glsl | 10 +- .../shaders/nodes_shader/opengl_fragment.glsl | 13 +- .../shaders/nodes_shader/opengl_vertex.glsl | 42 ++-- .../object_shader/opengl_fragment.glsl | 11 +- .../shaders/object_shader/opengl_vertex.glsl | 25 +-- .../selection_shader/opengl_fragment.glsl | 7 +- .../selection_shader/opengl_vertex.glsl | 9 +- games/devtest/mods/basenodes/init.lua | 4 + src/client/shader.cpp | 182 +++++++++++++----- 17 files changed, 233 insertions(+), 120 deletions(-) diff --git a/build/android/app/build.gradle b/build/android/app/build.gradle index 812726030..fccb7b3b4 100644 --- a/build/android/app/build.gradle +++ b/build/android/app/build.gradle @@ -64,10 +64,9 @@ task prepareAssets() { copy { from "${projRoot}/builtin" into "${assetsFolder}/builtin" } - /*copy { - // ToDo: fix Minetest shaders that currently don't work with OpenGL ES + copy { from "${projRoot}/client/shaders" into "${assetsFolder}/client/shaders" - }*/ + } copy { from "../native/deps/Android/Irrlicht/shaders" into "${assetsFolder}/client/shaders/Irrlicht" } diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua index 8a7445394..29744048a 100644 --- a/builtin/mainmenu/tab_settings.lua +++ b/builtin/mainmenu/tab_settings.lua @@ -154,15 +154,18 @@ local function formspec(tabview, name, tabdata) "box[8,0;3.75,4.5;#999999]" local video_driver = core.settings:get("video_driver") - local shaders_supported = video_driver == "opengl" - local shaders_enabled = false - if shaders_supported then - shaders_enabled = core.settings:get_bool("enable_shaders") + local shaders_enabled = core.settings:get_bool("enable_shaders") + if video_driver == "opengl" then tab_string = tab_string .. "checkbox[8.25,0;cb_shaders;" .. fgettext("Shaders") .. ";" .. tostring(shaders_enabled) .. "]" + elseif video_driver == "ogles2" then + tab_string = tab_string .. + "checkbox[8.25,0;cb_shaders;" .. fgettext("Shaders (experimental)") .. ";" + .. tostring(shaders_enabled) .. "]" else core.settings:set_bool("enable_shaders", false) + shaders_enabled = false tab_string = tab_string .. "label[8.38,0.2;" .. core.colorize("#888888", fgettext("Shaders (unavailable)")) .. "]" diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 27f375693..36446f808 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -658,8 +658,8 @@ texture_path (Texture path) path # The rendering back-end for Irrlicht. # A restart is required after changing this. # Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise. -# On other platforms, OpenGL is recommended, and it’s the only driver with -# shader support currently. +# On other platforms, OpenGL is recommended. +# Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental) video_driver (Video driver) enum opengl null,software,burningsvideo,direct3d8,direct3d9,opengl,ogles1,ogles2 # Radius of cloud area stated in number of 64 node cloud squares. diff --git a/client/shaders/3d_interlaced_merge/opengl_fragment.glsl b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl index 25945ad7f..7cba61b39 100644 --- a/client/shaders/3d_interlaced_merge/opengl_fragment.glsl +++ b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl @@ -6,9 +6,11 @@ uniform sampler2D textureFlags; #define rightImage normalTexture #define maskImage textureFlags +varying mediump vec2 varTexCoord; + void main(void) { - vec2 uv = gl_TexCoord[0].st; + vec2 uv = varTexCoord.st; vec4 left = texture2D(leftImage, uv).rgba; vec4 right = texture2D(rightImage, uv).rgba; vec4 mask = texture2D(maskImage, uv).rgba; diff --git a/client/shaders/3d_interlaced_merge/opengl_vertex.glsl b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl index 4e0b2b125..860049481 100644 --- a/client/shaders/3d_interlaced_merge/opengl_vertex.glsl +++ b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl @@ -1,6 +1,7 @@ +varying mediump vec2 varTexCoord; + void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; - gl_Position = gl_Vertex; - gl_FrontColor = gl_BackColor = gl_Color; + varTexCoord = inTexCoord0; + gl_Position = inVertexPosition; } diff --git a/client/shaders/default_shader/opengl_fragment.glsl b/client/shaders/default_shader/opengl_fragment.glsl index 925ab6e1d..5018ac6ea 100644 --- a/client/shaders/default_shader/opengl_fragment.glsl +++ b/client/shaders/default_shader/opengl_fragment.glsl @@ -1,4 +1,6 @@ +varying lowp vec4 varColor; + void main(void) { - gl_FragColor = gl_Color; + gl_FragColor = varColor; } diff --git a/client/shaders/default_shader/opengl_vertex.glsl b/client/shaders/default_shader/opengl_vertex.glsl index d0b16c8b0..d95a3c2d3 100644 --- a/client/shaders/default_shader/opengl_vertex.glsl +++ b/client/shaders/default_shader/opengl_vertex.glsl @@ -1,9 +1,7 @@ -uniform mat4 mWorldViewProj; +varying lowp vec4 varColor; void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; - gl_Position = mWorldViewProj * gl_Vertex; - - gl_FrontColor = gl_BackColor = gl_Color; + gl_Position = mWorldViewProj * inVertexPosition; + varColor = inVertexColor; } diff --git a/client/shaders/minimap_shader/opengl_fragment.glsl b/client/shaders/minimap_shader/opengl_fragment.glsl index fa4f9cb1a..cef359e8a 100644 --- a/client/shaders/minimap_shader/opengl_fragment.glsl +++ b/client/shaders/minimap_shader/opengl_fragment.glsl @@ -2,9 +2,12 @@ uniform sampler2D baseTexture; uniform sampler2D normalTexture; uniform vec3 yawVec; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; + void main (void) { - vec2 uv = gl_TexCoord[0].st; + vec2 uv = varTexCoord.st; //texture sampling rate const float step = 1.0 / 256.0; @@ -27,6 +30,6 @@ void main (void) vec3 color = (1.1 * diffuse + 0.05 * height + 0.5 * specular) * base.rgb; vec4 col = vec4(color.rgb, base.a); - col *= gl_Color; + col *= varColor; gl_FragColor = vec4(col.rgb, base.a); } diff --git a/client/shaders/minimap_shader/opengl_vertex.glsl b/client/shaders/minimap_shader/opengl_vertex.glsl index 88f9356d5..1a9491805 100644 --- a/client/shaders/minimap_shader/opengl_vertex.glsl +++ b/client/shaders/minimap_shader/opengl_vertex.glsl @@ -1,9 +1,11 @@ -uniform mat4 mWorldViewProj; uniform mat4 mWorld; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; + void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; - gl_Position = mWorldViewProj * gl_Vertex; - gl_FrontColor = gl_BackColor = gl_Color; + varTexCoord = inTexCoord0.st; + gl_Position = mWorldViewProj * inVertexPosition; + varColor = inVertexColor; } diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl index 36d47d1f5..82c87073a 100644 --- a/client/shaders/nodes_shader/opengl_fragment.glsl +++ b/client/shaders/nodes_shader/opengl_fragment.glsl @@ -15,11 +15,12 @@ varying vec3 vPosition; // cameraOffset + worldPosition (for large coordinates the limits of float // precision must be considered). varying vec3 worldPosition; - +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; varying vec3 eyeVec; const float fogStart = FOG_START; -const float fogShadingParameter = 1 / ( 1 - fogStart); +const float fogShadingParameter = 1.0 / ( 1.0 - fogStart); #ifdef ENABLE_TONE_MAPPING @@ -56,13 +57,13 @@ vec4 applyToneMapping(vec4 color) void main(void) { vec3 color; - vec2 uv = gl_TexCoord[0].st; + vec2 uv = varTexCoord.st; vec4 base = texture2D(baseTexture, uv).rgba; - #ifdef USE_DISCARD // If alpha is zero, we can just discard the pixel. This fixes transparency - // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa. + // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa, + // and also on GLES 2, where GL_ALPHA_TEST is missing entirely. if (base.a == 0.0) { discard; } @@ -70,7 +71,7 @@ void main(void) color = base.rgb; - vec4 col = vec4(color.rgb * gl_Color.rgb, 1.0); + vec4 col = vec4(color.rgb * varColor.rgb, 1.0); #ifdef ENABLE_TONE_MAPPING col = applyToneMapping(col); diff --git a/client/shaders/nodes_shader/opengl_vertex.glsl b/client/shaders/nodes_shader/opengl_vertex.glsl index 56bff09a8..cb344f6e6 100644 --- a/client/shaders/nodes_shader/opengl_vertex.glsl +++ b/client/shaders/nodes_shader/opengl_vertex.glsl @@ -1,4 +1,3 @@ -uniform mat4 mWorldViewProj; uniform mat4 mWorld; // Color of the light emitted by the sun. @@ -16,7 +15,8 @@ varying vec3 vPosition; // cameraOffset + worldPosition (for large coordinates the limits of float // precision must be considered). varying vec3 worldPosition; - +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; varying vec3 eyeVec; // Color of the light emitted by the light sources. @@ -81,13 +81,13 @@ float snoise(vec3 p) void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; + varTexCoord = inTexCoord0.st; float disp_x; float disp_z; // OpenGL < 4.3 does not support continued preprocessor lines #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES && ENABLE_WAVING_LEAVES) || (MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS) - vec4 pos2 = mWorld * gl_Vertex; + vec4 pos2 = mWorld * inVertexPosition; float tOffset = (pos2.x + pos2.y) * 0.001 + pos2.z * 0.002; disp_x = (smoothTriangleWave(animationTimer * 23.0 + tOffset) + smoothTriangleWave(animationTimer * 11.0 + tOffset)) * 0.4; @@ -96,43 +96,43 @@ void main(void) smoothTriangleWave(animationTimer * 13.0 + tOffset)) * 0.5; #endif - worldPosition = (mWorld * gl_Vertex).xyz; + worldPosition = (mWorld * inVertexPosition).xyz; // OpenGL < 4.3 does not support continued preprocessor lines #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_OPAQUE || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_BASIC) && ENABLE_WAVING_WATER // Generate waves with Perlin-type noise. // The constants are calibrated such that they roughly // correspond to the old sine waves. - vec4 pos = gl_Vertex; + vec4 pos = inVertexPosition; vec3 wavePos = worldPosition + cameraOffset; // The waves are slightly compressed along the z-axis to get // wave-fronts along the x-axis. - wavePos.x /= WATER_WAVE_LENGTH * 3; - wavePos.z /= WATER_WAVE_LENGTH * 2; - wavePos.z += animationTimer * WATER_WAVE_SPEED * 10; - pos.y += (snoise(wavePos) - 1) * WATER_WAVE_HEIGHT * 5; + wavePos.x /= WATER_WAVE_LENGTH * 3.0; + wavePos.z /= WATER_WAVE_LENGTH * 2.0; + wavePos.z += animationTimer * WATER_WAVE_SPEED * 10.0; + pos.y += (snoise(wavePos) - 1.0) * WATER_WAVE_HEIGHT * 5.0; gl_Position = mWorldViewProj * pos; #elif MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES && ENABLE_WAVING_LEAVES - vec4 pos = gl_Vertex; + vec4 pos = inVertexPosition; pos.x += disp_x; pos.y += disp_z * 0.1; pos.z += disp_z; gl_Position = mWorldViewProj * pos; #elif MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS - vec4 pos = gl_Vertex; - if (gl_TexCoord[0].y < 0.05) { + vec4 pos = inVertexPosition; + if (varTexCoord.y < 0.05) { pos.x += disp_x; pos.z += disp_z; } gl_Position = mWorldViewProj * pos; #else - gl_Position = mWorldViewProj * gl_Vertex; + gl_Position = mWorldViewProj * inVertexPosition; #endif vPosition = gl_Position.xyz; - eyeVec = -(gl_ModelViewMatrix * gl_Vertex).xyz; + eyeVec = -(mWorldView * inVertexPosition).xyz; // Calculate color. // Red, green and blue components are pre-multiplied with @@ -141,16 +141,16 @@ void main(void) // The pre-baked colors are halved to prevent overflow. vec4 color; // The alpha gives the ratio of sunlight in the incoming light. - float nightRatio = 1 - gl_Color.a; - color.rgb = gl_Color.rgb * (gl_Color.a * dayLight.rgb + - nightRatio * artificialLight.rgb) * 2; - color.a = 1; + float nightRatio = 1.0 - inVertexColor.a; + color.rgb = inVertexColor.rgb * (inVertexColor.a * dayLight.rgb + + nightRatio * artificialLight.rgb) * 2.0; + color.a = 1.0; // Emphase blue a bit in darker places // See C++ implementation in mapblock_mesh.cpp final_color_blend() - float brightness = (color.r + color.g + color.b) / 3; + float brightness = (color.r + color.g + color.b) / 3.0; color.b += max(0.0, 0.021 - abs(0.2 * brightness - 0.021) + 0.07 * brightness); - gl_FrontColor = gl_BackColor = clamp(color, 0.0, 1.0); + varColor = clamp(color, 0.0, 1.0); } diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl index 86d5c1c92..7ac182a63 100644 --- a/client/shaders/object_shader/opengl_fragment.glsl +++ b/client/shaders/object_shader/opengl_fragment.glsl @@ -8,6 +8,8 @@ uniform vec3 eyePosition; varying vec3 vNormal; varying vec3 vPosition; varying vec3 worldPosition; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; varying vec3 eyeVec; varying float vIDiff; @@ -15,7 +17,7 @@ varying float vIDiff; const float e = 2.718281828459; const float BS = 10.0; const float fogStart = FOG_START; -const float fogShadingParameter = 1 / ( 1 - fogStart); +const float fogShadingParameter = 1.0 / (1.0 - fogStart); #ifdef ENABLE_TONE_MAPPING @@ -52,13 +54,14 @@ vec4 applyToneMapping(vec4 color) void main(void) { vec3 color; - vec2 uv = gl_TexCoord[0].st; + vec2 uv = varTexCoord.st; vec4 base = texture2D(baseTexture, uv).rgba; #ifdef USE_DISCARD // If alpha is zero, we can just discard the pixel. This fixes transparency - // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa. + // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa, + // and also on GLES 2, where GL_ALPHA_TEST is missing entirely. if (base.a == 0.0) { discard; } @@ -68,7 +71,7 @@ void main(void) vec4 col = vec4(color.rgb, base.a); - col.rgb *= gl_Color.rgb; + col.rgb *= varColor.rgb; col.rgb *= emissiveColor.rgb * vIDiff; diff --git a/client/shaders/object_shader/opengl_vertex.glsl b/client/shaders/object_shader/opengl_vertex.glsl index f8c1cd932..e44984dc8 100644 --- a/client/shaders/object_shader/opengl_vertex.glsl +++ b/client/shaders/object_shader/opengl_vertex.glsl @@ -1,4 +1,3 @@ -uniform mat4 mWorldViewProj; uniform mat4 mWorld; uniform vec3 eyePosition; @@ -7,6 +6,8 @@ uniform float animationTimer; varying vec3 vNormal; varying vec3 vPosition; varying vec3 worldPosition; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; varying vec3 eyeVec; varying float vIDiff; @@ -18,31 +19,31 @@ float directional_ambient(vec3 normal) { vec3 v = normal * normal; - if (normal.y < 0) - return dot(v, vec3(0.670820f, 0.447213f, 0.836660f)); + if (normal.y < 0.0) + return dot(v, vec3(0.670820, 0.447213, 0.836660)); - return dot(v, vec3(0.670820f, 1.000000f, 0.836660f)); + return dot(v, vec3(0.670820, 1.000000, 0.836660)); } void main(void) { - gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; - gl_Position = mWorldViewProj * gl_Vertex; + varTexCoord = (mTexture * inTexCoord0).st; + gl_Position = mWorldViewProj * inVertexPosition; vPosition = gl_Position.xyz; - vNormal = gl_Normal; - worldPosition = (mWorld * gl_Vertex).xyz; - eyeVec = -(gl_ModelViewMatrix * gl_Vertex).xyz; + vNormal = inVertexNormal; + worldPosition = (mWorld * inVertexPosition).xyz; + eyeVec = -(mWorldView * inVertexPosition).xyz; #if (MATERIAL_TYPE == TILE_MATERIAL_PLAIN) || (MATERIAL_TYPE == TILE_MATERIAL_PLAIN_ALPHA) vIDiff = 1.0; #else // This is intentional comparison with zero without any margin. // If normal is not equal to zero exactly, then we assume it's a valid, just not normalized vector - vIDiff = length(gl_Normal) == 0.0 + vIDiff = length(inVertexNormal) == 0.0 ? 1.0 - : directional_ambient(normalize(gl_Normal)); + : directional_ambient(normalize(inVertexNormal)); #endif - gl_FrontColor = gl_BackColor = gl_Color; + varColor = inVertexColor; } diff --git a/client/shaders/selection_shader/opengl_fragment.glsl b/client/shaders/selection_shader/opengl_fragment.glsl index c679d0e12..35b1f8902 100644 --- a/client/shaders/selection_shader/opengl_fragment.glsl +++ b/client/shaders/selection_shader/opengl_fragment.glsl @@ -1,9 +1,12 @@ uniform sampler2D baseTexture; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; + void main(void) { - vec2 uv = gl_TexCoord[0].st; + vec2 uv = varTexCoord.st; vec4 color = texture2D(baseTexture, uv); - color.rgb *= gl_Color.rgb; + color.rgb *= varColor.rgb; gl_FragColor = color; } diff --git a/client/shaders/selection_shader/opengl_vertex.glsl b/client/shaders/selection_shader/opengl_vertex.glsl index d0b16c8b0..9ca87a9cf 100644 --- a/client/shaders/selection_shader/opengl_vertex.glsl +++ b/client/shaders/selection_shader/opengl_vertex.glsl @@ -1,9 +1,10 @@ -uniform mat4 mWorldViewProj; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; - gl_Position = mWorldViewProj * gl_Vertex; + varTexCoord = inTexCoord0.st; + gl_Position = mWorldViewProj * inVertexPosition; - gl_FrontColor = gl_BackColor = gl_Color; + varColor = inVertexColor; } diff --git a/games/devtest/mods/basenodes/init.lua b/games/devtest/mods/basenodes/init.lua index 7ffbadbea..0cb85d808 100644 --- a/games/devtest/mods/basenodes/init.lua +++ b/games/devtest/mods/basenodes/init.lua @@ -127,6 +127,7 @@ minetest.register_node("basenodes:water_source", { description = "Water Source".."\n".. "Drowning damage: 1", drawtype = "liquid", + waving = 3, tiles = {"default_water.png"}, special_tiles = { {name = "default_water.png", backface_culling = false}, @@ -152,6 +153,7 @@ minetest.register_node("basenodes:water_flowing", { description = "Flowing Water".."\n".. "Drowning damage: 1", drawtype = "flowingliquid", + waving = 3, tiles = {"default_water_flowing.png"}, special_tiles = { {name = "default_water_flowing.png", backface_culling = false}, @@ -178,6 +180,7 @@ minetest.register_node("basenodes:river_water_source", { description = "River Water Source".."\n".. "Drowning damage: 1", drawtype = "liquid", + waving = 3, tiles = { "default_river_water.png" }, special_tiles = { {name = "default_river_water.png", backface_culling = false}, @@ -205,6 +208,7 @@ minetest.register_node("basenodes:river_water_flowing", { description = "Flowing River Water".."\n".. "Drowning damage: 1", drawtype = "flowingliquid", + waving = 3, tiles = {"default_river_water_flowing.png"}, special_tiles = { {name = "default_river_water_flowing.png", backface_culling = false}, diff --git a/src/client/shader.cpp b/src/client/shader.cpp index e2eeb4ab0..f2aa00246 100644 --- a/src/client/shader.cpp +++ b/src/client/shader.cpp @@ -37,6 +37,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "log.h" #include "gamedef.h" #include "client/tile.h" +#include "config.h" #if ENABLE_GLES #ifdef _IRR_COMPILE_WITH_OGLES1_ @@ -230,11 +231,24 @@ class MainShaderConstantSetter : public IShaderConstantSetter { CachedVertexShaderSetting m_world_view_proj; CachedVertexShaderSetting m_world; +#if ENABLE_GLES + // Modelview matrix + CachedVertexShaderSetting m_world_view; + // Texture matrix + CachedVertexShaderSetting m_texture; + // Normal matrix + CachedVertexShaderSetting m_normal; +#endif public: MainShaderConstantSetter() : - m_world_view_proj("mWorldViewProj"), - m_world("mWorld") + m_world_view_proj("mWorldViewProj") + , m_world("mWorld") +#if ENABLE_GLES + , m_world_view("mWorldView") + , m_texture("mTexture") + , m_normal("mNormal") +#endif {} ~MainShaderConstantSetter() = default; @@ -244,16 +258,6 @@ public: video::IVideoDriver *driver = services->getVideoDriver(); sanity_check(driver); - // Set clip matrix - core::matrix4 worldViewProj; - worldViewProj = driver->getTransform(video::ETS_PROJECTION); - worldViewProj *= driver->getTransform(video::ETS_VIEW); - worldViewProj *= driver->getTransform(video::ETS_WORLD); - if (is_highlevel) - m_world_view_proj.set(*reinterpret_cast(worldViewProj.pointer()), services); - else - services->setVertexShaderConstant(worldViewProj.pointer(), 0, 4); - // Set world matrix core::matrix4 world = driver->getTransform(video::ETS_WORLD); if (is_highlevel) @@ -261,6 +265,35 @@ public: else services->setVertexShaderConstant(world.pointer(), 4, 4); + // Set clip matrix + core::matrix4 worldView; + worldView = driver->getTransform(video::ETS_VIEW); + worldView *= world; + core::matrix4 worldViewProj; + worldViewProj = driver->getTransform(video::ETS_PROJECTION); + worldViewProj *= worldView; + if (is_highlevel) + m_world_view_proj.set(*reinterpret_cast(worldViewProj.pointer()), services); + else + services->setVertexShaderConstant(worldViewProj.pointer(), 0, 4); + +#if ENABLE_GLES + if (is_highlevel) { + core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0); + m_world_view.set(*reinterpret_cast(worldView.pointer()), services); + m_texture.set(*reinterpret_cast(texture.pointer()), services); + + core::matrix4 normal; + worldView.getTransposed(normal); + sanity_check(normal.makeInverse()); + float m[9] = { + normal[0], normal[1], normal[2], + normal[4], normal[5], normal[6], + normal[8], normal[9], normal[10], + }; + m_normal.set(m, services); + } +#endif } }; @@ -620,15 +653,62 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp return shaderinfo; // Create shaders header - std::string shaders_header = "#version 120\n"; + bool use_gles = false; +#if ENABLE_GLES + use_gles = driver->getDriverType() == video::EDT_OGLES2; +#endif + std::string shaders_header, vertex_header, pixel_header; // geometry shaders aren’t supported in GLES<3 + if (use_gles) { + shaders_header = + "#version 100\n" + ; + vertex_header = R"( + uniform highp mat4 mWorldView; + uniform highp mat4 mWorldViewProj; + uniform mediump mat4 mTexture; + uniform mediump mat3 mNormal; + attribute highp vec4 inVertexPosition; + attribute lowp vec4 inVertexColor; + attribute mediump vec4 inTexCoord0; + attribute mediump vec3 inVertexNormal; + attribute mediump vec4 inVertexTangent; + attribute mediump vec4 inVertexBinormal; + )"; + pixel_header = R"( + precision mediump float; + )"; + } else { + shaders_header = R"( + #version 120 + #define lowp + #define mediump + #define highp + )"; + vertex_header = R"( + #define mWorldView gl_ModelViewMatrix + #define mWorldViewProj gl_ModelViewProjectionMatrix + #define mTexture (gl_TextureMatrix[0]) + #define mNormal gl_NormalMatrix + + #define inVertexPosition gl_Vertex + #define inVertexColor gl_Color + #define inTexCoord0 gl_MultiTexCoord0 + #define inVertexNormal gl_Normal + #define inVertexTangent gl_MultiTexCoord1 + #define inVertexBinormal gl_MultiTexCoord2 + )"; + } + + bool use_discard = use_gles; #ifdef __unix__ // For renderers that should use discard instead of GL_ALPHA_TEST const char* gl_renderer = (const char*)glGetString(GL_RENDERER); - if (strstr(gl_renderer, "GC7000")) { - shaders_header += "#define USE_DISCARD\n"; - } + if (strstr(gl_renderer, "GC7000")) + use_discard = true; #endif + if (use_discard && shaderinfo.base_material != video::EMT_SOLID) + shaders_header += "#define USE_DISCARD\n"; static const char* drawTypes[] = { "NDT_NORMAL", @@ -654,7 +734,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp shaders_header += "#define "; shaders_header += drawTypes[i]; shaders_header += " "; - shaders_header += itos(i); + shaders_header += std::to_string(i); shaders_header += "\n"; } @@ -677,27 +757,27 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp shaders_header += "#define "; shaders_header += materialTypes[i]; shaders_header += " "; - shaders_header += itos(i); + shaders_header += std::to_string(i); shaders_header += "\n"; } shaders_header += "#define MATERIAL_TYPE "; - shaders_header += itos(material_type); + shaders_header += std::to_string(material_type); shaders_header += "\n"; shaders_header += "#define DRAW_TYPE "; - shaders_header += itos(drawtype); + shaders_header += std::to_string(drawtype); shaders_header += "\n"; if (g_settings->getBool("enable_waving_water")){ shaders_header += "#define ENABLE_WAVING_WATER 1\n"; shaders_header += "#define WATER_WAVE_HEIGHT "; - shaders_header += ftos(g_settings->getFloat("water_wave_height")); + shaders_header += std::to_string(g_settings->getFloat("water_wave_height")); shaders_header += "\n"; shaders_header += "#define WATER_WAVE_LENGTH "; - shaders_header += ftos(g_settings->getFloat("water_wave_length")); + shaders_header += std::to_string(g_settings->getFloat("water_wave_length")); shaders_header += "\n"; shaders_header += "#define WATER_WAVE_SPEED "; - shaders_header += ftos(g_settings->getFloat("water_wave_speed")); + shaders_header += std::to_string(g_settings->getFloat("water_wave_speed")); shaders_header += "\n"; } else{ shaders_header += "#define ENABLE_WAVING_WATER 0\n"; @@ -719,7 +799,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp shaders_header += "#define ENABLE_TONE_MAPPING\n"; shaders_header += "#define FOG_START "; - shaders_header += ftos(rangelim(g_settings->getFloat("fog_start"), 0.0f, 0.99f)); + shaders_header += std::to_string(rangelim(g_settings->getFloat("fog_start"), 0.0f, 0.99f)); shaders_header += "\n"; // Call addHighLevelShaderMaterial() or addShaderMaterial() @@ -727,11 +807,11 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp const c8* pixel_program_ptr = 0; const c8* geometry_program_ptr = 0; if (!vertex_program.empty()) { - vertex_program = shaders_header + vertex_program; + vertex_program = shaders_header + vertex_header + vertex_program; vertex_program_ptr = vertex_program.c_str(); } if (!pixel_program.empty()) { - pixel_program = shaders_header + pixel_program; + pixel_program = shaders_header + pixel_header + pixel_program; pixel_program_ptr = pixel_program.c_str(); } if (!geometry_program.empty()) { @@ -813,27 +893,37 @@ void load_shaders(const std::string &name, SourceShaderCache *sourcecache, geometry_program = ""; is_highlevel = false; - if(enable_shaders){ - // Look for high level shaders - if(drivertype == video::EDT_DIRECT3D9){ - // Direct3D 9: HLSL - // (All shaders in one file) - vertex_program = sourcecache->getOrLoad(name, "d3d9.hlsl"); - pixel_program = vertex_program; - geometry_program = vertex_program; - } - else if(drivertype == video::EDT_OPENGL){ - // OpenGL: GLSL - vertex_program = sourcecache->getOrLoad(name, "opengl_vertex.glsl"); - pixel_program = sourcecache->getOrLoad(name, "opengl_fragment.glsl"); - geometry_program = sourcecache->getOrLoad(name, "opengl_geometry.glsl"); - } - if (!vertex_program.empty() || !pixel_program.empty() || !geometry_program.empty()){ - is_highlevel = true; - return; - } - } + if (!enable_shaders) + return; + // Look for high level shaders + switch (drivertype) { + case video::EDT_DIRECT3D9: + // Direct3D 9: HLSL + // (All shaders in one file) + vertex_program = sourcecache->getOrLoad(name, "d3d9.hlsl"); + pixel_program = vertex_program; + geometry_program = vertex_program; + break; + + case video::EDT_OPENGL: +#if ENABLE_GLES + case video::EDT_OGLES2: +#endif + // OpenGL: GLSL + vertex_program = sourcecache->getOrLoad(name, "opengl_vertex.glsl"); + pixel_program = sourcecache->getOrLoad(name, "opengl_fragment.glsl"); + geometry_program = sourcecache->getOrLoad(name, "opengl_geometry.glsl"); + break; + + default: + // e.g. OpenGL ES 1 (with no shader support) + break; + } + if (!vertex_program.empty() || !pixel_program.empty() || !geometry_program.empty()){ + is_highlevel = true; + return; + } } void dumpShaderProgram(std::ostream &output_stream, From 61a196378ff91411af3245504c5861da026b3b25 Mon Sep 17 00:00:00 2001 From: luk3yx Date: Mon, 26 Oct 2020 06:01:39 +1300 Subject: [PATCH 250/624] Fix CSMs on arm64 (#10553) --- src/script/cpp_api/s_security.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/script/cpp_api/s_security.cpp b/src/script/cpp_api/s_security.cpp index 2afa3a191..01333b941 100644 --- a/src/script/cpp_api/s_security.cpp +++ b/src/script/cpp_api/s_security.cpp @@ -629,7 +629,11 @@ int ScriptApiSecurity::sl_g_loadfile(lua_State *L) { #ifndef SERVER lua_rawgeti(L, LUA_REGISTRYINDEX, CUSTOM_RIDX_SCRIPTAPI); +#if INDIRECT_SCRIPTAPI_RIDX + ScriptApiBase *script = (ScriptApiBase *) *(void**)(lua_touserdata(L, -1)); +#else ScriptApiBase *script = (ScriptApiBase *) lua_touserdata(L, -1); +#endif lua_pop(L, 1); // Client implementation From 68cd93b8657c0c8cad0196e79fb63e3275322e38 Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 21 Oct 2020 14:46:04 -0700 Subject: [PATCH 251/624] Avoid resending near blocks unnecessarily. --- src/clientiface.cpp | 79 +++++++++++++++++++++------------------------ src/clientiface.h | 9 +++--- 2 files changed, 42 insertions(+), 46 deletions(-) diff --git a/src/clientiface.cpp b/src/clientiface.cpp index a01cba7e0..f5e32469b 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -138,26 +138,6 @@ void RemoteClient::GetNextBlocks ( camera_dir.rotateYZBy(sao->getLookPitch()); camera_dir.rotateXZBy(sao->getRotation().Y); - /*infostream<<"camera_dir=("<range_all ? "All" : itos(draw_control->wanted_range)) - << std::setprecision(3) - << " | RTT: " << client->getRTT() << "s"; + << std::setprecision(2) + << " | RTT: " << (client->getRTT() * 1000.0f) << "ms"; setStaticText(m_guitext, utf8_to_wide(os.str()).c_str()); m_guitext->setRelativePosition(core::rect(5, 5, screensize.X, From 2dff3dd03f7ba25f3fab7c360759ddbf93615668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= <34514239+appgurueu@users.noreply.github.com> Date: Thu, 29 Oct 2020 20:15:46 +0100 Subject: [PATCH 253/624] Player physics: Ensure larger dtime simulation steps (#10563) --- src/client/clientenvironment.cpp | 115 +++++++++++++------------------ 1 file changed, 46 insertions(+), 69 deletions(-) diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp index f831978a8..ea7be4200 100644 --- a/src/client/clientenvironment.cpp +++ b/src/client/clientenvironment.cpp @@ -183,84 +183,61 @@ void ClientEnvironment::step(float dtime) if(dtime > 0.5) dtime = 0.5; - f32 dtime_downcount = dtime; - /* Stuff that has a maximum time increment */ - u32 loopcount = 0; - do - { - loopcount++; + u32 steps = ceil(dtime / dtime_max_increment); + f32 dtime_part = dtime / steps; + for (; steps > 0; --steps) { + /* + Local player handling + */ - f32 dtime_part; - if(dtime_downcount > dtime_max_increment) - { - dtime_part = dtime_max_increment; - dtime_downcount -= dtime_part; - } - else - { - dtime_part = dtime_downcount; - /* - Setting this to 0 (no -=dtime_part) disables an infinite loop - when dtime_part is so small that dtime_downcount -= dtime_part - does nothing - */ - dtime_downcount = 0; + // Control local player + lplayer->applyControl(dtime_part, this); + + // Apply physics + if (!free_move && !is_climbing) { + // Gravity + v3f speed = lplayer->getSpeed(); + if (!lplayer->in_liquid) + speed.Y -= lplayer->movement_gravity * + lplayer->physics_override_gravity * dtime_part * 2.0f; + + // Liquid floating / sinking + if (lplayer->in_liquid && !lplayer->swimming_vertical && + !lplayer->swimming_pitch) + speed.Y -= lplayer->movement_liquid_sink * dtime_part * 2.0f; + + // Liquid resistance + if (lplayer->in_liquid_stable || lplayer->in_liquid) { + // How much the node's viscosity blocks movement, ranges + // between 0 and 1. Should match the scale at which viscosity + // increase affects other liquid attributes. + static const f32 viscosity_factor = 0.3f; + + v3f d_wanted = -speed / lplayer->movement_liquid_fluidity; + f32 dl = d_wanted.getLength(); + if (dl > lplayer->movement_liquid_fluidity_smooth) + dl = lplayer->movement_liquid_fluidity_smooth; + + dl *= (lplayer->liquid_viscosity * viscosity_factor) + + (1 - viscosity_factor); + v3f d = d_wanted.normalize() * (dl * dtime_part * 100.0f); + speed += d; + } + + lplayer->setSpeed(speed); } /* - Handle local player + Move the lplayer. + This also does collision detection. */ - - { - // Control local player - lplayer->applyControl(dtime_part, this); - - // Apply physics - if (!free_move && !is_climbing) { - // Gravity - v3f speed = lplayer->getSpeed(); - if (!lplayer->in_liquid) - speed.Y -= lplayer->movement_gravity * - lplayer->physics_override_gravity * dtime_part * 2.0f; - - // Liquid floating / sinking - if (lplayer->in_liquid && !lplayer->swimming_vertical && - !lplayer->swimming_pitch) - speed.Y -= lplayer->movement_liquid_sink * dtime_part * 2.0f; - - // Liquid resistance - if (lplayer->in_liquid_stable || lplayer->in_liquid) { - // How much the node's viscosity blocks movement, ranges - // between 0 and 1. Should match the scale at which viscosity - // increase affects other liquid attributes. - static const f32 viscosity_factor = 0.3f; - - v3f d_wanted = -speed / lplayer->movement_liquid_fluidity; - f32 dl = d_wanted.getLength(); - if (dl > lplayer->movement_liquid_fluidity_smooth) - dl = lplayer->movement_liquid_fluidity_smooth; - - dl *= (lplayer->liquid_viscosity * viscosity_factor) + - (1 - viscosity_factor); - v3f d = d_wanted.normalize() * (dl * dtime_part * 100.0f); - speed += d; - } - - lplayer->setSpeed(speed); - } - - /* - Move the lplayer. - This also does collision detection. - */ - lplayer->move(dtime_part, this, position_max_increment, - &player_collisions); - } - } while (dtime_downcount > 0.001); + lplayer->move(dtime_part, this, position_max_increment, + &player_collisions); + } bool player_immortal = lplayer->getCAO() && lplayer->getCAO()->isImmortal(); From 89dd05fdf35ce465fcc2b3588337f79f818a78aa Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 31 Oct 2020 18:19:23 +0000 Subject: [PATCH 254/624] Fix segfault in deprecation logging due to tail call, log by default (#10174) --- builtin/settingtypes.txt | 6 ++-- src/defaultsettings.cpp | 4 --- src/script/common/c_internal.cpp | 20 ++++++----- src/script/common/c_internal.h | 20 +++++++++++ src/script/lua_api/l_base.cpp | 61 ++++++-------------------------- src/script/lua_api/l_base.h | 21 +++++++---- src/script/lua_api/l_internal.h | 11 +++++- src/script/lua_api/l_noise.cpp | 2 -- src/script/lua_api/l_object.cpp | 6 ++-- 9 files changed, 71 insertions(+), 80 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 36446f808..0b650c722 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -1220,10 +1220,10 @@ movement_gravity (Gravity) float 9.81 [**Advanced] # Handling for deprecated Lua API calls: -# - legacy: (try to) mimic old behaviour (default for release). -# - log: mimic and log backtrace of deprecated call (default for debug). +# - none: Do not log deprecated calls +# - log: mimic and log backtrace of deprecated call (default). # - error: abort on usage of deprecated call (suggested for mod developers). -deprecated_lua_api_handling (Deprecated Lua API handling) enum legacy legacy,log,error +deprecated_lua_api_handling (Deprecated Lua API handling) enum log none,log,error # Number of extra blocks that can be loaded by /clearobjects at once. # This is a trade-off between sqlite transaction overhead and diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 6c7d4be97..fcdf6b536 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -358,11 +358,7 @@ void set_default_settings(Settings *settings) settings->setDefault("disallow_empty_password", "false"); settings->setDefault("disable_anticheat", "false"); settings->setDefault("enable_rollback_recording", "false"); -#ifdef NDEBUG - settings->setDefault("deprecated_lua_api_handling", "legacy"); -#else settings->setDefault("deprecated_lua_api_handling", "log"); -#endif settings->setDefault("kick_msg_shutdown", "Server shutting down."); settings->setDefault("kick_msg_crash", "This server has experienced an internal error. You will now be disconnected."); diff --git a/src/script/common/c_internal.cpp b/src/script/common/c_internal.cpp index 6df1f8b7b..ad5f836c5 100644 --- a/src/script/common/c_internal.cpp +++ b/src/script/common/c_internal.cpp @@ -155,24 +155,28 @@ static void script_log(lua_State *L, const std::string &message, infostream << script_get_backtrace(L) << std::endl; } -void log_deprecated(lua_State *L, const std::string &message, int stack_depth) +DeprecatedHandlingMode get_deprecated_handling_mode() { static thread_local bool configured = false; - static thread_local bool do_log = false; - static thread_local bool do_error = false; + static thread_local DeprecatedHandlingMode ret = DeprecatedHandlingMode::Ignore; // Only read settings on first call if (!configured) { std::string value = g_settings->get("deprecated_lua_api_handling"); if (value == "log") { - do_log = true; + ret = DeprecatedHandlingMode::Log; } else if (value == "error") { - do_log = true; - do_error = true; + ret = DeprecatedHandlingMode::Error; } configured = true; } - if (do_log) - script_log(L, message, warningstream, do_error, stack_depth); + return ret; +} + +void log_deprecated(lua_State *L, const std::string &message, int stack_depth) +{ + DeprecatedHandlingMode mode = get_deprecated_handling_mode(); + if (mode != DeprecatedHandlingMode::Ignore) + script_log(L, message, warningstream, mode == DeprecatedHandlingMode::Error, stack_depth); } diff --git a/src/script/common/c_internal.h b/src/script/common/c_internal.h index 442546332..452c2dd5e 100644 --- a/src/script/common/c_internal.h +++ b/src/script/common/c_internal.h @@ -114,5 +114,25 @@ void script_error(lua_State *L, int pcall_result, const char *mod, const char *f void script_run_callbacks_f(lua_State *L, int nargs, RunCallbacksMode mode, const char *fxn); +enum class DeprecatedHandlingMode { + Ignore, + Log, + Error +}; + +/** + * Reads `deprecated_lua_api_handling` in settings, returns cached value. + * + * @return DeprecatedHandlingMode + */ +DeprecatedHandlingMode get_deprecated_handling_mode(); + +/** + * Handles a deprecation warning based on user settings + * + * @param L Lua State + * @param message The deprecation method + * @param stack_depth How far on the stack to the first user function (ie: not builtin or core) + */ void log_deprecated(lua_State *L, const std::string &message, int stack_depth=1); diff --git a/src/script/lua_api/l_base.cpp b/src/script/lua_api/l_base.cpp index 03ef5447a..f842671b8 100644 --- a/src/script/lua_api/l_base.cpp +++ b/src/script/lua_api/l_base.cpp @@ -100,32 +100,21 @@ bool ModApiBase::registerFunction(lua_State *L, const char *name, return true; } -std::unordered_map ModApiBase::m_deprecated_wrappers; -bool ModApiBase::m_error_deprecated_calls = false; - -int ModApiBase::l_deprecated_function(lua_State *L) +int ModApiBase::l_deprecated_function(lua_State *L, const char *good, const char *bad, lua_CFunction func) { thread_local std::vector deprecated_logged; + DeprecatedHandlingMode dep_mode = get_deprecated_handling_mode(); + if (dep_mode == DeprecatedHandlingMode::Ignore) + return func(L); + u64 start_time = porting::getTimeUs(); lua_Debug ar; - // Get function name for lookup - FATAL_ERROR_IF(!lua_getstack(L, 0, &ar), "lua_getstack() failed"); - FATAL_ERROR_IF(!lua_getinfo(L, "n", &ar), "lua_getinfo() failed"); - - // Combine name with line and script backtrace + // Get caller name with line and script backtrace FATAL_ERROR_IF(!lua_getstack(L, 1, &ar), "lua_getstack() failed"); FATAL_ERROR_IF(!lua_getinfo(L, "Sl", &ar), "lua_getinfo() failed"); - // Get parent class to get the wrappers map - luaL_checktype(L, 1, LUA_TUSERDATA); - void *ud = lua_touserdata(L, 1); - ModApiBase *o = *(ModApiBase**)ud; - - // New function and new function name - auto it = o->m_deprecated_wrappers.find(ar.name); - // Get backtrace and hash it to reduce the warning flood std::string backtrace = ar.short_src; backtrace.append(":").append(std::to_string(ar.currentline)); @@ -135,46 +124,16 @@ int ModApiBase::l_deprecated_function(lua_State *L) == deprecated_logged.end()) { deprecated_logged.emplace_back(hash); - warningstream << "Call to deprecated function '" << ar.name << "', please use '" - << it->second.name << "' at " << backtrace << std::endl; + warningstream << "Call to deprecated function '" << bad << "', please use '" + << good << "' at " << backtrace << std::endl; - if (m_error_deprecated_calls) + if (dep_mode == DeprecatedHandlingMode::Error) script_error(L, LUA_ERRRUN, NULL, NULL); } u64 end_time = porting::getTimeUs(); g_profiler->avg("l_deprecated_function", end_time - start_time); - return it->second.func(L); + return func(L); } -void ModApiBase::markAliasDeprecated(luaL_Reg *reg) -{ - std::string value = g_settings->get("deprecated_lua_api_handling"); - m_error_deprecated_calls = value == "error"; - - if (!m_error_deprecated_calls && value != "log") - return; - - const char *last_name = nullptr; - lua_CFunction last_func = nullptr; - - // ! Null termination ! - while (reg->func) { - if (last_func == reg->func) { - // Duplicate found - luaL_Reg original_reg; - // Do not inline struct. Breaks MSVC or is error-prone - original_reg.name = last_name; - original_reg.func = reg->func; - m_deprecated_wrappers.emplace( - std::pair(reg->name, original_reg)); - reg->func = l_deprecated_function; - } else { - last_func = reg->func; - last_name = reg->name; - } - - ++reg; - } -} diff --git a/src/script/lua_api/l_base.h b/src/script/lua_api/l_base.h index 65fce8481..aa5905d26 100644 --- a/src/script/lua_api/l_base.h +++ b/src/script/lua_api/l_base.h @@ -41,7 +41,6 @@ class Environment; class ServerInventoryManager; class ModApiBase : protected LuaHelper { - public: static ScriptApiBase* getScriptApiBase(lua_State *L); static Server* getServer(lua_State *L); @@ -75,10 +74,18 @@ public: lua_CFunction func, int top); - static int l_deprecated_function(lua_State *L); - static void markAliasDeprecated(luaL_Reg *reg); -private: - // = { , } - static std::unordered_map m_deprecated_wrappers; - static bool m_error_deprecated_calls; + /** + * A wrapper for deprecated functions. + * + * When called, handles the deprecation according to user settings and then calls `func`. + * + * @throws Lua Error if required by the user settings. + * + * @param L Lua state + * @param good Name of good function/method + * @param bad Name of deprecated function/method + * @param func Actual implementation of function + * @return value from `func` + */ + static int l_deprecated_function(lua_State *L, const char *good, const char *bad, lua_CFunction func); }; diff --git a/src/script/lua_api/l_internal.h b/src/script/lua_api/l_internal.h index a86eeaf79..a10c259ba 100644 --- a/src/script/lua_api/l_internal.h +++ b/src/script/lua_api/l_internal.h @@ -29,7 +29,16 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "common/c_internal.h" #define luamethod(class, name) {#name, class::l_##name} -#define luamethod_aliased(class, name, alias) {#name, class::l_##name}, {#alias, class::l_##name} + +#define luamethod_dep(class, good, bad) \ + {#bad, [](lua_State *L) -> int { \ + return l_deprecated_function(L, #bad, #good, &class::l_##good); \ + }} + +#define luamethod_aliased(class, name, alias) \ + luamethod(class, name), \ + luamethod_dep(class, name, alias) + #define API_FCT(name) registerFunction(L, #name, l_##name, top) // For future use diff --git a/src/script/lua_api/l_noise.cpp b/src/script/lua_api/l_noise.cpp index 9aeb15709..e0861126a 100644 --- a/src/script/lua_api/l_noise.cpp +++ b/src/script/lua_api/l_noise.cpp @@ -122,7 +122,6 @@ void LuaPerlinNoise::Register(lua_State *L) lua_pop(L, 1); - markAliasDeprecated(methods); luaL_openlib(L, 0, methods, 0); lua_pop(L, 1); @@ -381,7 +380,6 @@ void LuaPerlinNoiseMap::Register(lua_State *L) lua_pop(L, 1); - markAliasDeprecated(methods); luaL_openlib(L, 0, methods, 0); lua_pop(L, 1); diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index c3f0ec8e0..beb8dd339 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -2278,7 +2278,6 @@ void ObjectRef::Register(lua_State *L) lua_pop(L, 1); // drop metatable - markAliasDeprecated(methods); luaL_openlib(L, 0, methods, 0); // fill methodtable lua_pop(L, 1); // drop methodtable } @@ -2316,10 +2315,9 @@ luaL_Reg ObjectRef::methods[] = { luamethod(ObjectRef, get_nametag_attributes), luamethod_aliased(ObjectRef, set_velocity, setvelocity), - luamethod(ObjectRef, add_velocity), - {"add_player_velocity", ObjectRef::l_add_velocity}, + luamethod_aliased(ObjectRef, add_velocity, add_player_velocity), luamethod_aliased(ObjectRef, get_velocity, getvelocity), - {"get_player_velocity", ObjectRef::l_get_velocity}, + luamethod_dep(ObjectRef, get_velocity, get_player_velocity), // LuaEntitySAO-only luamethod_aliased(ObjectRef, set_acceleration, setacceleration), From 9c9344ceb31892a8563994190f1ec31cb872f12c Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 1 Nov 2020 12:52:09 +0100 Subject: [PATCH 255/624] Fix incorrect deprecation hints "good" and "bad" were swapped in the process, resulting in wrong deprecation messages --- src/script/lua_api/l_internal.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/script/lua_api/l_internal.h b/src/script/lua_api/l_internal.h index a10c259ba..672e535ca 100644 --- a/src/script/lua_api/l_internal.h +++ b/src/script/lua_api/l_internal.h @@ -32,12 +32,12 @@ with this program; if not, write to the Free Software Foundation, Inc., #define luamethod_dep(class, good, bad) \ {#bad, [](lua_State *L) -> int { \ - return l_deprecated_function(L, #bad, #good, &class::l_##good); \ + return l_deprecated_function(L, #good, #bad, &class::l_##good); \ }} -#define luamethod_aliased(class, name, alias) \ - luamethod(class, name), \ - luamethod_dep(class, name, alias) +#define luamethod_aliased(class, good, bad) \ + luamethod(class, good), \ + luamethod_dep(class, good, bad) #define API_FCT(name) registerFunction(L, #name, l_##name, top) From 0abb3e89fa6298041faa7e46d437e5a81f71cdd3 Mon Sep 17 00:00:00 2001 From: red-001 Date: Mon, 2 Nov 2020 21:21:03 +0000 Subject: [PATCH 256/624] Block attempts to connect to the client (#10589) A Minetest peer initiates a connection by sending a packet with an invalid peer_id, for whatever reason the code for doing this ran on both the client and the server meaning you could connect to a client if you knew what the address:port tuple it was listening on. --- src/network/connection.cpp | 2 +- src/network/connection.h | 5 +++++ src/network/connectionthreads.cpp | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/network/connection.cpp b/src/network/connection.cpp index 1875d1461..0ba8c36b2 100644 --- a/src/network/connection.cpp +++ b/src/network/connection.cpp @@ -1566,7 +1566,7 @@ void Connection::sendAck(session_t peer_id, u8 channelnum, u16 seqnum) UDPPeer* Connection::createServerPeer(Address& address) { - if (getPeerNoEx(PEER_ID_SERVER) != 0) + if (ConnectedToServer()) { throw ConnectionException("Already connected to a server"); } diff --git a/src/network/connection.h b/src/network/connection.h index 2dc6d4397..24cd4fe4a 100644 --- a/src/network/connection.h +++ b/src/network/connection.h @@ -809,6 +809,11 @@ protected: void putEvent(ConnectionEvent &e); void TriggerSend(); + + bool ConnectedToServer() + { + return getPeerNoEx(PEER_ID_SERVER) != nullptr; + } private: MutexedQueue m_event_queue; diff --git a/src/network/connectionthreads.cpp b/src/network/connectionthreads.cpp index 28ed798d9..7b62bc792 100644 --- a/src/network/connectionthreads.cpp +++ b/src/network/connectionthreads.cpp @@ -956,8 +956,11 @@ void ConnectionReceiveThread::receive(SharedBuffer &packetdata, // command was sent reliably. } - /* The peer was not found in our lists. Add it. */ if (peer_id == PEER_ID_INEXISTENT) { + /* Ignore it if we are a client */ + if (m_connection->ConnectedToServer()) + return; + /* The peer was not found in our lists. Add it. */ peer_id = m_connection->createPeer(sender, MTP_MINETEST_RELIABLE_UDP, 0); } From aa4d3cb14837409b3cb5e17060776c6f5269d0be Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 3 Nov 2020 15:39:03 -0800 Subject: [PATCH 257/624] Increase defaults for viewing_range, active_object_range and related settings #10597 --- builtin/settingtypes.txt | 12 ++++++------ src/defaultsettings.cpp | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 0b650c722..8eb667bdd 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -594,7 +594,7 @@ fps_max_unfocused (FPS when unfocused or paused) int 20 1 pause_on_lost_focus (Pause on lost window focus) bool false # View distance in nodes. -viewing_range (Viewing range) int 100 20 4000 +viewing_range (Viewing range) int 190 20 4000 # Camera 'near clipping plane' distance in nodes, between 0 and 0.25 # Only works on GLES platforms. Most users will not need to change this. @@ -978,7 +978,7 @@ client_unload_unused_data_timeout (Mapblock unload timeout) int 600 # Maximum number of mapblocks for client to be kept in memory. # Set to -1 for unlimited amount. -client_mapblock_limit (Mapblock limit) int 5000 +client_mapblock_limit (Mapblock limit) int 7500 # Whether to show the client debug info (has the same effect as hitting F5). show_debug (Show debug info) bool false @@ -1137,17 +1137,17 @@ ask_reconnect_on_crash (Ask to reconnect after crash) bool false # Setting this larger than active_block_range will also cause the server # to maintain active objects up to this distance in the direction the # player is looking. (This can avoid mobs suddenly disappearing from view) -active_object_send_range_blocks (Active object send range) int 4 +active_object_send_range_blocks (Active object send range) int 8 # The radius of the volume of blocks around every player that is subject to the # active block stuff, stated in mapblocks (16 nodes). # In active blocks objects are loaded and ABMs run. # This is also the minimum range in which active objects (mobs) are maintained. # This should be configured together with active_object_send_range_blocks. -active_block_range (Active block range) int 3 +active_block_range (Active block range) int 4 # From how far blocks are sent to clients, stated in mapblocks (16 nodes). -max_block_send_distance (Max block send distance) int 10 +max_block_send_distance (Max block send distance) int 12 # Maximum number of forceloaded mapblocks. max_forceloaded_blocks (Maximum forceloaded blocks) int 16 @@ -1433,7 +1433,7 @@ mg_name (Mapgen name) enum v7 v7,valleys,carpathian,v5,flat,fractal,singlenode,v water_level (Water level) int 1 # From how far blocks are generated for clients, stated in mapblocks (16 nodes). -max_block_generate_distance (Max block generate distance) int 8 +max_block_generate_distance (Max block generate distance) int 10 # Limit of map generation, in nodes, in all 6 directions from (0, 0, 0). # Only mapchunks completely within the mapgen limit are generated. diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index fcdf6b536..dc0276733 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -52,7 +52,7 @@ void set_default_settings(Settings *settings) settings->setDefault("screenshot_format", "png"); settings->setDefault("screenshot_quality", "0"); settings->setDefault("client_unload_unused_data_timeout", "600"); - settings->setDefault("client_mapblock_limit", "5000"); + settings->setDefault("client_mapblock_limit", "7500"); settings->setDefault("enable_build_where_you_stand", "false"); settings->setDefault("curl_timeout", "5000"); settings->setDefault("curl_parallel_limit", "8"); @@ -166,7 +166,7 @@ void set_default_settings(Settings *settings) settings->setDefault("tooltip_append_itemname", "false"); settings->setDefault("fps_max", "60"); settings->setDefault("fps_max_unfocused", "20"); - settings->setDefault("viewing_range", "100"); + settings->setDefault("viewing_range", "190"); #if ENABLE_GLES settings->setDefault("near_plane", "0.1"); #endif @@ -366,11 +366,11 @@ void set_default_settings(Settings *settings) settings->setDefault("chat_message_format", "<@name> @message"); settings->setDefault("profiler_print_interval", "0"); - settings->setDefault("active_object_send_range_blocks", "4"); - settings->setDefault("active_block_range", "3"); + settings->setDefault("active_object_send_range_blocks", "8"); + settings->setDefault("active_block_range", "4"); //settings->setDefault("max_simultaneous_block_sends_per_client", "1"); // This causes frametime jitter on client side, or does it? - settings->setDefault("max_block_send_distance", "10"); + settings->setDefault("max_block_send_distance", "12"); settings->setDefault("block_send_optimize_distance", "4"); settings->setDefault("server_side_occlusion_culling", "true"); settings->setDefault("csm_restriction_flags", "62"); @@ -429,7 +429,7 @@ void set_default_settings(Settings *settings) settings->setDefault("mapgen_limit", "31000"); settings->setDefault("chunksize", "5"); settings->setDefault("fixed_map_seed", ""); - settings->setDefault("max_block_generate_distance", "8"); + settings->setDefault("max_block_generate_distance", "10"); settings->setDefault("enable_mapgen_debug_info", "false"); Mapgen::setDefaultSettings(settings); From 39213bd00a8d00861616d94a29823cb2214f742e Mon Sep 17 00:00:00 2001 From: Lars Date: Mon, 2 Nov 2020 09:27:15 -0800 Subject: [PATCH 258/624] Slight simplification and optimization of RemoteClient. --- src/clientiface.cpp | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/clientiface.cpp b/src/clientiface.cpp index f5e32469b..08d5d3be7 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -298,20 +298,14 @@ void RemoteClient::GetNextBlocks ( */ MapBlock *block = env->getMap().getBlockNoCreateNoEx(p); - bool surely_not_found_on_disk = false; - bool block_is_invalid = false; + bool block_not_found = false; if (block) { // Reset usage timer, this block will be of use in the future. block->resetUsageTimer(); - // Block is dummy if data doesn't exist. - // It means it has been not found from disk and not generated - if (block->isDummy()) { - surely_not_found_on_disk = true; - } - - if (!block->isGenerated()) - block_is_invalid = true; + // Check whether the block exists (with data) + if (block->isDummy() || !block->isGenerated()) + block_not_found = true; /* If block is not close, don't send it unless it is near @@ -325,7 +319,7 @@ void RemoteClient::GetNextBlocks ( continue; } - if (m_occ_cull && !block_is_invalid && + if (m_occ_cull && !block_not_found && env->getMap().isBlockOccluded(block, cam_pos_nodes)) { continue; } @@ -335,7 +329,7 @@ void RemoteClient::GetNextBlocks ( If block has been marked to not exist on disk (dummy) or is not generated and generating new ones is not wanted, skip block. */ - if (!generate && (surely_not_found_on_disk || block_is_invalid)) { + if (!generate && block_not_found) { // get next one. continue; } @@ -343,7 +337,7 @@ void RemoteClient::GetNextBlocks ( /* Add inexistent block to emerge queue. */ - if (block == NULL || surely_not_found_on_disk || block_is_invalid) { + if (block == NULL || block_not_found) { if (emerge->enqueueBlockEmerge(peer_id, p, generate)) { if (nearest_emerged_d == -1) nearest_emerged_d = d; From 72b93ec0d75e97ec343e5b936b858d686580677d Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Wed, 4 Nov 2020 21:43:18 +0100 Subject: [PATCH 259/624] Fix ObjectRef errors due to lua_isnil() (#10564) Treat 'none' values as 'nil' --- src/script/common/helper.cpp | 46 ++++++++++++++++++--------------- src/script/common/helper.h | 5 +++- src/script/lua_api/l_object.cpp | 32 ++++++++--------------- 3 files changed, 40 insertions(+), 43 deletions(-) diff --git a/src/script/common/helper.cpp b/src/script/common/helper.cpp index f53a2b7e8..488144790 100644 --- a/src/script/common/helper.cpp +++ b/src/script/common/helper.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include +#include #include "c_types.h" #include "c_internal.h" @@ -54,19 +55,16 @@ template <> bool LuaHelper::readParam(lua_State *L, int index) return lua_toboolean(L, index) != 0; } -template <> bool LuaHelper::readParam(lua_State *L, int index, const bool &default_value) -{ - if (lua_isnil(L, index)) - return default_value; - - return lua_toboolean(L, index) != 0; -} - template <> s16 LuaHelper::readParam(lua_State *L, int index) { return lua_tonumber(L, index); } +template <> int LuaHelper::readParam(lua_State *L, int index) +{ + return luaL_checkint(L, index); +} + template <> float LuaHelper::readParam(lua_State *L, int index) { if (isNaN(L, index)) @@ -105,6 +103,25 @@ template <> v2f LuaHelper::readParam(lua_State *L, int index) return p; } +template <> v3f LuaHelper::readParam(lua_State *L, int index) +{ + v3f p; + CHECK_POS_TAB(index); + lua_getfield(L, index, "x"); + CHECK_POS_COORD("x"); + p.X = readParam(L, -1); + lua_pop(L, 1); + lua_getfield(L, index, "y"); + CHECK_POS_COORD("y"); + p.Y = readParam(L, -1); + lua_pop(L, 1); + lua_getfield(L, index, "z"); + CHECK_POS_COORD("z"); + p.Z = readParam(L, -1); + lua_pop(L, 1); + return p; +} + template <> std::string LuaHelper::readParam(lua_State *L, int index) { size_t length; @@ -113,16 +130,3 @@ template <> std::string LuaHelper::readParam(lua_State *L, int index) result.assign(str, length); return result; } - -template <> -std::string LuaHelper::readParam( - lua_State *L, int index, const std::string &default_value) -{ - std::string result; - const char *str = lua_tostring(L, index); - if (str) - result.append(str); - else - result = default_value; - return result; -} diff --git a/src/script/common/helper.h b/src/script/common/helper.h index d639d6e16..7a794dc9b 100644 --- a/src/script/common/helper.h +++ b/src/script/common/helper.h @@ -50,5 +50,8 @@ protected: * @return read value from Lua or default value if nil */ template - static T readParam(lua_State *L, int index, const T &default_value); + static inline T readParam(lua_State *L, int index, const T &default_value) + { + return lua_isnoneornil(L, index) ? default_value : readParam(L, index); + } }; diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index beb8dd339..a6a7c05f9 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -169,11 +169,9 @@ int ObjectRef::l_punch(lua_State *L) if (sao == nullptr || puncher == nullptr) return 0; - float time_from_last_punch = lua_isnil(L, 3) ? - 1000000.0f : readParam(L,3); + float time_from_last_punch = readParam(L, 3, 1000000.0f); ToolCapabilities toolcap = read_tool_capabilities(L, 4); - v3f dir = lua_isnil(L, 5) ? - sao->getBasePosition() - puncher->getBasePosition() : check_v3f(L, 5); + v3f dir = readParam(L, 5, sao->getBasePosition() - puncher->getBasePosition()); dir.normalize(); u16 src_original_hp = sao->getHP(); @@ -383,20 +381,12 @@ int ObjectRef::l_set_animation(lua_State *L) if (sao == nullptr) return 0; - v2f frames = v2f(1, 1); - if (!lua_isnil(L, 2)) - frames = readParam(L, 2); - float frame_speed = 15; - if (!lua_isnil(L, 3)) - frame_speed = lua_tonumber(L, 3); - float frame_blend = 0; - if (!lua_isnil(L, 4)) - frame_blend = lua_tonumber(L, 4); - bool frame_loop = true; - if (lua_isboolean(L, 5)) - frame_loop = readParam(L, 5); + v2f frame_range = readParam(L, 2, v2f(1, 1)); + float frame_speed = readParam(L, 3, 15.0f); + float frame_blend = readParam(L, 4, 0.0f); + bool frame_loop = readParam(L, 5, true); - sao->setAnimation(frames, frame_speed, frame_blend, frame_loop); + sao->setAnimation(frame_range, frame_speed, frame_blend, frame_loop); return 0; } @@ -436,7 +426,7 @@ int ObjectRef::l_set_local_animation(lua_State *L) if (!lua_isnil(L, 2+1)) frames[i] = read_v2s32(L, 2+i); } - float frame_speed = lua_isnil(L, 6) ? 30 : readParam(L, 6); + float frame_speed = readParam(L, 6, 30.0f); getServer(L)->setLocalPlayerAnimations(player, frames, frame_speed); lua_pushboolean(L, true); @@ -965,9 +955,9 @@ int ObjectRef::l_set_sprite(lua_State *L) if (entitysao == nullptr) return 0; - v2s16 start_frame = lua_isnil(L, 2) ? v2s16(0,0) : readParam(L, 2); - int num_frames = lua_isnil(L, 3) ? 1 : luaL_checkint(L, 3); - float framelength = lua_isnil(L, 4) ? 0.2 : lua_tonumber(L, 4); + v2s16 start_frame = readParam(L, 2, v2s16(0,0)); + int num_frames = readParam(L, 3, 1); + float framelength = readParam(L, 4, 0.2f); bool select_x_by_camera = readParam(L, 5, false); entitysao->setSprite(start_frame, num_frames, framelength, select_x_by_camera); From e3bd6704a0eb65e9490347680441c7a08df36f7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= <34514239+appgurueu@users.noreply.github.com> Date: Wed, 4 Nov 2020 21:43:32 +0100 Subject: [PATCH 260/624] Revert "Fix short 180 degree rotation when using set_bone_position (#10405)" (#10534) This reverts commit 0f98b54aa4b2361575002d92b29fe222703ba557. --- src/client/content_cao.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 29a3acf25..e7f9db845 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -1487,17 +1487,24 @@ void GenericCAO::updateBonePosition() if (!bone) continue; + //If bone is manually positioned there is no need to perform the bug check + bool skip = false; + for (auto &it : m_bone_position) { + if (it.first == bone->getName()) { + skip = true; + break; + } + } + if (skip) + continue; + // Workaround for Irrlicht bug // We check each bone to see if it has been rotated ~180deg from its expected position due to a bug in Irricht // when using EJUOR_CONTROL joint control. If the bug is detected we update the bone to the proper position // and update the bones transformation. v3f bone_rot = bone->getRelativeTransformation().getRotationDegrees(); - float offset_X = fabsf(bone_rot.X - bone->getRotation().X); - float offset_Y = fabsf(bone_rot.Y - bone->getRotation().Y); - float offset_Z = fabsf(bone_rot.Z - bone->getRotation().Z); - if ((offset_X > 179.9f && offset_X < 180.1f) - || (offset_Y > 179.9f && offset_Y < 180.1f) - || (offset_Z > 179.9f && offset_Z < 180.1f)) { + float offset = fabsf(bone_rot.X - bone->getRotation().X); + if (offset > 179.9f && offset < 180.1f) { bone->setRotation(bone_rot); bone->updateAbsolutePosition(); } From 3356da01513860d899cde503408436f7e1918f63 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Wed, 4 Nov 2020 21:46:18 +0100 Subject: [PATCH 261/624] Add model[] formspec element (#10320) Formspec element to display models, written by @kilbith, rebased and tweaked. Co-authored-by: Jean-Patrick Guerrero Co-authored-by: sfan5 --- doc/lua_api.txt | 16 ++ games/devtest/mods/testformspec/LICENSE.txt | 14 + games/devtest/mods/testformspec/formspec.lua | 4 + .../models/testformspec_character.b3d | Bin 0 -> 73433 bytes .../models/testformspec_chest.obj | 79 ++++++ .../textures/default_chest_front.png | Bin 0 -> 423 bytes .../textures/default_chest_inside.png | Bin 0 -> 102 bytes .../textures/default_chest_side.png | Bin 0 -> 375 bytes .../textures/default_chest_top.png | Bin 0 -> 423 bytes .../textures/testformspec_character.png | Bin 0 -> 2754 bytes src/gui/CMakeLists.txt | 1 + src/gui/guiFormSpecMenu.cpp | 86 ++++++ src/gui/guiFormSpecMenu.h | 2 +- src/gui/guiScene.cpp | 257 ++++++++++++++++++ src/gui/guiScene.h | 85 ++++++ util/ci/clang-format-whitelist.txt | 2 + 16 files changed, 545 insertions(+), 1 deletion(-) create mode 100644 games/devtest/mods/testformspec/LICENSE.txt create mode 100644 games/devtest/mods/testformspec/models/testformspec_character.b3d create mode 100644 games/devtest/mods/testformspec/models/testformspec_chest.obj create mode 100644 games/devtest/mods/testformspec/textures/default_chest_front.png create mode 100644 games/devtest/mods/testformspec/textures/default_chest_inside.png create mode 100644 games/devtest/mods/testformspec/textures/default_chest_side.png create mode 100644 games/devtest/mods/testformspec/textures/default_chest_top.png create mode 100644 games/devtest/mods/testformspec/textures/testformspec_character.png create mode 100644 src/gui/guiScene.cpp create mode 100644 src/gui/guiScene.h diff --git a/doc/lua_api.txt b/doc/lua_api.txt index daf0da3d2..38fc3066a 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2272,6 +2272,18 @@ Elements * `frame duration`: Milliseconds between each frame. `0` means the frames don't advance. * `frame start` (Optional): The index of the frame to start on. Default `1`. +### `model[,;,;;;;;;]` + +* Show a mesh model. +* `name`: Element name that can be used for styling +* `mesh`: The mesh model to use. +* `textures`: The mesh textures to use according to the mesh materials. + Texture names must be separated by commas. +* `rotation {X,Y}` (Optional): Initial rotation of the camera. + The axes are euler angles in degrees. +* `continuous` (Optional): Whether the rotation is continuous. Default `false`. +* `mouse control` (Optional): Whether the model can be controlled with the mouse. Default `true`. + ### `item_image[,;,;]` * Show an inventory image of registered item/node @@ -2842,6 +2854,10 @@ Some types may inherit styles from parent types. * font_size - Sets font size. See button `font_size` property for more information. * noclip - boolean, set to true to allow the element to exceed formspec bounds. * textcolor - color. Default white. +* model + * bgcolor - color, sets background color. + * noclip - boolean, set to true to allow the element to exceed formspec bounds. + * Default to false in formspec_version version 3 or higher * image * noclip - boolean, set to true to allow the element to exceed formspec bounds. * Default to false in formspec_version version 3 or higher diff --git a/games/devtest/mods/testformspec/LICENSE.txt b/games/devtest/mods/testformspec/LICENSE.txt new file mode 100644 index 000000000..07696cc30 --- /dev/null +++ b/games/devtest/mods/testformspec/LICENSE.txt @@ -0,0 +1,14 @@ +License of media files +---------------------- +Content imported from minetest_game. + + +BlockMen (CC BY-SA 3.0) + default_chest_front.png + default_chest_lock.png + default_chest_side.png + default_chest_top.png + +stujones11 (CC BY-SA 3.0) +An0n3m0us (CC BY-SA 3.0) + testformspec_character.b3d diff --git a/games/devtest/mods/testformspec/formspec.lua b/games/devtest/mods/testformspec/formspec.lua index 87a05fc96..5495896ce 100644 --- a/games/devtest/mods/testformspec/formspec.lua +++ b/games/devtest/mods/testformspec/formspec.lua @@ -327,6 +327,10 @@ Number] animated_image[3,4.25;1,1;;testformspec_animation.png;4;0;3] animated_image[5.5,0.5;5,2;;testformspec_animation.png;4;100] animated_image[5.5,2.75;5,2;;testformspec_animation.jpg;4;100] + + style[m1;bgcolor=black] + model[0.5,6;4,4;m1;testformspec_character.b3d;testformspec_character.png] + model[5,6;4,4;m2;testformspec_chest.obj;default_chest_top.png,default_chest_top.png,default_chest_side.png,default_chest_side.png,default_chest_front.png,default_chest_inside.png;30,1;true;true] ]], -- Scroll containers diff --git a/games/devtest/mods/testformspec/models/testformspec_character.b3d b/games/devtest/mods/testformspec/models/testformspec_character.b3d new file mode 100644 index 0000000000000000000000000000000000000000..8edbaf6377891568c248cd73d2d691f97c775311 GIT binary patch literal 73433 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%0D>Q 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 ZXpY6Y*b3|77Oab}F$*L6x^P}^{{uEY)gk}@ literal 0 HcmV?d00001 diff --git a/games/devtest/mods/testformspec/models/testformspec_chest.obj b/games/devtest/mods/testformspec/models/testformspec_chest.obj new file mode 100644 index 000000000..72ba175a0 --- /dev/null +++ b/games/devtest/mods/testformspec/models/testformspec_chest.obj @@ -0,0 +1,79 @@ +# Blender v2.78 (sub 0) OBJ File: 'chest-open.blend' +# www.blender.org +o Top_Cube.002_None_Top_Cube.002_None_bottom +v -0.500000 0.408471 0.720970 +v -0.500000 1.115578 0.013863 +v -0.500000 0.894607 -0.207108 +v -0.500000 0.187501 0.499999 +v 0.500000 1.115578 0.013863 +v 0.500000 0.408471 0.720970 +v 0.500000 0.187501 0.499999 +v 0.500000 0.894607 -0.207108 +v -0.500000 0.187500 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.187500 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 0.0000 1.0000 +vt 1.0000 1.0000 +vt 1.0000 0.6875 +vt 0.0000 0.6875 +vt 1.0000 1.0000 +vt 0.0000 0.6875 +vt 1.0000 0.6875 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 0.0000 0.0000 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 0.0000 1.0000 +vt 0.0000 0.6875 +vt 0.0000 0.6875 +vt 0.0000 0.0000 +vt 1.0000 0.5000 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.5000 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 1.0000 -0.0000 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Top +s off +f 6/1/1 5/2/1 2/3/1 1/4/1 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Bottom +f 11/5/2 10/6/2 14/7/2 13/8/2 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Right-Left +f 1/9/3 2/10/3 3/11/3 4/12/3 +f 5/13/4 6/1/4 7/14/4 8/15/4 +f 4/12/3 9/16/3 10/17/3 11/18/3 +f 12/19/4 7/14/4 13/8/4 14/20/4 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Back +f 6/21/5 1/9/5 4/12/5 7/22/5 +f 7/22/6 4/12/6 11/18/6 13/23/6 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Front +f 2/10/7 5/24/7 8/25/7 3/11/7 +f 9/16/8 12/26/8 14/27/8 10/17/8 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Inside +f 4/28/9 3/29/9 8/30/9 7/31/9 +f 7/31/10 12/32/10 9/33/10 4/28/10 diff --git a/games/devtest/mods/testformspec/textures/default_chest_front.png b/games/devtest/mods/testformspec/textures/default_chest_front.png new file mode 100644 index 0000000000000000000000000000000000000000..85227d8fd636ace9592070a2f7e86df531dc03a8 GIT binary patch literal 423 zcmV;Y0a*TtP)i&K4LJ(h4fd|)}Lf=h&H zLXT)Oby_pmu656)Y`~XZu7*#Kb4!G4MT>1goOVBpWiV}2FKSRK-QC@|u%qC!dc~Y& zzLs61d_{+CM1p2Nz__cUqocE{p6j=Mc6N54fmoDxPm^{|mw8KwZcBJ!K5tn$lWaGU zYBh#mEPz=jWJ@J{RU=tkP^|y}0JKR&K~xyiWzI#i!!Qs<(JxtGvCM3T^TSO0-&i_h z-{GmQuJfE_l-{oE`T}5=5$C4V3&q&H0!WvEqLgLXY__8{K&+!MG8kioLN@@6 zN>kDk@*aBGOD_RVl&R|knQ6>5Cjg{HdNti|CKb)I1AvErQM3I&FVvh>0Bdbfh?>Um zAmA$iTLe&1C`R-A2rxJ}fDLU}me>LiC%WV=gmA9K@ef4uc|E)2k#quJ)ECCe4HTG& R7=Qo(002ovPDHLkV1m!~wG03N literal 0 HcmV?d00001 diff --git a/games/devtest/mods/testformspec/textures/default_chest_inside.png b/games/devtest/mods/testformspec/textures/default_chest_inside.png new file mode 100644 index 0000000000000000000000000000000000000000..5f7b6b13270890618c6a6332eee1c6c721b91f1b GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!2~3yyw0Buq;x%9978NlCvUkPo}j=vVadU` z_{Ppg7lT!aA;@D3{h6xK;WWK5B?*(dP@O1TaS?83{1OQEB B9=-qo literal 0 HcmV?d00001 diff --git a/games/devtest/mods/testformspec/textures/default_chest_side.png b/games/devtest/mods/testformspec/textures/default_chest_side.png new file mode 100644 index 0000000000000000000000000000000000000000..44a65a43d3c3f2ba44bceb519a0696e1ba441800 GIT binary patch literal 375 zcmV--0f_#IP)n`5knO{RcJoOVB!a5-&MFKSRK;In$zuXoa@aHD)h zf@VK%ST=rFCF{3-pn+J3ZcC(oM}}W4WJ@JsV)uan0065=L_t&-(`C+A5`!=dMbXH@ z-MB%3P}BSV*B6mr?&lfJ= zdsUum4#6X1C?EZJP^f8bSOa-|wF`=iC+qn|{rj V3gJ4$MZo|7002ovPDHLkV1iD9pBn%G literal 0 HcmV?d00001 diff --git a/games/devtest/mods/testformspec/textures/default_chest_top.png b/games/devtest/mods/testformspec/textures/default_chest_top.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a92ee07edb9c3b6b8e33320082ca222656c252 GIT binary patch literal 423 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 parts = split(element, ';'); + + if (parts.size() < 5 || (parts.size() > 8 && + m_formspec_version <= FORMSPEC_API_VERSION)) { + errorstream << "Invalid model element (" << parts.size() << "): '" << element + << "'" << std::endl; + return; + } + + // Avoid length checks by resizing + if (parts.size() < 8) + parts.resize(8); + + std::vector v_pos = split(parts[0], ','); + std::vector v_geom = split(parts[1], ','); + std::string name = unescape_string(parts[2]); + std::string meshstr = unescape_string(parts[3]); + std::vector textures = split(parts[4], ','); + std::vector vec_rot = split(parts[5], ','); + bool inf_rotation = is_yes(parts[6]); + bool mousectrl = is_yes(parts[7]) || parts[7].empty(); // default true + + MY_CHECKPOS("model", 0); + MY_CHECKGEOM("model", 1); + + v2s32 pos; + v2s32 geom; + + if (data->real_coordinates) { + pos = getRealCoordinateBasePos(v_pos); + geom = getRealCoordinateGeometry(v_geom); + } else { + pos = getElementBasePos(&v_pos); + geom.X = stof(v_geom[0]) * (float)imgsize.X; + geom.Y = stof(v_geom[1]) * (float)imgsize.Y; + } + + if (!data->explicit_size) + warningstream << "invalid use of model without a size[] element" << std::endl; + + scene::IAnimatedMesh *mesh = m_client->getMesh(meshstr); + + if (!mesh) { + errorstream << "Invalid model element: Unable to load mesh:" + << std::endl << "\t" << meshstr << std::endl; + return; + } + + FieldSpec spec( + name, + L"", + L"", + 258 + m_fields.size() + ); + + core::rect rect(pos, pos + geom); + + GUIScene *e = new GUIScene(Environment, RenderingEngine::get_scene_manager(), + data->current_parent, rect, spec.fid); + + auto meshnode = e->setMesh(mesh); + + for (u32 i = 0; i < textures.size() && i < meshnode->getMaterialCount(); ++i) + e->setTexture(i, m_tsrc->getTexture(textures[i])); + + if (vec_rot.size() >= 2) + e->setRotation(v2f(stof(vec_rot[0]), stof(vec_rot[1]))); + + e->enableContinuousRotation(inf_rotation); + e->enableMouseControl(mousectrl); + + auto style = getStyleForElement("model", spec.fname); + e->setStyles(style); + e->drop(); + + m_fields.push_back(spec); +} + void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element) { //some prechecks @@ -2891,6 +2972,11 @@ void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element) return; } + if (type == "model") { + parseModel(data, description); + return; + } + // Ignore others infostream << "Unknown DrawSpec: type=" << type << ", data=\"" << description << "\"" << std::endl; diff --git a/src/gui/guiFormSpecMenu.h b/src/gui/guiFormSpecMenu.h index 613acaa04..c5d662a69 100644 --- a/src/gui/guiFormSpecMenu.h +++ b/src/gui/guiFormSpecMenu.h @@ -38,7 +38,6 @@ with this program; if not, write to the Free Software Foundation, Inc., class InventoryManager; class ISimpleTextureSource; class Client; -class TexturePool; class GUIScrollContainer; typedef enum { @@ -444,6 +443,7 @@ private: void parseAnchor(parserData *data, const std::string &element); bool parseStyle(parserData *data, const std::string &element, bool style_type); void parseSetFocus(const std::string &element); + void parseModel(parserData *data, const std::string &element); void tryClose(); diff --git a/src/gui/guiScene.cpp b/src/gui/guiScene.cpp new file mode 100644 index 000000000..08f119e07 --- /dev/null +++ b/src/gui/guiScene.cpp @@ -0,0 +1,257 @@ +/* +Minetest +Copyright (C) 2020 Jean-Patrick Guerrero + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "guiScene.h" + +#include +#include +#include +#include "porting.h" + +GUIScene::GUIScene(gui::IGUIEnvironment *env, scene::ISceneManager *smgr, + gui::IGUIElement *parent, core::recti rect, s32 id) + : IGUIElement(gui::EGUIET_ELEMENT, env, parent, id, rect) +{ + m_driver = env->getVideoDriver(); + m_smgr = smgr->createNewSceneManager(false); + + m_cam = m_smgr->addCameraSceneNode(0, v3f(0.f, 0.f, -100.f), v3f(0.f)); + m_cam->setFOV(30.f * core::DEGTORAD); + + scene::ILightSceneNode *light = m_smgr->addLightSceneNode(m_cam); + light->setRadius(1000.f); + + m_smgr->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true); +} + +GUIScene::~GUIScene() +{ + setMesh(nullptr); + + m_smgr->drop(); +} + +scene::IAnimatedMeshSceneNode *GUIScene::setMesh(scene::IAnimatedMesh *mesh) +{ + if (m_mesh) { + m_mesh->remove(); + m_mesh = nullptr; + } + + if (!mesh) + return nullptr; + + m_mesh = m_smgr->addAnimatedMeshSceneNode(mesh); + m_mesh->setPosition(-m_mesh->getBoundingBox().getCenter()); + m_mesh->animateJoints(); + return m_mesh; +} + +void GUIScene::setTexture(u32 idx, video::ITexture *texture) +{ + video::SMaterial &material = m_mesh->getMaterial(idx); + material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; + material.MaterialTypeParam = 0.5f; + material.TextureLayer[0].Texture = texture; + material.setFlag(video::EMF_LIGHTING, false); + material.setFlag(video::EMF_FOG_ENABLE, true); + material.setFlag(video::EMF_BILINEAR_FILTER, false); + material.setFlag(video::EMF_BACK_FACE_CULLING, false); +} + +void GUIScene::draw() +{ + // Control rotation speed based on time + u64 new_time = porting::getTimeMs(); + u64 dtime_ms = 0; + if (m_last_time != 0) + dtime_ms = porting::getDeltaMs(m_last_time, new_time); + m_last_time = new_time; + + core::rect oldViewPort = m_driver->getViewPort(); + m_driver->setViewPort(getAbsoluteClippingRect()); + core::recti borderRect = Environment->getRootGUIElement()->getAbsoluteClippingRect(); + + if (m_bgcolor != 0) { + Environment->getSkin()->draw3DSunkenPane( + this, m_bgcolor, false, true, borderRect, 0); + } + + core::dimension2d size = getAbsoluteClippingRect().getSize(); + m_smgr->getActiveCamera()->setAspectRatio((f32)size.Width / (f32)size.Height); + + if (!m_target) { + updateCamera(m_smgr->addEmptySceneNode()); + rotateCamera(v3f(0.f)); + m_cam->bindTargetAndRotation(true); + } + + cameraLoop(); + + // Continuous rotation + if (m_inf_rot) + rotateCamera(v3f(0.f, -0.03f * (float)dtime_ms, 0.f)); + + m_smgr->drawAll(); + + if (m_initial_rotation && m_mesh) { + rotateCamera(v3f(m_custom_rot.X, m_custom_rot.Y, 0.f)); + calcOptimalDistance(); + + m_initial_rotation = false; + } + + m_driver->setViewPort(oldViewPort); +} + +bool GUIScene::OnEvent(const SEvent &event) +{ + if (m_mouse_ctrl && event.EventType == EET_MOUSE_INPUT_EVENT) { + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) { + m_last_pos = v2f((f32)event.MouseInput.X, (f32)event.MouseInput.Y); + return true; + } else if (event.MouseInput.Event == EMIE_MOUSE_MOVED) { + if (event.MouseInput.isLeftPressed()) { + m_curr_pos = v2f((f32)event.MouseInput.X, (f32)event.MouseInput.Y); + + rotateCamera(v3f( + m_last_pos.Y - m_curr_pos.Y, + m_curr_pos.X - m_last_pos.X, 0.f)); + + m_last_pos = m_curr_pos; + return true; + } + } + } + + return gui::IGUIElement::OnEvent(event); +} + +void GUIScene::setStyles(const std::array &styles) +{ + StyleSpec::State state = StyleSpec::STATE_DEFAULT; + StyleSpec style = StyleSpec::getStyleFromStatePropagation(styles, state); + + setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); + setBackgroundColor(style.getColor(StyleSpec::BGCOLOR, m_bgcolor)); +} + +/* Camera control functions */ + +inline void GUIScene::calcOptimalDistance() +{ + core::aabbox3df box = m_mesh->getBoundingBox(); + f32 width = box.MaxEdge.X - box.MinEdge.X; + f32 height = box.MaxEdge.Y - box.MinEdge.Y; + f32 depth = box.MaxEdge.Z - box.MinEdge.Z; + f32 max_width = width > depth ? width : depth; + + const scene::SViewFrustum *f = m_cam->getViewFrustum(); + f32 cam_far = m_cam->getFarValue(); + f32 far_width = core::line3df(f->getFarLeftUp(), f->getFarRightUp()).getLength(); + f32 far_height = core::line3df(f->getFarLeftUp(), f->getFarLeftDown()).getLength(); + + core::recti rect = getAbsolutePosition(); + f32 zoomX = rect.getWidth() / max_width; + f32 zoomY = rect.getHeight() / height; + f32 dist; + + if (zoomX < zoomY) + dist = (max_width / (far_width / cam_far)) + (0.5f * max_width); + else + dist = (height / (far_height / cam_far)) + (0.5f * max_width); + + m_cam_distance = dist; + m_update_cam = true; +} + +void GUIScene::updateCamera(scene::ISceneNode *target) +{ + m_target = target; + updateTargetPos(); + + m_last_target_pos = m_target_pos; + updateCameraPos(); + + m_update_cam = true; +} + +void GUIScene::updateTargetPos() +{ + m_last_target_pos = m_target_pos; + m_target->updateAbsolutePosition(); + m_target_pos = m_target->getAbsolutePosition(); +} + +void GUIScene::setCameraRotation(v3f rot) +{ + correctBounds(rot); + + core::matrix4 mat; + mat.setRotationDegrees(rot); + + m_cam_pos = v3f(0.f, 0.f, m_cam_distance); + mat.rotateVect(m_cam_pos); + + m_cam_pos += m_target_pos; + m_cam->setPosition(m_cam_pos); + m_update_cam = false; +} + +bool GUIScene::correctBounds(v3f &rot) +{ + const float ROTATION_MAX_1 = 60.0f; + const float ROTATION_MAX_2 = 300.0f; + + // Limit and correct the rotation when needed + if (rot.X < 90.f) { + if (rot.X > ROTATION_MAX_1) { + rot.X = ROTATION_MAX_1; + return true; + } + } else if (rot.X < ROTATION_MAX_2) { + rot.X = ROTATION_MAX_2; + return true; + } + + // Not modified + return false; +} + +void GUIScene::cameraLoop() +{ + updateCameraPos(); + updateTargetPos(); + + if (m_target_pos != m_last_target_pos) + m_update_cam = true; + + if (m_update_cam) { + m_cam_pos = m_target_pos + (m_cam_pos - m_target_pos).normalize() * m_cam_distance; + + v3f rot = getCameraRotation(); + if (correctBounds(rot)) + setCameraRotation(rot); + + m_cam->setPosition(m_cam_pos); + m_cam->setTarget(m_target_pos); + + m_update_cam = false; + } +} diff --git a/src/gui/guiScene.h b/src/gui/guiScene.h new file mode 100644 index 000000000..707e6f66a --- /dev/null +++ b/src/gui/guiScene.h @@ -0,0 +1,85 @@ +/* +Minetest +Copyright (C) 2020 Jean-Patrick Guerrero + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#pragma once + +#include "irrlichttypes_extrabloated.h" +#include "ICameraSceneNode.h" +#include "StyleSpec.h" + +using namespace irr; + +class GUIScene : public gui::IGUIElement +{ +public: + GUIScene(gui::IGUIEnvironment *env, scene::ISceneManager *smgr, + gui::IGUIElement *parent, core::recti rect, s32 id = -1); + + ~GUIScene(); + + scene::IAnimatedMeshSceneNode *setMesh(scene::IAnimatedMesh *mesh = nullptr); + void setTexture(u32 idx, video::ITexture *texture); + void setBackgroundColor(const video::SColor &color) noexcept { m_bgcolor = color; }; + void enableMouseControl(bool enable) noexcept { m_mouse_ctrl = enable; }; + void setRotation(v2f rot) noexcept { m_custom_rot = rot; }; + void enableContinuousRotation(bool enable) noexcept { m_inf_rot = enable; }; + void setStyles(const std::array &styles); + + virtual void draw(); + virtual bool OnEvent(const SEvent &event); + +private: + void calcOptimalDistance(); + void updateTargetPos(); + void updateCamera(scene::ISceneNode *target); + void setCameraRotation(v3f rot); + /// @return true indicates that the rotation was corrected + bool correctBounds(v3f &rot); + void cameraLoop(); + + void updateCameraPos() { m_cam_pos = m_cam->getPosition(); }; + v3f getCameraRotation() const { return (m_cam_pos - m_target_pos).getHorizontalAngle(); }; + void rotateCamera(const v3f &delta) { setCameraRotation(getCameraRotation() + delta); }; + + scene::ISceneManager *m_smgr; + video::IVideoDriver *m_driver; + scene::ICameraSceneNode *m_cam; + scene::ISceneNode *m_target = nullptr; + scene::IAnimatedMeshSceneNode *m_mesh = nullptr; + + f32 m_cam_distance = 50.f; + + u64 m_last_time = 0; + + v3f m_cam_pos; + v3f m_target_pos; + v3f m_last_target_pos; + // Cursor positions + v2f m_curr_pos; + v2f m_last_pos; + // Initial rotation + v2f m_custom_rot; + + bool m_mouse_ctrl = true; + bool m_update_cam = false; + bool m_inf_rot = false; + bool m_initial_rotation = true; + + video::SColor m_bgcolor = 0; +}; diff --git a/util/ci/clang-format-whitelist.txt b/util/ci/clang-format-whitelist.txt index 3334257ae..75d99f4cd 100644 --- a/util/ci/clang-format-whitelist.txt +++ b/util/ci/clang-format-whitelist.txt @@ -183,6 +183,8 @@ src/gui/guiMainMenu.h src/gui/guiPasswordChange.cpp src/gui/guiPathSelectMenu.cpp src/gui/guiPathSelectMenu.h +src/gui/guiScene.cpp +src/gui/guiScene.h src/gui/guiScrollBar.cpp src/gui/guiSkin.cpp src/gui/guiSkin.h From 627c22c36e32185d48d2faf8197e22cbaa4c50b2 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 5 Nov 2020 19:34:40 +0100 Subject: [PATCH 262/624] Fix integer-string conversion for shaders closes #10605 --- src/client/shader.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/client/shader.cpp b/src/client/shader.cpp index f2aa00246..4f6430579 100644 --- a/src/client/shader.cpp +++ b/src/client/shader.cpp @@ -734,7 +734,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp shaders_header += "#define "; shaders_header += drawTypes[i]; shaders_header += " "; - shaders_header += std::to_string(i); + shaders_header += itos(i); shaders_header += "\n"; } @@ -757,15 +757,15 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp shaders_header += "#define "; shaders_header += materialTypes[i]; shaders_header += " "; - shaders_header += std::to_string(i); + shaders_header += itos(i); shaders_header += "\n"; } shaders_header += "#define MATERIAL_TYPE "; - shaders_header += std::to_string(material_type); + shaders_header += itos(material_type); shaders_header += "\n"; shaders_header += "#define DRAW_TYPE "; - shaders_header += std::to_string(drawtype); + shaders_header += itos(drawtype); shaders_header += "\n"; if (g_settings->getBool("enable_waving_water")){ From 8c1871fa2c066a2086988684256da97bd0f4ab6f Mon Sep 17 00:00:00 2001 From: Lars Date: Fri, 6 Nov 2020 10:54:04 -0800 Subject: [PATCH 263/624] Revert #10495 and simplify. --- src/clientiface.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/clientiface.cpp b/src/clientiface.cpp index 08d5d3be7..01852c5d1 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -209,6 +209,13 @@ void RemoteClient::GetNextBlocks ( s16 d_max_gen = std::min(adjustDist(m_max_gen_distance, prop_zoom_fov), wanted_range); + s16 d_max = full_d_max; + + // Don't loop very much at a time + s16 max_d_increment_at_time = 2; + if (d_max > d_start + max_d_increment_at_time) + d_max = d_start + max_d_increment_at_time; + // cos(angle between velocity and camera) * |velocity| // Limit to 0.0f in case player moves backwards. f32 dot = rangelim(camera_dir.dotProduct(playerspeed), 0.0f, 300.0f); @@ -225,7 +232,7 @@ void RemoteClient::GetNextBlocks ( const v3s16 cam_pos_nodes = floatToInt(camera_pos, BS); s16 d; - for (d = d_start; d <= full_d_max; d++) { + for (d = d_start; d <= d_max; d++) { /* Get the border/face dot coordinates of a "d-radiused" box From c940a57a384b1a75730776906451078d25c5aa52 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 8 Nov 2020 11:30:16 +0100 Subject: [PATCH 264/624] ContentCAO: Fix segfault when minimap is disabled --- src/client/content_cao.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index e7f9db845..7c349244f 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -894,6 +894,9 @@ u16 GenericCAO::getLightPosition(v3s16 *pos) void GenericCAO::updateMarker() { + if (!m_client->getMinimap()) + return; + if (!m_prop.show_on_minimap) { if (m_marker) m_client->getMinimap()->removeMarker(&m_marker); From 7589cbe086a5558eea018e1e3d25e388b26d51e8 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Mon, 9 Nov 2020 10:55:15 +0000 Subject: [PATCH 265/624] Fix object interaction distance not being checked (#10547) --- doc/lua_api.txt | 4 ++-- src/network/serverpackethandler.cpp | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 38fc3066a..985af2f6e 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6189,9 +6189,9 @@ object you are working with still exists. * `bone`: string * `position`: `{x=num, y=num, z=num}` (relative) * `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees - * `forced_visible`: Boolean to control whether the attached entity + * `forced_visible`: Boolean to control whether the attached entity should appear in first person. -* `get_attach()`: returns parent, bone, position, rotation, forced_visible, +* `get_attach()`: returns parent, bone, position, rotation, forced_visible, or nil if it isn't attached. * `get_children()`: returns a list of ObjectRefs that are attached to the object. diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index 0bd09e637..95e7c548e 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -1050,12 +1050,13 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) } float d = playersao->getEyePosition().getDistanceFrom(target_pos); - if (!checkInteractDistance(player, d, pointed.dump()) - && pointed.type == POINTEDTHING_NODE) { - // Re-send block to revert change on client-side - RemoteClient *client = getClient(peer_id); - v3s16 blockpos = getNodeBlockPos(pointed.node_undersurface); - client->SetBlockNotSent(blockpos); + if (!checkInteractDistance(player, d, pointed.dump())) { + if (pointed.type == POINTEDTHING_NODE) { + // Re-send block to revert change on client-side + RemoteClient *client = getClient(peer_id); + v3s16 blockpos = getNodeBlockPos(pointed.node_undersurface); + client->SetBlockNotSent(blockpos); + } return; } } From e1142ee57f2d7b59a86f6d0d72ae043844bc3121 Mon Sep 17 00:00:00 2001 From: Markus Koch Date: Sat, 7 Nov 2020 17:45:32 +0100 Subject: [PATCH 266/624] Joystick: Remap joystick-specific KeyTypes to generic ones According to the following table: * MOUSE_L -> DIG * MOUSE_R -> PLACE * SCROLL_UP -> HOTBAR_NEXT * SCROLL_DOWN -> HOTBAR_PREV This commit entirely removes the special KeyTypes used for joysticks. Support for the MOUSE KeyTypes had already been removed in the main game code without adapting the joystick code, breaking joystick input. This commit restores joystick functionality. --- src/client/game.cpp | 16 ++++++---------- src/client/joystick_controller.cpp | 22 +++++++++++----------- src/client/keys.h | 6 ------ 3 files changed, 17 insertions(+), 27 deletions(-) diff --git a/src/client/game.cpp b/src/client/game.cpp index 0380c1661..5c38e027d 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -2014,15 +2014,11 @@ void Game::processItemSelection(u16 *new_playeritem) s32 dir = wheel; - if (input->joystick.wasKeyDown(KeyType::SCROLL_DOWN) || - wasKeyDown(KeyType::HOTBAR_NEXT)) { + if (wasKeyDown(KeyType::HOTBAR_NEXT)) dir = -1; - } - if (input->joystick.wasKeyDown(KeyType::SCROLL_UP) || - wasKeyDown(KeyType::HOTBAR_PREV)) { + if (wasKeyDown(KeyType::HOTBAR_PREV)) dir = 1; - } if (dir < 0) *new_playeritem = *new_playeritem < max_item ? *new_playeritem + 1 : 0; @@ -3138,11 +3134,11 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) input->clearWasKeyPressed(); input->clearWasKeyReleased(); - input->joystick.clearWasKeyDown(KeyType::MOUSE_L); - input->joystick.clearWasKeyDown(KeyType::MOUSE_R); + input->joystick.clearWasKeyDown(KeyType::DIG); + input->joystick.clearWasKeyDown(KeyType::PLACE); - input->joystick.clearWasKeyReleased(KeyType::MOUSE_L); - input->joystick.clearWasKeyReleased(KeyType::MOUSE_R); + input->joystick.clearWasKeyReleased(KeyType::DIG); + input->joystick.clearWasKeyReleased(KeyType::PLACE); } diff --git a/src/client/joystick_controller.cpp b/src/client/joystick_controller.cpp index c29e8b639..742115046 100644 --- a/src/client/joystick_controller.cpp +++ b/src/client/joystick_controller.cpp @@ -74,8 +74,8 @@ JoystickLayout create_default_layout() // Accessible without four modifier button pressed // regardless whether start is pressed or not - JLO_B_PB(KeyType::MOUSE_L, fb | 1 << 4, 1 << 4); - JLO_B_PB(KeyType::MOUSE_R, fb | 1 << 5, 1 << 5); + JLO_B_PB(KeyType::DIG, fb | 1 << 4, 1 << 4); + JLO_B_PB(KeyType::PLACE, fb | 1 << 5, 1 << 5); // Accessible without any modifier pressed JLO_B_PB(KeyType::JUMP, bm | 1 << 0, 1 << 0); @@ -83,9 +83,9 @@ JoystickLayout create_default_layout() // Accessible with start button not pressed, but four pressed // TODO find usage for button 0 - JLO_B_PB(KeyType::DROP, bm | 1 << 1, fb | 1 << 1); - JLO_B_PB(KeyType::SCROLL_UP, bm | 1 << 4, fb | 1 << 4); - JLO_B_PB(KeyType::SCROLL_DOWN,bm | 1 << 5, fb | 1 << 5); + JLO_B_PB(KeyType::DROP, bm | 1 << 1, fb | 1 << 1); + JLO_B_PB(KeyType::HOTBAR_PREV, bm | 1 << 4, fb | 1 << 4); + JLO_B_PB(KeyType::HOTBAR_NEXT, bm | 1 << 5, fb | 1 << 5); // Accessible with start button and four pressed // TODO find usage for buttons 0, 1 and 4, 5 @@ -99,8 +99,8 @@ JoystickLayout create_default_layout() JLO_A_PB(KeyType::RIGHT, 0, -1, 1024); // Scroll buttons - JLO_A_PB(KeyType::SCROLL_UP, 2, -1, 1024); - JLO_A_PB(KeyType::SCROLL_DOWN, 5, -1, 1024); + JLO_A_PB(KeyType::HOTBAR_PREV, 2, -1, 1024); + JLO_A_PB(KeyType::HOTBAR_NEXT, 5, -1, 1024); return jlo; } @@ -134,10 +134,10 @@ JoystickLayout create_xbox_layout() JLO_B_PB(KeyType::SNEAK, 1 << 12, 1 << 12); // right // Triggers - JLO_B_PB(KeyType::MOUSE_L, 1 << 6, 1 << 6); // lt - JLO_B_PB(KeyType::MOUSE_R, 1 << 7, 1 << 7); // rt - JLO_B_PB(KeyType::SCROLL_UP, 1 << 4, 1 << 4); // lb - JLO_B_PB(KeyType::SCROLL_DOWN, 1 << 5, 1 << 5); // rb + JLO_B_PB(KeyType::DIG, 1 << 6, 1 << 6); // lt + JLO_B_PB(KeyType::PLACE, 1 << 7, 1 << 7); // rt + JLO_B_PB(KeyType::HOTBAR_PREV, 1 << 4, 1 << 4); // lb + JLO_B_PB(KeyType::HOTBAR_NEXT, 1 << 5, 1 << 5); // rb // D-PAD JLO_B_PB(KeyType::ZOOM, 1 << 15, 1 << 15); // up diff --git a/src/client/keys.h b/src/client/keys.h index b6ce59b4a..60a7a3c45 100644 --- a/src/client/keys.h +++ b/src/client/keys.h @@ -110,12 +110,6 @@ public: SLOT_31, SLOT_32, - // joystick specific keys - MOUSE_L, - MOUSE_R, - SCROLL_UP, - SCROLL_DOWN, - // Fake keycode for array size and internal checks INTERNAL_ENUM_COUNT From b6e47a30bb05a6424fd6d5f2f0151afba4c5d825 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 9 Nov 2020 15:12:25 +0100 Subject: [PATCH 267/624] Update fallback font to newer version --- fonts/DroidSansFallbackFull-LICENSE.txt | 2 +- fonts/DroidSansFallbackFull.ttf | Bin 4529044 -> 5398328 bytes src/CMakeLists.txt | 2 -- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/fonts/DroidSansFallbackFull-LICENSE.txt b/fonts/DroidSansFallbackFull-LICENSE.txt index d3a2eaa8c..a7bf409b7 100644 --- a/fonts/DroidSansFallbackFull-LICENSE.txt +++ b/fonts/DroidSansFallbackFull-LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (C) 2008 The Android Open Source Project +Copyright (C) 2012 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. diff --git a/fonts/DroidSansFallbackFull.ttf b/fonts/DroidSansFallbackFull.ttf index a9df00585a4e44cf91238b7b31385e7e36e1dea7..0cacabedcaedaca8d95afe0e1d3a044ad337d012 100644 GIT binary patch delta 2380786 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¥yAq_@z!9{n1C(3Weaarvx;VR($3kC*ptji##2B!i&%;2_9(GOi9O1` z-5(|1&R_~NSV+D5f4j+x?R3x`5_|hGoN?H~-r3a9z*bzv-ea5(iQf-m6xkHvDt^C= zb+odN6CtrLiHI@eQoBJ`X z+r<81WRg!Ai?E6PE$pU?b0P7+0~x_Y3aP5}Wid+p?=}u_oZgT);5rVZF@dSfW;yGz zi32uqz$OmZ#JhtS$#`7HyX7ol4NAPL#JfjO;$RBtC{cA#i-T5ia4AY0RN|l#2Tz5> z|Mg`k8BAgt^HAddn%GVUJt1*u0LmW9p%`Tk)u8MlWe*+VWJvs>52=hL&;9?Q)Qh<+ zV;!yR<3vatP9h?ce9D+lEsZF9SlPp;LgGDT--|ICCEiowJ!RipjuP)F@yEK5=uq}g zHv1=K|CHnY|75BoJ89=^NOYFqkWPnmI;7Jfoet@AEuFm~@xF)OcgXuTa z|G;4%DBcxFA)OYizsveRROmzR`B0$`75cDhzc0r)9}>re9Q*$i-G5-!b-h3E_a!1E zn!AL!OXKtTY)+iSMdVH#L^u~sT!?GVNr=1Lxrina(L~})jBrjOL?oh#b0Xp7BGN8S zA}%2k?Q#imEhJitOI+@pNI1u&MM&R=e>_fS+d0qo^Y!}lgFGLnkj}}JP|0#Ou$=>( zz_f3h_U+*)^0sN;HtpLBSxE!U97e&n73>;JCb>+f0z+1JnX=22U8d}6qYG2MW6F27 zvX5h!>g@V3;#~*6>%ey%cy1EK%w-vVer_B4!-zl6VJYj7^Jh7Kmh)#h=WXY_?VR`f ze@C3p_hbh1!-)5$Fp~w;QqN8fagyFJqI(bt<8gSm!@FzPNE0n|&=W?yKagD<;WT|= zL{AD?VZ??0oN@gxTnZz4QyGbgdWH51?KM%a&|aavLVJbw3jILn2N5|GGMh!LW-})J zz@#5^hY=SCkj^-!QbrZ4!ic|k{+DWB{N_i6@+f5r1xr{PMqFCV8n&>9Ryw)t`u{C0jQHCarZ5wexKC$<`*cS9 zZ8t|b!=*6dvZ*eg4I@4b3}ZBXVZ@abvY1Fw81eTU3PTj8Qo$0|(#T%g=)(X0NB=N1 zME@{~JW5%}N*ZVmQ9m#K*dAKxma(3u zY7Z@R&=aBo1Br0h0EZ25*e4wJ35R`RG9@_d6At@?!#?4#PaNfJhz16RF`9g4FrOMW z(uA`HI%{BGh^|VZI?KaEikQPv>e#_S+Cwzxe26~TpW%$9fLSbLB@NirCy#S3M1%X0 zMh-56yIvx9y+ngovzdJyL+R>IY5gg!Kc)4jwEk2XRjgtYyEwvWw074^l%jNs(kZ1V zk)lM35-EFVMTx7GxLS!+`Kj_#<)_L|mG5SkD0MA<|9_Oa*ORso{o?^nVA>(39b(!c zrX6D1A*LPTpdk(#;-Dd>9dejcTny2t2a`!IB~-GU4eaC)C+Q8*&_N`O$3Oou8d}a` z*3*P(hn}V{MAr;u6nQ9djS|-=ag7q!G^4~dN?fDFupwlJ=vuG4*6Y&zJk2)JI=LL8 z;pvQHDizqm@M>!q-pF3s=;BIJ29U_Lc$q=^x5q? z{5s*+3D3G5qU&wqdL`U`5nX>gL?c&*=!R(_a;HR;?Y%e38MQk^pLPFtG`crLWBO4Q zqMJ;8lP%n23uF7Un$01)`E-c>rGORGv4exO(;cFm0i-jN1=Lc{P7dMP=Q!tVR8)|5o3>wG4%CUBxDLaRfzgwV7O-$<4xM za*LRQ^0~_ADxa%-uJXCn!Y2ryAbf)G3Bo4`pCEjK@Cm{v2%jK)g768#Ckmf9iUMY_ zkd-vh%wbM(F+`smOeVQZr-J2dV7u$@v;OFFCpaIXNrOlj&ot&z!$z8Dp@W_feSRPj zITSLRMXY8syE)1kE`@0F0&1yeCxwo(mS`nUas(e%B zn=0Q_`KHP@RsL#Bm2awiQ{|f~-&9{nWh9d*W-iNE&o&hQg5qD0Jw@>;vZu(NB74dl zs#kcZV+RLmr#nPn96&nbm`WK{tYQ;;Il=i574&B~V=-ZY2@6bEV8Vhe7_h*A1)W?D z(H%p`X0q#lM~NquEN27TIlxJJLo{^|3D!4N_*CIjg-;beRrpjBPBr0F6W-a6G{!K6 znJl1|dR&@24&r4Y@kPW3R7Nfa}eWvpi#`#H|J z5IxY3G&Fx;3W`4<`~l$)2!BBM1BySO_ydZUDPE>{nc`)#%Vd|yF5Ad1+Fbv#E>Et6 z=wF92iabi0#|rA$!9m*T4$+ad8j8u^9B-;Lm{(S$~v~Pk9N94^o;?eGmfd0QN>z5`t$!c_IlDrSBU2KXE1v6!Q6$s$&>IYd>4 zsWMEJVX6#MwUCuG&`h=KRpokBT@2B~gUKY9=~S?UwKTF9n|j!$9=;NyMMD`y9;M7< z1$FG;AnnM0MD`=HACdit>_=ojvfTB5WP>N$Ilu|dhiGwsG+(UwV$Bz8zSve4+sb#Q zVgui)VilX{4bhT8B%BV>|63iRrM9`$HkW$eQtxxuOZ44iAzC(*ZU@(}(ei6i)uuAi^{<_TH$6TU(>{KTvmsg;P-^99@|nSWGC z4knXaT!v>WSi)Kw*-IN;TnSNw`+uW`QRGp|JXTQ04i3^zcZi-FKsw`?N*PtGViUVK z!fEkm?4$aahqEDiJ}`{Yg6tP$H_C35-6*@!U;mF9g*OUs6y7Mj zQFx>9M&XUZUljhL=58E_Uex?W&0o~~#r14sKgT&2qOJW%V+>Q6$pUJrXD5d^NpFb$ z-QWKc{d>ZArcusf*06;=w9?7t5N#VmHj^o#lI3h*I|n$y`4GL-pW%$9fLSbLB@HxF zE&L_nFA3i+e7o@N!nX_GuK9M&cWk67L_Zbu(_71MD=wP6O;T zz)l0~G{8=0>~zLXXT0K!SDf*RGhT5<^(!WL#RRXI;1v_RVuDvp@QMkVP0(zDW(PN$ zpxFe?CTKQ6vk97;Im{_8hUnG7WRlBtDp{n&)>J8D)KKlQEKTABZ{-0_8 zGe7*9AMSSWZU^sn@NNh1cJOWo?{@HR2k&<9ZU^sn@NNhH+`&J0@XsCm^Tn*e^glPf zPtqfwq(?qUk9?9I?J>Pi(j%XwM|&z=|2?MPWBNU&-=pCkCH83dpMy~DKPOSlT$Zts zCR*sACq#Qw$YLTz%wZ|(*vdiL=?>8^yyq9*v(J0>RgdzJM=A5z#(s`-E<~?Qr-DPA zM6vyf?N@C7c&1T~srQ@u^@tqyhUh>(Gnh{eiXTw?fZ_*~_@(z&|I(X(c|JrwosN7u z9UWXtBLWWEgb$}9A5KTV8qQb>m=&Uy6tb8|5hiX~8lwNQ-v4UmFsHZ}qCyWb!t#$nmIqZjhN3=eo^%1S#(E1In-_ZIEt>4i4 z4Xxi;i_%AZ@2Kw`^}VCMcl4w08RV!zjvC~sLEbdTn+AE)Aa5GvO@sIxIr2Gj^rk`H ztTxG;?R1Bz)g-MZX*G!tk|Q4^N3FtJg|`ZC72YbmRd}oL-w6MW@ZSjkjqu+H|Bdjr z(VPp>ZwC^QLm{(S$~qkWTW44Q*5SW(_%VkcbNDfbADc=Uw(!D?*5R-Yhxsr$`r}YWu@wjZ(ZMJE>&cJ) zRe@99f6CXVe0|E-e^TgA+c`w_Ne{gtI&Fogt?=}f5dH5^1paRxrOaam4m~rO5-M5F z285kCzzNQW=>PgNoUs%z3zy;lR?M|9CgX|!E@9#oeKQ> zr)w=A{r|tNy`Gr9%k*8Qe`hG8$fJ~bte}n^9HgD@5S?|Y&bm}*$1#;Ms#wJ)c5#H$ z^o8i%6tb8|5&rp4(Ys4o$5!@njI$v+C;Xi7bHdLFKPUX0@N>e?2|p+NobYqP&k6st z@IMRxv+zF)|MMJV`vg4tv+O_1_6d086Y%JKU>Mb-J>)Zk`P8tHCR*sACq(ZJBqE1G zX0wRZY)1Hd!rv3#ExcQJx9o1&-Ll{J_4~el-`DSd^tH3zH%RsSCV77sM>vg1dQ9RY z@~FooJtpZfNsmc-OwwbL9*6ZftjA#&9CktY1>qNjUl4vl_yvPpFvtaiTrkK5gIq93 zuR(eZ(rb|3kN*7EYm(kYtY$O9dxiH3|3LT$!aorHf$$H6e<1t=;U5V9K==p3KM?+b z@QcDP3co1)Vj;3G%DyQ3qU?*iIm#I>h3GGS|8Mk{kxZgEM12DK1oR2$6VNB1Pe7l^ z`%K=aTwgogA^Ph8(iz88%BW%$o7hVmU0ey#rQwXFfN~a7y~e{9_RvZvmqX-Z`N+re z(ch*plLgdL&rS|uioab7(dAS|GKpg5vW)d?V?Q1Agy_S8L>TbHBG>=JIi4(K9XmpF z04ui=gm+4fngtauXmlK>1@jvuuIAcR~{0{}5 z%wi!cX`ng89~(_RGnh{e8)>424the|e_)6|o-m$ic<+D#q%)4Glu^YhHnEE%xc@I6 z&==xQq>#l#ikQPv*0Gg+9OG<=2L^_r;6Md^&L8`nKfY=#hPlcxR~hCi!(3&Us}#EG zFsHDoL4&cWLAg{<_h40ntZI-|4QgaBZFGhBlPBp7@!&z2a0;hhB2Ca%J8#Kd;L%uL$8GR8eb1P9pYiKMiFRd6Y7b71XhVgS68f;^6~GXB<;eYjQypqIBKAo!<^z`h~vRzlFM`|5FQJUg~!5U#bd=| z#S_I7#S_I7#S_I7#S_I7#S_I7#S_Id6wmO_|A{j+&(thavrNr0HOtg2Q?X3NG8M~I zEK{*e#WEGUPOlC|AvFjAOPO*}`uO z3}ZC;%wRq>Y@~@6I_L@UsDZBksK}EX3YpC!Rq=|BuI*Y>dgqc)=Ji7~=(FK6=4H+UXAQ zP1bgkwcX_Kn;d>q1xwh#b`EfY^C2GFpM>5J-<-_hQdbWjlyw{F*_;`ok>ixIw zp_OWf-|FyOhv)icu5af0Uas#=@VyBNO;BipLK764pwI+UPcZcaQ%_KCf^rj;o2cAG z;S&{@sKCUN^oICzgRqg$jb|F=EM|@C|G6!mIQVl8{+xq9=io^Wp5)+34xZ%TNe-Um z;7Jai8}6e3Qv}> zmPYo{Mi*B?eA`e)kw+=>SV0{-I7mC)AiJQi#8h%19>Ra(rPvHEg7b z7CNZz3GtMHWHFH<=CG7?Y-JzEI2+xKoKjB?^@&RH9Ic!ZNB@#U^%fgsu>O zN%*vZMC4G&Y!H~|R-{;wd#w7NQRFd;g{))?duXLI#3lVm zbNx%kcrt~VSX+s;l~`MewUt;~$(az}8?d%}$1$A>marCO?^X6*W$!&7;?n*MXDrhw z$JR=1t<=^^l`U1aRN4Cmy8icNd7|xo+TN$FU!xJ<*FZCeImP7=&(L;;vNNWj?2HA} zQqN8faWcd+O+QoK%u?pDf;x5}Z>H&I%DaCEV_g6H1>P_4eu4L!{(jTnZ~FU>awf#H zOh3!?vqqE84CYhAMw&3ytPV`|z(68$C}cJ^`+)2RWIrJL0of18exUkNh|5wL$s~%I zi{(aRuQ|cBL26n?Bf_`LtJi%azm6G zqTCSWhA1~gb-5|ZO;PTkatD>0qTCb@n&LrIJZOpsP4S>99yG;+rf^$D?6!*7Z56TG zD*Uk!;clyl-BuA-2zOUSTp_zcw!11~cU8phs))b3jr|H%L&eh`0M={&R7bV#X?rnKr^zxF8k{jUH?kqmBK59 zR|>BbUMaj%c%|^l0|>7a{?H&2#xsp_7PE#e?4gxTE{AyD5VD!fOcqefW_DA3)WaDr zh4>q(jARnU%w-wtv9@nm+c&K38|OkizaMFgVG6?M3!g81em%nH%btHW#NP}wg?NF? z1v0-iiabhP|8LC;@xtktdf^h*(#T%g=;BI#ljbtP|0#O zu$=>(;CzU`(;wmAnM5&jS;l&{v7h6d3-OYEq%npm%w{Ro>pW~_AICTw;{O*I#%S`H z!F+1iNE0n|&=caN1Bu9?5aCM~v6{{7M)p$K-?W0X zrEoW?#4D>s!5u)of-rM-jeS_!GjP z5dMVlCxkyC{0ZSt2!BHO6T+Vm{)F%~DU2eIQs%LOI(Bf7b}oka$-%DwlbPf)oeGw) zmPYo{Mi*B?ymlyKDPR_hS;H3g&`KwlL;TbbZ0{-Cd&>5nT0kxJ?8Nq-^7&8vRBwpa zr81I96f>7)tY;hhInKEd|F9ovjKTJPXnQ}jy&u}%4>z-$qnrux`oJ)3Z+$*9sA3h3 zuK)VIo|tgG34hd|;f!Y*<(TkCCUoOa{38?oNQocygm^;=SxlseIV@!zJ2*%?-68(* z0MZ%9RLW4|$E#d_cOk`YLWFdfD}|>t#PH``OXtGlP%* z>+#tdHqt~39rT2_VIUDX*h+(~G}uamtuzR45Z)lXL3o4k=Y&6}_;ZRsr}%SVzH)*~}^G)^G%BDk{MELW;IE3Pp*V`i#Kfr9Ue?j;QZJZBrV}FJ-o@v-bqfIp0MB_Qv|3#~K(JEdX z!xUz+fLiLYi5HJ@HpE*4!x&9IGpJ$}o7lw>PSY3Se^=(;J3_o|BFB*Nl8l#Ryd>kL zkN#)!B_S`(r-qF*(SkR=)Dzb6LiEwuQJ!aFf}Tm2$sQ?pMnFO1WRj{*`jSQm#e07Uf!$Yf-McMY|U5TC{7?u0^{R?OL>J zQSQG|*p7n^)vz(d|Lws4cHn=Xq&LKemHPEumeD~^h>r{;B8NhnXu;2q`1u=t{zl~b zzu^UMc)=U9S;T5Kvzw!w;Zlf?rZSRA6yw073LRDGsPLo0j|x93{7vC+I{Z!9Z_0jC z_M5WbJjU4&w+4nW+VyYEX9n{T*ebA9V5`7Zfvp06Bk(th{6>*BMcNc;Q>0CiHt%cm zzBcb`^S(CkYxBM~@B6Ly{Z^6RD&iKL_?T@T%VHu$RL}9Slyz)nA6g#M@+~dj((bCJW83z3hHR4l};{)_;*7X8( zoDcEu%W+WqY!-$14-WZ*L;hgGKbWw?gdHYyS4`}#nAlx0afdR0H0d8r`bU%g(WHMg z=pPOGN0}%4GaSGFBR;v!ll>w7pGlJ6+_&Q6qkN6B}TJgel{gz-$HoW(fstn0vaGJglcc+lWM2eWhQr4khw}RaYb_;)BxI10q z_l3W&;QO-Qm;Ju%_hrAY;QK9f&=cYw_kYDbzS-lz9tZX~@PY#`IPii4FF5dm11~u6 zf&(u&@PY#`IPii4dmY&8z+MOTI54a9$;5lE2)-itir_07*pBJ0 znC?n%i2pu_gz-$HoW-nR3wvmF{r}#{<&cClawudri&)KOc5{@oA^C^EFh-Nl4CYhA zMw)1$gT9dTOCgJi6fuXTtfP9XhkYUW*iH^{lHQQ?A4I}>94arqgn8|^VR9|(%lk*`N)Suyur644q6#hx!pR|cj z9t+9f$tXEk$-zo~sv#sPWg)pbi}sMDZVAah3jW8wkPI>L5Z@ot6_QVT-=}wkWN0S2 zOs9e+xc@g9+UUt%+VBSVZ6wz?@EWTgHa{fSx*Tc#^`A8Vr%NFjZld8P8g8QDCK~Sh z!%pBaO4pP9)5YN=;uwTDBT#M;xXJ>A;Vtv%h^)5}@R8n&>9 zRyw&Hk`Y75#*`yUsAM@V!HDe~-~{JG67^>|HXIc&i|U0QR?Wv79I;vgeSri;fe4>cp^KIoybmPXQZ>9ZR`(8rq@+xdZAk_l1wkm z^g_2Qj*SCaZ zr0GUhu!OZVvX?fxxDt{ZhBAsgN}0zB>e#_S+UX8S_5e(qJr09p8zkEx*#^lrNVY+; z4U+BtuO!emn_jRVY`XT!nHK%H2yF zT_Ks^y%W55!Ycf1f}c(Bvk4#l>`F-7s*y~TJF&XJ!z>oEk_MWwiHV&d`JA?&OJfXE zQ1)|+Sj}ekaSR0~4M4$3lbOi^YVo>ByE)1kE`{Xt!x-)Qe?H%n8O%r9&o`p&=TC4x zB$G`tS=-50JK1U{m$R5PY+(;pJK1V)>qmsu-d4yQR#1nbZZp(vr??!Fyfpmv-z3iq z^GuazsytKWZDu#x=4qR!?d_?IWD>>9Wf|+)#(p~J2}ynmSxlq|CGwZDj;+{OzK!ME z*cbf%-{cGFjAJTgRIv)1_`(5BU=vepVv0>n@%0p6e{m2AHuFWLzBr#6Hqt~3r|Anx zfl>uZ6)07pRDn_jO5IWI8+Z7|9rLiNJL=fML9FVI%OROMglr~LLM64-vzw!w;ZjKM zOl2gKQ0h*by3?law5dC7>Q1HZ?4Tzkg#%sx!pM^x3UL_}vHkbHRv*-WN{N|gBWX7)FPBd=!@4(-)GG6tb|c5`{_@vXTZADp9CJp%UA=*FpDYl8bHKtI)m6*}!%V zaDww8aXUuhc8tXB7)faXvsla;l&CJ%qVzaDA#p!Oa$iIah0JCV>)48E?>olXkjxl> z5;K&Tp~Q>|mavva_M*fLCBCA>SCsgQ5?@i`D@uIDfL~eT`hR7MCwpk6lglBQnZ_8V zpu|ii?k}SX2i)&~`yFt<1MYXgECVU3V?CyvWyo0_7}D(-$peOTdq(oW zNB{lr{*1)^8HxKdk_SxrfGHnnr#mEN14ze|Wu`2vUuS)#u zSWNk^D}K`c;#DbqjlFr86XRl$fK$oH0ycCJU&g-u0g& ze2(xr!siJ8S}G%%giU;HF3VVt3BP8-ubJ>`CY&pLuJF0S=N2-XMXY8s`#8qgkbFHb zjM3y%MwRRT^;I;omo~b%5|YZHjHQ5CEMz4ntTbVz2`f88@{ke_De;gJ51H^G6Fy|Z zhm?3|D+g((J0$Z4lSwYqsjl>}oDFQ}04F#fl5Y&cCfpB_xF00>hE05Bbu9+dcw65ml`$q=%cjO-<{ zm&jh?-(yQ;FFDE?Y@*tYCdvOBO+IB*v5HOX;s~d)iKRBNGz$|hHQ~}ZEM*;A*~c-? zhQy5~$#-Rc_ew~X4P_L0lroPMG`RlDnmswpDK2U>m`rS@dO8&>VJ+J^zzNQWWO;uQ z#xsp_Y-ag-w&5}^@1Q3n-y29o4u#BSk?a3G?Z2n}_q6|BJKZ5!F@SWGSfRuUB~~c0 zLWvcP?4^w^O!%k?A2s2lCVX@j3t34627J_jk9Kl7BsFP_VG7kVJuC{zV=0`ZHzc)# zFjcLoYE4yZs#;Uku3-y%XhmSHz{iJ>&16cbWH}qKvBz!f@e`a6$;$r7UMYK}?CO=f zJvqu5E`{X#sf^?Zr|ApHD&6zNQ%2Yh;n)6#k^}Cxx#K3}ZC; z%%F-@Y+@HjI89$jo=PDL8+*#ep0cs0Z0so;d&x8cpzV0CHbcf`J z14w5aQz^rNKXl*^9r!~B{?LIx?BYsD)(>Ya1bPD^v5>(V;lYP0&1yeCx?*z zW7&0n|3gwIyiRzX@H*jj!s~?B39l1gC%jJh)54z?{tJiNS>Abtn6oHKP&rL+0V*;R`#>i!k-oXtngG3*Rh!v+&J||3q>3dnE4nNPeRDPZW2*NAi;mZ07(c=?%%2K_rZK z{kKf>q@2a9VGDa`r4!9x(ENpLCR0Ks%Mt#9@E3%?a020t!W)G*jz@N*>_!7Nu4fzj zInKF|yx7n6ckf5?qP4teEiYQjiwmfwo}C=x43|RU-j8JKX!4oCd{(iET^!*weIfbx z6tb8|5w`d5OIgQO_ECMz!`YB*3kcsPe4FrX!nXMY`XrY6iki0Yy;V%h)N%%{` zUs^#OJ2*%?-67dNfON(&l`^VOyn4Il+cn>=`F72>YyPt4FAINJ_{+jy7XGs4FKhm? z<}Yjhvf?i*zC-aHitkW-hvGXF-=X*p#dj#aL-8Go?@)Y);y+dVrx7{$`@fT)&h}&x ztJ%zMg#T1{lkg_tO~RXmHwkYN-Xy$9c$4rZ;Z4Gug#U-|{}BEk!grRlm^Ex+53O`^ zIV7(PA=~wTWim5aKrQv`zP;myLEg*OXt7TzqpS$MPXSB1ZtjqF#w z=2fqG)oWh$npeH%Rj=9QHM^?4XqOl5DxoqYKU>FE4sr@F+?|Grb{8>^l?dFupAPy$ z^7EmLMY*5PrG`!H zJ=<{T-s7AL$uIg5q1-PDnZr^X@(V-!Vjssi8#|>${kmaZH_YpX zd3_m%d0qDF`(6Lng}*NRfbavt4+uXX{DANS!Vd^PApF2?Z0dkb9k8ii4r4U=%wRq> zY@~@JoTe`%2UEx*k5U%0lIjKz%^ctl6fzs-k0^gc`6J37QT~YXN0fhK7^BIjj4D>4#2YsFMjIdf@BbTD zLUME{qp-rGN*q<^D~So8@d^I|s0`-&k2&e{8JH#@cMGP1!bO+mvln zqD_f5CEAo|yBw0=4k4S#lu(K6-^%{2?CReh^5i7FAvu=HNG4ItTx!_JF52kgN=V)s zijBRMM=3V(mQB1>#|{qCPIpL-JN)?Gko;~KqseCm^IiYnIpB8=_?-iOcZAb8;Do78 ztfT=`ojA-XE{5dygUKWp8~c3)OIS-I4*R{bzgPD6vf7nxSGHZ*c4ga@ZCAG4-~XMo zYum1EySDAx{$T*=jAJTg2>*ldKM4PW@IMIugYZ8H?-1T0yhC`$EEMlhyhHI0#XA)5 zP`pF&KPvvm#jIfq)q6a&(#hqJoJ?a3Q<%vDYN=-@hd3FM|M9*5@xA}?z5nsO|M}>9 zy&*X@h=lP>qZ|jGa^NWko^swP=bduiDd$!HX-G)^l+9#HsAM@C*v)6UZj&U|5oq=JDCLh_IvO8sW%I=ii*+v&vLh`oX|Cqcziabi0 z#|rA$!9m*T4oTMlH1E>9YbwIKgm($=65b`eOYttnyA*#%@plw|NAY(Qe@F3m6n{tY zcNBj|@pq~m2SYWHm==Y*dVey)R_koQTRpSf0;xvb6LiEwy~e%oC`@`KhhY(6lSu3TI$)!Ax_d8lD`fj zVLa0)XEAHo;`;w}k0-5kaycZIhLFuQL<=PPl~S8~~!F7Ks{F0O>+!=a2Kk5YtxsQHJQf2jC} zihrp1hl*dZl`CVgl`At@KrQv`#8$4H;ZjKcp2|o*`s=@cFJ>;wSWgozbkGwr!ayQ& zC}cK^SjSfOag4Je;~xUU7{_!fSi%OjbAS`{hKzoxRFCv9iDKrmjP-1zg$|VXSPEH8 zq=-2zMTw6o@i8Snro_jT=&wY7CHjvhpBc=jhK)2KyT9z}{=z?Q!jGHqFoR4fMXN29VA;yzi-47NEpvF%2~`B zgnwH2r-gr7_)ytHWe=4-RQ6EWLuC(@JyiD4ov!~-;X{QF6@HEIYlL4T{2Jlc2){=7 zHNvmi!X8@b@Q$i)n*}!%VaDww8zV{G|kgAPt!b2^E6vYQ#?)aG{yf(@qbeMpC&Pb`P77r;ela{CLcc= z?q|b4`q@URn>@78K~Ko|%s?V?SW6>&X`?G-q?cnL-v5 zDPj&wS;toPg^cSKP)j{KImAi)|No3EtIM*wtno~voW-nR3wvm#lglCF`XOXv!s|_a zy{WG^_4TH{eme&^!TFFevOmKaO98W3$V%khP~!UEAmD~8AtQSz4$XFGwnMWWn(al| z4!zN#H#+o2hu-MW8@*>#KlXE+b0OoizW!_)r??n0Mh_;FT&7dO64uhlUaH$XbfLgM zEAY>w$fJ~bte}n^9HgD@kTGTe>5OA4WmK_>P3+HrpM2eWhQrCa%n2<4c z3Nu+iZOFJ;=*>cJ7J9SLn}yyi^k$)M*UR{qau&0OE$pF{PA-Rx9NWsVtsL9Rv8`JM zkuaWVc>gWle~bG+GHwxYi-21M+#=u>0pkUX7cgGHcmd-pS_;wbVc zWgaW2V+RLA#^+2l$?GO%F_9wXa4uwgz8`7igpA3lj3%EMR6BUGgC{$9vV$kL(Z!XJ zaobQFe4B%BbMS2rb~{~$+vzfHbMS2r&hvGiuW!#~ddSE(UB2n^O_yInCCk~sP7ZOB z-jMNyL9YK75>Li6jdB*VhAkmu$~dM{hN4pxoucRzMW-C$G<_lCizfe~$-lThWE2cV z=>nw-lrB)ZK*<6n3zRNUx}crzka5QV*Z+=mPaJfIgYIz99S*v~L3cRl4hP-gpgSCN zhl8d%XsUyzTJcmXo@&KYm$Htn?Bf_`L&lwfVT>l98O*1KjWp5X`nw%2!|iYxg#(Gm zp^(`uVl|uD%~8&9DP(-fwfxdZCQ-~>ma(2~A!FKLGRb8+6)a&bjqK&4|NKwu;!4Q4 zYbc|zy1T6Iu6eAWjvXANo$in^eE{i01wz7|7oDCU8R##+oMWe}Q2J@+5BTcl>K~Ko|@<1YTD8%NzY;#{;&1QCUlrvlk z8O5@TWf%MVe=>@N7i(Uud9mijnip$cta-8K_h^2P=J#lRkLLGievjt&D1OiXr|6F3 zyQ&NQkAE%~cL{0ILgW%6-*dh{qJ_joBH|KqC(53Ry!H0>6KV<6I1h`~gHvB#V3m=9enWSD3FbUtzw&e1&%^ zyfYo+cN)Lb_?^b@G=8V?JDvVcr(ZOag{+`AB<@OM6jR8ifYoeb7fp0>HY67J_52qP z^}$svp3Z!VC}%76IK^V8SnL#cJH_2jako?4?G$%A#ofm5Hh#D9yN%y%{BGj~#tUp0 z*e=?p&>u$&5N*b@>z^c#QZH~!FX z{Gs3YL%*@eZ!Gc~i~PnSzpu#eEAsn_{JtVlMWTvC6^Xh})P17v6Lp`c`$XL*>ON8T z*}l*AeYQ*QGk%{FFB?QUQ^}!_HB{j`m$}YmU7QPv`)9I{6|83)dpXQ0dP8D)8l#v( zHU+F^6T4`l)AL_`HY9%3m!XVhI`b)_oUPPzh~r!g39rv3RzyrBi+qaNz;+sG=QNi? zVx_~abhwocx6cPtp?-KORUe&2(`tBuY{khCjE& zsY;eoK@G0I#GhB<&-;nMpE&(boc<^Nyj3GzwHqn*$4YmH#OlCcN=N&VK`u*J%Vz3m z;V9=r!rN;JZ?7f1y_WFyTEg3FiJvaVm;cn4|8x)He=7c`;@1qsm#&%2Y!;-4Ml7#BifZGT2Eftf611?$_yqcKOgmCuc*VtS^Sj43!xwGgM}%%+Svb{oK&c4gK8E&kgPmfJ43U2ePFfB!R4ZoJ(1gT@~m!!+E$gKpqK zH}Ievc+mKR#ve5PU{6S_8^}l|Gn>V%Vk0}*kLz9Mb{}%P54qikY(HfCA=?kxe#rJi zrN$pJ{*dv9j6bBjLV1Pq3gs2bE0k9#uTWm0yh3?}Td5FUA^c(C507FBZslRO@~~TZ z*sVP5b{}@T54+um&xXYMz6@n7(>?$7^L;3yoUPPzh~r!giAM$yF_A3tDP{xPX{4Rg zTn>p1gGgs8ITW&nDr#w_i*q6Ii_iY`|1XC5Fpf;}F#ZeUzcBs_U_IN|%VA1S`OzB^|B=Qh zrjShmtJ%aZn&{+gNL2M@C}Ww+BwbTkk~wkbf%I+A#13jmS(y*7ZQ)BFpP0zlE*UEQB4D_oZwPOY)K`_BxZU3 zTNe3Xe2eid#)yAuh zR~xT3UTwVEc(w5-jXxPNku35lW&_)4q@7abPb#lbUX#vLawx>Dc-1aZ<5p_iN{w5o zaVx)aE5C9pzj740~v{!ZDO{Gc}mPvVxAK7l$fW)JSFBSF{Mwbc}mSw zYMv7Fl$h;ewu{*=X1kc}Vz!IfE@r!!?P9iz*)Ha3F;9zmTFld8o)+`8n5V@&T}=b6 zoZwPO>_{bv?HxIu{|@6jjPEeM!}t#4JB;rz{*3Wwj6Y-i8RO3wf5!MT#-B0%jPYlT zKV$qE<2#M-G`@2Zvsgq4mF&RwPTM+QIeU$=7_ zx3X&}W0}r;iYR9*^&H|juKd{nL`)=$e2UqC?PqO2Yx~*Hp8vDPYX^~zYpHeRwQi-> zt<<`eTDMZGyjFRw^15saSj{GOg~V^hFpYUErHn1u-Ys&s$mi@oXaBkVAyF@?UQ}tl zs(MxRs_IqMtEv}O?>GKd)NhY)CL|jAFa%%J;ENi3QG+jP@I?*2s9`q;ImU&M`0xIV zU;;B)$O_i8jlCT9{Qvuu54|C=Cyh}|!3p;`;T|X4HL4y|(w--Ya~s@V&zK3g5fM^WUp{ukyXh_bUIL^4}@{o$}u)|DE#R zDgT}F-zoo{^4}fC`0tE28gDe-D7;a4qwq%Ijlvs+HwteQ-YEP9;V%e(LHG;8Uno`n zg7O!Xzo7gD!_xIR*dgA{-W_0jlXF8MdL3Tf6@4h#$Po4qVX4vzi7P4c$4iW z+fBBcY&Y3%vfX66$#zq#=ihX~hf5*xQYyw@GX9eBmyEw;{3YWr8Gp(6OU7R^-fX6FWY|E_RF?kwtdj{LE8sy zAGCe2)c8T=2bCXGeo*;Aj}E#+;!t2PqcMKS_95Gc zY#*|H$o3)Ihio6R{fh0(p{YTq>wEaihf3*Ea+kdqE$1czRkH*`Kw;69U-e$bb zc$@Jy<88{@jJFwYGu~$WRpYN3f7SS_#$Pr5s_|EiziRwdXiIe_i*)sf8BV8@ebo1#ygC681FFNVZ6h5hw+Y1 z&W6MreG&e~1ZJ|36|83)dpW|HkT}wZA&l|-k4*Dn0n4eNhCQ^=9TIQ4zBh+4kt{^K zDdJ5LZ;E(R#G6j|rW1N?FVX3Qole;4gq=AQ;`Tb-UZ>mZJj^M2L*jqZJpcb0<--)R zDPT35*u_DPaUmqS`ZIzF%)|-1oUqFYyPU9VKSwwd5^p)-TTb|v6TanuZ_Q&VWo%(L z4*1qd&;PBSkT^P!kxXVbi&@1+cGAL8E``L~sU(@iEEZ8h6}2?e#kr6;mO{itvdE{H z4Q!{h(GS;m>@=4{;+;XbzIR;TJFf2?*Y{32+t|xtPSG0@$I}>v+dJ;|j=R0%Ztu9; zJMQ+5H{te<_k_f|gBeW*xh!F==l||zAL?kq3Ew>*5-0jGobk+H0n4eNhCQ@#665a; zWF(Vud+#k~6}I2A{a!04xD*m6Q%N$3&;IrQ$wfYtP{|JV(Lr}eydO~h{x~wpV;Sq% zP9yD{4T)2I8Om6uvyc_6XB+!*z*FZ#;sXc#zyUuP@A-e=gdd3bK*R@C)Y42B7enIo z03xQ~nok$tnon6z}3_|W)=#y>RvVJ3OF<`36VO#`i*=5k1!9Yi`)$)S)nxV^J(?`$(&oC}Hn zO<@@0u>HTb&$+R4ZtUDy&;KudL*g$(8OwC$Q$#sispk;Kxfl}X2M{rlED9)N3%fbU zv5@#^3fcJek5;pZUHI~keECObL*hbT&;Noizu?O+`0@+B{DLpP;L9)g@(aHFf-k?| z%P;uyzxwjO`trZ}^1u4>zvffS2DZ~kJEyrE65jJmc+W3!(M?@+Qy1OT#WhsnrY@Gc zs*A4bqO1D96oxU5O!8R9I;v@)l@nYFiA$*@nZzs>Q9>m<*hdH5A@OlwFr&#JmnEM6 z$7_8s{;~0ojel(XW8*!>dyMxO?=jw^yhnMD@*d?q!h3}G2>(R*C&E9ONEZ1NvjMmA ziCg)^t$gBEK5;9(Zl%|)^iK8sdtFPf@m}M-#(RzT8t*;M#gO=P01?JNHU6pbPmOV+*@!<0L&H3IiF* zWM;FNRcvG@`#Hjy5dB>rhA@U{%wstf>|h@qc>h1@6Bx{BGRS2KYpJGzR!(p!M1P-3 zI#bD^kTq0MOEX=Z3sK(`hB1yz@>s??Y?t;m-q(0v<9&@^Vf>0DlbFRKN~lEn70Rzr zeueN9;VHsXgr^8k5uPGEMR>|)>S)1sitT@}{SU(bVLJ0E3Z>CMl>4xidJb`%iy`Va zfQX4?(G;T3`OTkm>d!g#=bZX;Yp9|&ME(2YkM;M*`uk)3Kl@{DqQ9Hy?tfO$=}o1Kh*_H!;9XcwaE` zzF_ouH}QEl@%hnYkjoO>#OK|_=iS8T-NfgQay~@f7mU0w7^Rku_hSYNSWX2s?4ga5 z^n~cDff&Ea_*KTQGJciutBhY|{3_#D8NbT-K;r|A541hd_CVVMZ4b0P(Dp#v18onq zT{_VC7mR;lB$JuVVpg${o$TibXF`-_Jk5BT@igOU#?y?a8Ba5wW<1S!n(;K-U$p&2 z+h4T(McZGjrh!&Yc>Z6!6rw??B$>o47EwYaJJ?4D-66Ud!n!+%~ zkx3rQSVuJtv~mJB_9Zv=B{%jZH})kr_N7IXP{|JV(Lr~JhS?rwdzkHEwujjsW_y_J z(qYDj86ReRnDJr8uQh(H@oSA=Yy4W{*BZap__fBbHGZw}YmE;N3}!UOhZ`Sme7N!9 zwujpuZhN@x;kK`{eVy&=Y+vVJ|3%jszs~q|#;-Geo$>38UuS%T@e#&H7$1>AE=yR; zX6k6+DCa|z=*MuzGlK;zr-B;x(8fu6LKOMm|Ba%NOlCHVF&-I@j7P>J$cx*g2 z9vhF1$HrshvGLe=EIbyT6rL2G6rL2G6rL2Gw4JP`k#_v&e^K&si2mOo(wRyQg{+~9 zTAJw!(a25gqA5gQp2i6-g=kbNhdD)Wh`zED@m~@D74hlf)5WKYPZysqK3#liy884Q z)Tg_e^pm)nuMR~0S2IxmRrOz0|5Z2h)dpG-|5fp$#g7(0TKs77*ZXs?Ux$-k@6Wy7 zpL@N~>xGUHIwnaI{`zk;=4^<*)|a7-WjgaIqC7-nCor4EtYRZhH+DZqI1{3O+RZ_Z zaUn$G`ZEH*cbwll&hH)P_m1;>$N9bE{N8bHX54wt|Au}HXFM}lz;Y_s!9F_Z4$=6) zU`CTk9?MuqH4QlJ_|set(boszP+xbbuRGM&9qQ}lY^9#kLw+3RVu&UTAYuyH6tJ32 z?822z=){eE!;O7o1QVFaLRPSzZS2KA9=_op58vnw(Zn=HVSC~{mQv>VPu${z>zmld zNqR!`&4G*z(Io%>KO6pMf&VOUvcSm#Cr>1ce2Uq?b{c69(YKOJVit>N4bhb0jK?3F z;*U)!q0;lev44nebdnpL!v&Z}-FYw{3sh_P1@9e%tuB zjepyCrlCwjnT9eAWg5yflxZl_P^O_wL*Fs&k;UH_#EMLgwGK^M|h6#(j4VE({L?0 zt|iB{f39n}wJ)yaR@ZW?Yq`~}-0D_tEyu0g>Q-)bE4Q8r(Y!tk zp@d3yu#XP9Lv&kUFr&#JmnE!aGj+6Zl+XV8e||rPGoBeNU^&L;8=r4{zVZ3SZ#RCs z@!O5xZv1xRw;R9R`0d7TH-5YE+l}9TK16x8^K9qY&a<6oJI{7r1vQlJ@uMw7|Gt_{ z?4pTI+{^+uv%t+Pa5D?s%mO#Fz|AZuXDjs_;y4#WbjJW9CXz)y#cW_ZjkI%`%bx$j zK_Ob0&Qx+JWDQjz%3q9#J4M_n;!Y8Finvq6og(fOai@qoMcgUkP7!yCSmgAJoc``S z{93_m{91uuyGP(X0`C!cPnPF@kHUKtde1MqN8vpR?@@Sj~ zxX>3D`r<<4g}%7Zc%kuojo)khUgP&V{k^vDwSBMcdu`uq`(E4k+P>H6mkjd!mpJ_r zr(fdqOPu}(izuOzTAJzNT!@yYFpP0z;)F|=v5smQXypW#LiEE_l1yS2wtr~*hqiyX zgVKF|bkH55qJZ%t<3+}c)EB8QQeULLsEK1-2+@808Nmc*vXB+5XB&Gt%qe<9v@DHL zOd*>BR(t--Hu0J--*5bWFvUzvzDB_Zz?eOo*2EVF+WG z#ypl%7NQ^7`;omBeHqGFrZb=29Q6EGIME6xTIowy`qGuYbfqs{=}TAo(v`k+r7vCS zOIP~Rl}@zMiHe=5*olgrsMv{$ov7G}iXEuffr=fdSU|CW9}D=gfFBF^v49^7_;C^C zp8t=xQqLidb1_6E1BjSN7Wovjf$cP6yu|oVjQ?a68`&A6RU?_qY!>6!R{6D6pZ(f? zj^O4>-CSwu5I@E+jd?7kj4kX5(duQaqnZXL7Q3ThDdvo=oB6QZ>Paq_iJzSj6!<7;iN zwY}E%TH9-FueJSv?FVc>;P3w&Jz)F+;|~~r!1x2kA29xa@du1QV7$zDnej5?Wv;c% zwU)WoGS^zRll>gwOo)Eoharq%8uM668C%%RL5^|3^Dpnu2qrL-g{)vb+t|xtPSG18 z?+Hc^j$#Vg6tEiO-V=|J#e@OX5${$kxknx9%drvU(o?zrX!KlJ`h4BjG6~-%!R~WA_USYh#w)X@h z?+HfU6O0}f{;=?eg+DC(Vd13@D}Q(syJ(`5vmx@LVB|%?$cuuJ7X>5l2}bLSD98AE z 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

MoB6*+Hpe+~S~mnLcNKYzEQYz;HC7zP#> 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 z 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


~o*Dj$>D#L69Ji0oY5Ij&b5qgNwuOc>l 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
    9dh*O+FLYA-5e+LV!SYQtq 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 Wk6ez=tmk8In2!;{G~`I%%KroBKe3en delta 1591711 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%0Djh2Jjx_5%pNUHDkxV}*|u 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�c%^0U0XvhLQ2X=17anSm^$vE55^@NH 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


    ^8NA?O@I(p8deSIq% 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

    8`iI`1sAs{m- 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%0A@kuc1rcN2CuUh@B6F+_nvz;~%0#%!k|8 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

    HdXStuHt9O=EWr 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�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

    40G=x*fh*ss;-HdEb*2$~rO?VEI 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 Date: Mon, 9 Nov 2020 15:22:06 +0100 Subject: [PATCH 268/624] Mark additional locales as broken --- src/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4724bf431..b8ce69f1d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -677,8 +677,11 @@ endif(BUILD_SERVER) # Blacklisted locales that don't work. # see issue #4638 set(GETTEXT_BLACKLISTED_LOCALES + ar he ky + ms_Arab + th ) option(APPLY_LOCALE_BLACKLIST "Use a blacklist to avoid broken locales" TRUE) From fca4db4184ac054c53446c0960ec578ebc6b5857 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Tue, 10 Nov 2020 21:02:53 +0100 Subject: [PATCH 269/624] ObjectRef: Re-add legacy code for set_physics_override (#10585) These arguments are used at least by MTG beds and homedecor_common. A deprecation warning is shown to safely remove it in a future release. --- src/script/lua_api/l_object.cpp | 42 ++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index a6a7c05f9..bc59bd55c 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -1413,20 +1413,34 @@ int ObjectRef::l_set_physics_override(lua_State *L) if (playersao == nullptr) return 0; - luaL_checktype(L, 2, LUA_TTABLE); - playersao->m_physics_override_speed = getfloatfield_default( - L, 2, "speed", playersao->m_physics_override_speed); - playersao->m_physics_override_jump = getfloatfield_default( - L, 2, "jump", playersao->m_physics_override_jump); - playersao->m_physics_override_gravity = getfloatfield_default( - L, 2, "gravity", playersao->m_physics_override_gravity); - playersao->m_physics_override_sneak = getboolfield_default( - L, 2, "sneak", playersao->m_physics_override_sneak); - playersao->m_physics_override_sneak_glitch = getboolfield_default( - L, 2, "sneak_glitch", playersao->m_physics_override_sneak_glitch); - playersao->m_physics_override_new_move = getboolfield_default( - L, 2, "new_move", playersao->m_physics_override_new_move); - playersao->m_physics_override_sent = false; + if (lua_istable(L, 2)) { + bool modified = false; + modified |= getfloatfield(L, 2, "speed", playersao->m_physics_override_speed); + modified |= getfloatfield(L, 2, "jump", playersao->m_physics_override_jump); + modified |= getfloatfield(L, 2, "gravity", playersao->m_physics_override_gravity); + modified |= getboolfield(L, 2, "sneak", playersao->m_physics_override_sneak); + modified |= getboolfield(L, 2, "sneak_glitch", playersao->m_physics_override_sneak_glitch); + modified |= getboolfield(L, 2, "new_move", playersao->m_physics_override_new_move); + if (modified) + playersao->m_physics_override_sent = false; + } else { + // old, non-table format + // TODO: Remove this code after version 5.4.0 + log_deprecated(L, "Deprecated use of set_physics_override(num, num, num)"); + + if (!lua_isnil(L, 2)) { + playersao->m_physics_override_speed = lua_tonumber(L, 2); + playersao->m_physics_override_sent = false; + } + if (!lua_isnil(L, 3)) { + playersao->m_physics_override_jump = lua_tonumber(L, 3); + playersao->m_physics_override_sent = false; + } + if (!lua_isnil(L, 4)) { + playersao->m_physics_override_gravity = lua_tonumber(L, 4); + playersao->m_physics_override_sent = false; + } + } return 0; } From be3fe161fc831c9e6da1357dc908ed4a7681c46c Mon Sep 17 00:00:00 2001 From: DS Date: Tue, 10 Nov 2020 21:03:10 +0100 Subject: [PATCH 270/624] Do not set a default for description in itemdef table (#10559) * Do not set a default for description in itemdef table * improve documentation --- builtin/game/register.lua | 4 +--- doc/lua_api.txt | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/builtin/game/register.lua b/builtin/game/register.lua index f00b76494..1f94a9dca 100644 --- a/builtin/game/register.lua +++ b/builtin/game/register.lua @@ -118,11 +118,9 @@ function core.register_item(name, itemdef) end itemdef.name = name - -- default description to item name - itemdef.description = itemdef.description or name -- default short_description to first line of description itemdef.short_description = itemdef.short_description or - itemdef.description:gsub("\n.*","") + (itemdef.description or ""):gsub("\n.*","") -- Apply defaults and add to registered_* table if itemdef.type == "node" then diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 985af2f6e..ef283f0c1 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2023,10 +2023,10 @@ Item metadata only contains a key-value store. Some of the values in the key-value store are handled specially: -* `description`: Set the item stack's description. Defaults to - `idef.description`. -* `short_description`: Set the item stack's short description. Defaults - to `idef.short_description`. +* `description`: Set the item stack's description. + See also: `get_description` in [`ItemStack`] +* `short_description`: Set the item stack's short description. + See also: `get_short_description` in [`ItemStack`] * `color`: A `ColorString`, which sets the stack's color. * `palette_index`: If the item has a palette, this is used to get the current color from the palette. @@ -5983,8 +5983,18 @@ an itemstring, a table or `nil`. stack). * `set_metadata(metadata)`: (DEPRECATED) Returns true. * `get_description()`: returns the description shown in inventory list tooltips. + * The engine uses the same as this function for item descriptions. + * Fields for finding the description, in order: + * `description` in item metadata (See [Item Metadata].) + * `description` in item definition + * item name * `get_short_description()`: returns the short description. * Unlike the description, this does not include new lines. + * The engine uses the same as this function for short item descriptions. + * Fields for finding the short description, in order: + * `short_description` in item metadata (See [Item Metadata].) + * `short_description` in item definition + * first line of the description (See `get_description()`.) * `clear()`: removes all items from the stack, making it empty. * `replace(item)`: replace the contents of this stack. * `item` can also be an itemstring or table. @@ -7085,11 +7095,12 @@ Used by `minetest.register_node`, `minetest.register_craftitem`, and { description = "Steel Axe", -- Can contain new lines. "\n" has to be used as new line character. - -- Defaults to the item's name. + -- See also: `get_description` in [`ItemStack`] short_description = "Steel Axe", -- Must not contain new lines. -- Defaults to the first line of description. + -- See also: `get_short_description` in [`ItemStack`] groups = {}, -- key = name, value = rating; rating = 1..3. From be8d1d2d99ad835b5de7277b7b518c334113e795 Mon Sep 17 00:00:00 2001 From: Lars Date: Sun, 8 Nov 2020 12:30:38 -0800 Subject: [PATCH 271/624] Increase default emerge queue limits and limit enqueue requests for active blocks. --- builtin/settingtypes.txt | 6 +++--- src/defaultsettings.cpp | 6 +++--- src/emerge.cpp | 4 ++++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 8eb667bdd..c4dc82dfe 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -2152,15 +2152,15 @@ chunksize (Chunk size) int 5 enable_mapgen_debug_info (Mapgen debug) bool false # Maximum number of blocks that can be queued for loading. -emergequeue_limit_total (Absolute limit of queued blocks to emerge) int 512 +emergequeue_limit_total (Absolute limit of queued blocks to emerge) int 1024 # Maximum number of blocks to be queued that are to be loaded from file. # This limit is enforced per player. -emergequeue_limit_diskonly (Per-player limit of queued blocks load from disk) int 64 +emergequeue_limit_diskonly (Per-player limit of queued blocks load from disk) int 128 # Maximum number of blocks to be queued that are to be generated. # This limit is enforced per player. -emergequeue_limit_generate (Per-player limit of queued blocks to generate) int 64 +emergequeue_limit_generate (Per-player limit of queued blocks to generate) int 128 # Number of emerge threads to use. # Value 0: diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index dc0276733..177955589 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -396,9 +396,9 @@ void set_default_settings(Settings *settings) settings->setDefault("debug_log_level", "action"); settings->setDefault("debug_log_size_max", "50"); settings->setDefault("chat_log_level", "error"); - settings->setDefault("emergequeue_limit_total", "512"); - settings->setDefault("emergequeue_limit_diskonly", "64"); - settings->setDefault("emergequeue_limit_generate", "64"); + settings->setDefault("emergequeue_limit_total", "1024"); + settings->setDefault("emergequeue_limit_diskonly", "128"); + settings->setDefault("emergequeue_limit_generate", "128"); settings->setDefault("num_emerge_threads", "1"); settings->setDefault("secure.enable_security", "true"); settings->setDefault("secure.trusted_mods", ""); diff --git a/src/emerge.cpp b/src/emerge.cpp index 0ac26a682..12e407797 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -426,6 +426,10 @@ bool EmergeManager::pushBlockEmergeData( m_qlimit_generate : m_qlimit_diskonly; if (count_peer >= qlimit_peer) return false; + } else { + // limit block enqueue requests for active blocks to 1/2 of total + if (count_peer * 2 >= m_qlimit_total) + return false; } } From adffef2b94f2d9cb3104cbc75e315cda3c0728aa Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Thu, 12 Nov 2020 19:15:41 +0100 Subject: [PATCH 272/624] PlayerSAO: Run on_player_hpchange raw change values (#10478) The callback is only run when a change in HP is to be expected. Following cases will not trigger the callback: * Dead player damaged further * Healing full-health player * Change of 0 HP --- src/server/player_sao.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index 9fb53380c..62515d1c9 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -458,20 +458,25 @@ u16 PlayerSAO::punch(v3f dir, void PlayerSAO::setHP(s32 hp, const PlayerHPChangeReason &reason) { - s32 oldhp = m_hp; + if (hp == (s32)m_hp) + return; // Nothing to do - hp = rangelim(hp, 0, m_prop.hp_max); + if (m_hp <= 0 && hp < (s32)m_hp) + return; // Cannot take more damage - if (oldhp != hp) { - s32 hp_change = m_env->getScriptIface()->on_player_hpchange(this, hp - oldhp, reason); + { + s32 hp_change = m_env->getScriptIface()->on_player_hpchange(this, hp - m_hp, reason); if (hp_change == 0) return; - hp = rangelim(oldhp + hp_change, 0, m_prop.hp_max); + hp = m_hp + hp_change; } + s32 oldhp = m_hp; + hp = rangelim(hp, 0, m_prop.hp_max); + if (hp < oldhp && isImmortal()) - return; + return; // Do not allow immortal players to be damaged m_hp = hp; From 68139a28eb8b43b3685b81c77258912ffc5e0b8f Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Thu, 12 Nov 2020 19:16:02 +0100 Subject: [PATCH 273/624] Revert "Replace MyEventReceiver KeyList with std::unordered_set" (#10622) This reverts commit 787561b29afdbc78769f68c2f5c4f2cff1b32340. --- src/client/inputhandler.cpp | 48 ++++++++-------- src/client/inputhandler.h | 108 +++++++++++++++++++++++++++++------- src/client/keycode.h | 19 ------- 3 files changed, 111 insertions(+), 64 deletions(-) diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp index ee3e37ae9..608a405a8 100644 --- a/src/client/inputhandler.cpp +++ b/src/client/inputhandler.cpp @@ -112,7 +112,7 @@ bool MyEventReceiver::OnEvent(const SEvent &event) // Remember whether each key is down or up if (event.EventType == irr::EET_KEY_INPUT_EVENT) { const KeyPress &keyCode = event.KeyInput; - if (keysListenedFor.count(keyCode)) { + if (keysListenedFor[keyCode]) { // If the key is being held down then the OS may // send a continuous stream of keydown events. // In this case, we don't want to let this @@ -120,15 +120,15 @@ bool MyEventReceiver::OnEvent(const SEvent &event) // certain actions to repeat constantly. if (event.KeyInput.PressedDown) { if (!IsKeyDown(keyCode)) { - keyWasDown.insert(keyCode); - keyWasPressed.insert(keyCode); + keyWasDown.set(keyCode); + keyWasPressed.set(keyCode); } - keyIsDown.insert(keyCode); + keyIsDown.set(keyCode); } else { if (IsKeyDown(keyCode)) - keyWasReleased.insert(keyCode); + keyWasReleased.set(keyCode); - keyIsDown.erase(keyCode); + keyIsDown.unset(keyCode); } return true; @@ -153,36 +153,36 @@ bool MyEventReceiver::OnEvent(const SEvent &event) switch (event.MouseInput.Event) { case EMIE_LMOUSE_PRESSED_DOWN: key = "KEY_LBUTTON"; - keyIsDown.insert(key); - keyWasDown.insert(key); - keyWasPressed.insert(key); + keyIsDown.set(key); + keyWasDown.set(key); + keyWasPressed.set(key); break; case EMIE_MMOUSE_PRESSED_DOWN: key = "KEY_MBUTTON"; - keyIsDown.insert(key); - keyWasDown.insert(key); - keyWasPressed.insert(key); + keyIsDown.set(key); + keyWasDown.set(key); + keyWasPressed.set(key); break; case EMIE_RMOUSE_PRESSED_DOWN: key = "KEY_RBUTTON"; - keyIsDown.insert(key); - keyWasDown.insert(key); - keyWasPressed.insert(key); + keyIsDown.set(key); + keyWasDown.set(key); + keyWasPressed.set(key); break; case EMIE_LMOUSE_LEFT_UP: key = "KEY_LBUTTON"; - keyIsDown.erase(key); - keyWasReleased.insert(key); + keyIsDown.unset(key); + keyWasReleased.set(key); break; case EMIE_MMOUSE_LEFT_UP: key = "KEY_MBUTTON"; - keyIsDown.erase(key); - keyWasReleased.insert(key); + keyIsDown.unset(key); + keyWasReleased.set(key); break; case EMIE_RMOUSE_LEFT_UP: key = "KEY_RBUTTON"; - keyIsDown.erase(key); - keyWasReleased.insert(key); + keyIsDown.unset(key); + keyWasReleased.set(key); break; case EMIE_MOUSE_WHEEL: mouse_wheel += event.MouseInput.Wheel; @@ -235,11 +235,7 @@ void RandomInputHandler::step(float dtime) i.counter -= dtime; if (i.counter < 0.0) { i.counter = 0.1 * Rand(1, i.time_max); - KeyPress k = getKeySetting(i.key.c_str()); - if (keydown.count(k)) - keydown.erase(k); - else - keydown.insert(k); + keydown.toggle(getKeySetting(i.key.c_str())); } } { diff --git a/src/client/inputhandler.h b/src/client/inputhandler.h index 885f34e05..def147a82 100644 --- a/src/client/inputhandler.h +++ b/src/client/inputhandler.h @@ -21,9 +21,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "irrlichttypes_extrabloated.h" #include "joystick_controller.h" +#include #include "keycode.h" #include "renderingengine.h" -#include #ifdef HAVE_TOUCHSCREENGUI #include "gui/touchscreengui.h" @@ -61,32 +61,98 @@ struct KeyCache InputHandler *handler; }; +class KeyList : private std::list +{ + typedef std::list super; + typedef super::iterator iterator; + typedef super::const_iterator const_iterator; + + virtual const_iterator find(const KeyPress &key) const + { + const_iterator f(begin()); + const_iterator e(end()); + + while (f != e) { + if (*f == key) + return f; + + ++f; + } + + return e; + } + + virtual iterator find(const KeyPress &key) + { + iterator f(begin()); + iterator e(end()); + + while (f != e) { + if (*f == key) + return f; + + ++f; + } + + return e; + } + +public: + void clear() { super::clear(); } + + void set(const KeyPress &key) + { + if (find(key) == end()) + push_back(key); + } + + void unset(const KeyPress &key) + { + iterator p(find(key)); + + if (p != end()) + erase(p); + } + + void toggle(const KeyPress &key) + { + iterator p(this->find(key)); + + if (p != end()) + erase(p); + else + push_back(key); + } + + bool operator[](const KeyPress &key) const { return find(key) != end(); } +}; + class MyEventReceiver : public IEventReceiver { public: // This is the one method that we have to implement virtual bool OnEvent(const SEvent &event); - bool IsKeyDown(const KeyPress &keyCode) const { return keyIsDown.count(keyCode); } + bool IsKeyDown(const KeyPress &keyCode) const { return keyIsDown[keyCode]; } // Checks whether a key was down and resets the state bool WasKeyDown(const KeyPress &keyCode) { - bool b = keyWasDown.count(keyCode); + bool b = keyWasDown[keyCode]; if (b) - keyWasDown.erase(keyCode); + keyWasDown.unset(keyCode); return b; } // Checks whether a key was just pressed. State will be cleared // in the subsequent iteration of Game::processPlayerInteraction - bool WasKeyPressed(const KeyPress &keycode) const { return keyWasPressed.count(keycode); } + bool WasKeyPressed(const KeyPress &keycode) const { return keyWasPressed[keycode]; } // Checks whether a key was just released. State will be cleared // in the subsequent iteration of Game::processPlayerInteraction - bool WasKeyReleased(const KeyPress &keycode) const { return keyWasReleased.count(keycode); } + bool WasKeyReleased(const KeyPress &keycode) const { return keyWasReleased[keycode]; } - void listenForKey(const KeyPress &keyCode) { keysListenedFor.insert(keyCode); } + void listenForKey(const KeyPress &keyCode) { keysListenedFor.set(keyCode); } void dontListenForKeys() { keysListenedFor.clear(); } s32 getMouseWheel() @@ -132,20 +198,24 @@ public: #endif private: - //! The current state of keys - std::unordered_set keyIsDown; + // The current state of keys + KeyList keyIsDown; - //! Whether a key was down - std::unordered_set keyWasDown; + // Whether a key was down + KeyList keyWasDown; - //! Whether a key has just been pressed - std::unordered_set keyWasPressed; + // Whether a key has just been pressed + KeyList keyWasPressed; - //! Whether a key has just been released - std::unordered_set keyWasReleased; + // Whether a key has just been released + KeyList keyWasReleased; - //! List of keys we listen for - std::unordered_set keysListenedFor; + // List of keys we listen for + // TODO perhaps the type of this is not really + // performant as KeyList is designed for few but + // often changing keys, and keysListenedFor is expected + // to change seldomly but contain lots of keys. + KeyList keysListenedFor; }; class InputHandler @@ -277,7 +347,7 @@ public: return true; } - virtual bool isKeyDown(GameKeyType k) { return keydown.count(keycache.key[k]); } + virtual bool isKeyDown(GameKeyType k) { return keydown[keycache.key[k]]; } virtual bool wasKeyDown(GameKeyType k) { return false; } virtual bool wasKeyPressed(GameKeyType k) { return false; } virtual bool wasKeyReleased(GameKeyType k) { return false; } @@ -292,7 +362,7 @@ public: s32 Rand(s32 min, s32 max); private: - std::unordered_set keydown; + KeyList keydown; v2s32 mousepos; v2s32 mousespeed; }; diff --git a/src/client/keycode.h b/src/client/keycode.h index 263b722c7..7036705d1 100644 --- a/src/client/keycode.h +++ b/src/client/keycode.h @@ -24,20 +24,12 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include -class KeyPress; -namespace std -{ - template <> struct hash; -} - /* A key press, consisting of either an Irrlicht keycode or an actual char */ class KeyPress { public: - friend struct std::hash; - KeyPress() = default; KeyPress(const char *name); @@ -63,17 +55,6 @@ protected: std::string m_name = ""; }; -namespace std -{ - template <> struct hash - { - size_t operator()(const KeyPress &key) const - { - return key.Key; - } - }; -} - extern const KeyPress EscapeKey; extern const KeyPress CancelKey; From 8eb2cbac613c92c1a7656ecb542e63fed9023061 Mon Sep 17 00:00:00 2001 From: red-001 Date: Thu, 12 Nov 2020 20:05:47 +0000 Subject: [PATCH 274/624] Fix warnings about an unused variables and implicit conversion (#10586) --- src/gui/guiScrollBar.cpp | 2 +- src/gui/guiScrollBar.h | 1 - src/mapgen/mg_ore.cpp | 6 +++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/gui/guiScrollBar.cpp b/src/gui/guiScrollBar.cpp index b04ccb9d5..c6a03f3e4 100644 --- a/src/gui/guiScrollBar.cpp +++ b/src/gui/guiScrollBar.cpp @@ -21,7 +21,7 @@ GUIScrollBar::GUIScrollBar(IGUIEnvironment *environment, IGUIElement *parent, s3 is_horizontal(horizontal), is_auto_scaling(auto_scale), dragged_by_slider(false), tray_clicked(false), scroll_pos(0), draw_center(0), thumb_size(0), min_pos(0), max_pos(100), small_step(10), - large_step(50), last_change(0), drag_offset(0), page_size(100), border_size(0) + large_step(50), drag_offset(0), page_size(100), border_size(0) { refreshControls(); setNotClipped(false); diff --git a/src/gui/guiScrollBar.h b/src/gui/guiScrollBar.h index 29493bb99..d18f8e875 100644 --- a/src/gui/guiScrollBar.h +++ b/src/gui/guiScrollBar.h @@ -68,7 +68,6 @@ private: s32 max_pos; s32 small_step; s32 large_step; - u32 last_change; s32 drag_offset; s32 page_size; s32 border_size; diff --git a/src/mapgen/mg_ore.cpp b/src/mapgen/mg_ore.cpp index b50ed6a32..5814f433a 100644 --- a/src/mapgen/mg_ore.cpp +++ b/src/mapgen/mg_ore.cpp @@ -498,7 +498,11 @@ void OreVein::generate(MMVManip *vm, int mapseed, u32 blockseed, } // randval ranges from -1..1 - float randval = (float)pr.next() / (pr.RANDOM_RANGE / 2) - 1.f; + /* + Note: can generate values slightly larger than 1 + but this can't be changed as mapgen must be deterministic accross versions. + */ + float randval = (float)pr.next() / float(pr.RANDOM_RANGE / 2) - 1.f; float noiseval = contour(noise->result[index]); float noiseval2 = contour(noise2->result[index]); if (noiseval * noiseval2 + randval * random_factor < nthresh) From c441baa91b71c48a369178df287eeb91e15ea7d1 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 10 Nov 2020 21:22:02 +0100 Subject: [PATCH 275/624] Fix overloaded virtual warnings with get/setAttachment() --- src/client/content_cao.cpp | 47 +++++++++++++++++++------------------- src/client/content_cao.h | 12 ++++------ 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 7c349244f..c52bc62c5 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -460,18 +460,20 @@ void GenericCAO::setChildrenVisible(bool toset) GenericCAO *obj = m_env->getGenericCAO(cao_id); if (obj) { // Check if the entity is forced to appear in first person. - obj->setVisible(obj->isForcedVisible() ? true : toset); + obj->setVisible(obj->m_force_visible ? true : toset); } } } -void GenericCAO::setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation) +void GenericCAO::setAttachment(int parent_id, const std::string &bone, + v3f position, v3f rotation, bool force_visible) { int old_parent = m_attachment_parent_id; m_attachment_parent_id = parent_id; m_attachment_bone = bone; m_attachment_position = position; m_attachment_rotation = rotation; + m_force_visible = force_visible; ClientActiveObject *parent = m_env->getActiveObject(parent_id); @@ -482,15 +484,30 @@ void GenericCAO::setAttachment(int parent_id, const std::string &bone, v3f posit parent->addAttachmentChild(m_id); } updateAttachments(); + + // Forcibly show attachments if required by set_attach + if (m_force_visible) { + m_is_visible = true; + } else if (!m_is_local_player) { + // Objects attached to the local player should be hidden in first person + m_is_visible = !m_attached_to_local || + m_client->getCamera()->getCameraMode() != CAMERA_MODE_FIRST; + m_force_visible = false; + } else { + // Local players need to have this set, + // otherwise first person attachments fail. + m_is_visible = true; + } } void GenericCAO::getAttachment(int *parent_id, std::string *bone, v3f *position, - v3f *rotation) const + v3f *rotation, bool *force_visible) const { *parent_id = m_attachment_parent_id; *bone = m_attachment_bone; *position = m_attachment_position; *rotation = m_attachment_rotation; + *force_visible = m_force_visible; } void GenericCAO::clearChildAttachments() @@ -509,9 +526,9 @@ void GenericCAO::clearChildAttachments() void GenericCAO::clearParentAttachment() { if (m_attachment_parent_id) - setAttachment(0, "", m_attachment_position, m_attachment_rotation); + setAttachment(0, "", m_attachment_position, m_attachment_rotation, false); else - setAttachment(0, "", v3f(), v3f()); + setAttachment(0, "", v3f(), v3f(), false); } void GenericCAO::addAttachmentChild(int child_id) @@ -1781,25 +1798,9 @@ void GenericCAO::processMessage(const std::string &data) std::string bone = deSerializeString16(is); v3f position = readV3F32(is); v3f rotation = readV3F32(is); - m_force_visible = readU8(is); // Returns false for EOF + bool force_visible = readU8(is); // Returns false for EOF - setAttachment(parent_id, bone, position, rotation); - - // Forcibly show attachments if required by set_attach - if (m_force_visible) - m_is_visible = true; - // localplayer itself can't be attached to localplayer - else if (!m_is_local_player) { - // Objects attached to the local player should be hidden in first - // person provided the forced boolean isn't set. - m_is_visible = !m_attached_to_local || - m_client->getCamera()->getCameraMode() != CAMERA_MODE_FIRST; - m_force_visible = false; - } else { - // Local players need to have this set, - // otherwise first person attachments fail. - m_is_visible = true; - } + setAttachment(parent_id, bone, position, rotation, force_visible); } else if (cmd == AO_CMD_PUNCHED) { u16 result_hp = readU16(is); diff --git a/src/client/content_cao.h b/src/client/content_cao.h index 435fc2931..7c134fb48 100644 --- a/src/client/content_cao.h +++ b/src/client/content_cao.h @@ -111,6 +111,7 @@ private: v3f m_attachment_position; v3f m_attachment_rotation; bool m_attached_to_local = false; + bool m_force_visible = false; int m_anim_frame = 0; int m_anim_num_frames = 1; @@ -126,7 +127,6 @@ private: float m_step_distance_counter = 0.0f; u8 m_last_light = 255; bool m_is_visible = false; - bool m_force_visible = false; s8 m_glow = 0; // Material video::E_MATERIAL_TYPE m_material_type; @@ -218,15 +218,11 @@ public: m_is_visible = toset; } - inline bool isForcedVisible() const - { - return m_force_visible; - } - void setChildrenVisible(bool toset); - void setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation); + void setAttachment(int parent_id, const std::string &bone, v3f position, + v3f rotation, bool force_visible); void getAttachment(int *parent_id, std::string *bone, v3f *position, - v3f *rotation) const; + v3f *rotation, bool *force_visible) const; void clearChildAttachments(); void clearParentAttachment(); void addAttachmentChild(int child_id); From b504a1aa4bdc56676b4b1c398ebfe98d336f8f6e Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 10 Nov 2020 21:36:58 +0100 Subject: [PATCH 276/624] Fix player sprite visibility in first person closes #10525 --- src/client/content_cao.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index c52bc62c5..c645900aa 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -1919,13 +1919,23 @@ void GenericCAO::updateMeshCulling() if (!m_is_local_player) return; - // Grab the active player scene node so we know there's - // at least a mesh to occlude from the camera. + const bool hidden = m_client->getCamera()->getCameraMode() == CAMERA_MODE_FIRST; + + if (m_meshnode && m_prop.visual == "upright_sprite") { + u32 buffers = m_meshnode->getMesh()->getMeshBufferCount(); + for (u32 i = 0; i < buffers; i++) { + video::SMaterial &mat = m_meshnode->getMesh()->getMeshBuffer(i)->getMaterial(); + // upright sprite has no backface culling + mat.setFlag(video::EMF_FRONT_FACE_CULLING, hidden); + } + return; + } + irr::scene::ISceneNode *node = getSceneNode(); if (!node) return; - if (m_client->getCamera()->getCameraMode() == CAMERA_MODE_FIRST) { + if (hidden) { // Hide the mesh by culling both front and // back faces. Serious hackyness but it works for our // purposes. This also preserves the skeletal armature. From 61bbdd6807f4c383b7300b4fd5931f5e09dc7205 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 10 Nov 2020 21:43:06 +0100 Subject: [PATCH 277/624] Copy position for can_dig fixes #10514 --- builtin/game/item.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/builtin/game/item.lua b/builtin/game/item.lua index f680ce0d4..109712b42 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -551,8 +551,9 @@ function core.node_dig(pos, node, digger) local diggername = user_name(digger) local log = make_log(diggername) local def = core.registered_nodes[node.name] + -- Copy pos because the callback could modify it if def and (not def.diggable or - (def.can_dig and not def.can_dig(pos, digger))) then + (def.can_dig and not def.can_dig(vector.new(pos), digger))) then log("info", diggername .. " tried to dig " .. node.name .. " which is not diggable " .. core.pos_to_string(pos)) From ad58ece18062d4c545432b45d71ce6dbe841746b Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 10 Nov 2020 21:46:30 +0100 Subject: [PATCH 278/624] serverpackethandler: Minor log message fixes closes #10434 --- src/network/serverpackethandler.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index 95e7c548e..3db4eb286 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -1657,19 +1657,18 @@ void Server::handleCommand_SrpBytesM(NetworkPacket* pkt) bool wantSudo = (cstate == CS_Active); - verbosestream << "Server: Received TOCLIENT_SRP_BYTES_M." << std::endl; + verbosestream << "Server: Received TOSERVER_SRP_BYTES_M." << std::endl; if (!((cstate == CS_HelloSent) || (cstate == CS_Active))) { - actionstream << "Server: got SRP _M packet in wrong state " - << cstate << " from " << addr_s - << ". Ignoring." << std::endl; + warningstream << "Server: got SRP_M packet in wrong state " + << cstate << " from " << addr_s << ". Ignoring." << std::endl; return; } if (client->chosen_mech != AUTH_MECHANISM_SRP && client->chosen_mech != AUTH_MECHANISM_LEGACY_PASSWORD) { - actionstream << "Server: got SRP _M packet, while auth" - << "is going on with mech " << client->chosen_mech << " from " + warningstream << "Server: got SRP_M packet, while auth " + "is going on with mech " << client->chosen_mech << " from " << addr_s << " (wantSudo=" << wantSudo << "). Denying." << std::endl; if (wantSudo) { DenySudoAccess(peer_id); @@ -1717,7 +1716,7 @@ void Server::handleCommand_SrpBytesM(NetworkPacket* pkt) std::string checkpwd; // not used, but needed for passing something if (!m_script->getAuth(playername, &checkpwd, NULL)) { - actionstream << "Server: " << playername << + errorstream << "Server: " << playername << " cannot be authenticated (auth handler does not work?)" << std::endl; DenyAccess(peer_id, SERVER_ACCESSDENIED_SERVER_FAIL); From ee1853e9bc740a521270e2e113bb4215246382c4 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sun, 15 Nov 2020 17:37:09 +0100 Subject: [PATCH 279/624] Fix falling image of torchlike if paramtype2="none" (#10612) --- builtin/game/falling.lua | 9 ++++++++- games/devtest/mods/testnodes/drawtypes.lua | 21 ++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua index 4bfcca9e7..8d044beaa 100644 --- a/builtin/game/falling.lua +++ b/builtin/game/falling.lua @@ -84,6 +84,9 @@ core.register_entity(":__builtin:falling_node", { local textures if def.tiles and def.tiles[1] then local tile = def.tiles[1] + if def.drawtype == "torchlike" and def.paramtype2 ~= "wallmounted" then + tile = def.tiles[2] or def.tiles[1] + end if type(tile) == "table" then tile = tile.name end @@ -144,7 +147,11 @@ core.register_entity(":__builtin:falling_node", { -- Rotate entity if def.drawtype == "torchlike" then - self.object:set_yaw(math.pi*0.25) + if def.paramtype2 == "wallmounted" then + self.object:set_yaw(math.pi*0.25) + else + self.object:set_yaw(-math.pi*0.25) + end elseif (node.param2 ~= 0 and (def.wield_image == "" or def.wield_image == nil)) or def.drawtype == "signlike" diff --git a/games/devtest/mods/testnodes/drawtypes.lua b/games/devtest/mods/testnodes/drawtypes.lua index 82d862819..b3ab2b322 100644 --- a/games/devtest/mods/testnodes/drawtypes.lua +++ b/games/devtest/mods/testnodes/drawtypes.lua @@ -145,6 +145,23 @@ minetest.register_node("testnodes:fencelike", { }) minetest.register_node("testnodes:torchlike", { + description = S("Torchlike Drawtype Test Node"), + drawtype = "torchlike", + paramtype = "light", + tiles = { + "testnodes_torchlike_floor.png", + "testnodes_torchlike_ceiling.png", + "testnodes_torchlike_wall.png", + }, + + + walkable = false, + sunlight_propagates = true, + groups = { dig_immediate = 3 }, + inventory_image = fallback_image("testnodes_torchlike_floor.png"), +}) + +minetest.register_node("testnodes:torchlike_wallmounted", { description = S("Wallmounted Torchlike Drawtype Test Node"), drawtype = "torchlike", paramtype = "light", @@ -162,6 +179,8 @@ minetest.register_node("testnodes:torchlike", { inventory_image = fallback_image("testnodes_torchlike_floor.png"), }) + + minetest.register_node("testnodes:signlike", { description = S("Wallmounted Signlike Drawtype Test Node"), drawtype = "signlike", @@ -526,7 +545,7 @@ scale("allfaces_optional_waving", scale("plantlike", S("Double-sized Plantlike Drawtype Test Node"), S("Half-sized Plantlike Drawtype Test Node")) -scale("torchlike", +scale("torchlike_wallmounted", S("Double-sized Wallmounted Torchlike Drawtype Test Node"), S("Half-sized Wallmounted Torchlike Drawtype Test Node")) scale("signlike", From a16e412c9de26beea427cb1f15e42db61c106b68 Mon Sep 17 00:00:00 2001 From: Lejo Date: Sun, 15 Nov 2020 17:38:04 +0100 Subject: [PATCH 280/624] Auto build client appimage (#10561) * Replace ubuntu:14.04 with ubuntu 18:04 * Auto build client appimage Co-authored-by: sfan5 --- .gitlab-ci.yml | 82 ++++++++++++++++++++++++++++----------------- AppImageBuilder.yml | 51 ++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+), 31 deletions(-) create mode 100644 AppImageBuilder.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d03b7b601..c3e120375 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,7 +36,7 @@ variables: - cp misc/debpkg-control build/deb/minetest/DEBIAN/control - cp -Rp artifact/minetest/usr build/deb/minetest/ script: - - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest + - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest_game - rm -Rf build/deb/minetest/usr/share/minetest/games/minetest/.git - sed -i 's/DATEPLACEHOLDER/'$(date +%y.%m.%d)'/g' build/deb/minetest/DEBIAN/control - sed -i 's/LEVELDB_PLACEHOLDER/'$LEVELDB_PKG'/g' build/deb/minetest/DEBIAN/control @@ -142,36 +142,6 @@ deploy:debian-10: ## Ubuntu ## -# Trusty - -build:ubuntu-14.04: - extends: .build_template - image: ubuntu:trusty - before_script: - - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list - - apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F - - apt-get update -y - - apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev - variables: - CC: gcc-6 - CXX: g++-6 - -package:ubuntu-14.04: - extends: .debpkg_template - image: ubuntu:trusty - dependencies: - - build:ubuntu-14.04 - variables: - LEVELDB_PKG: libleveldb1 - -deploy:ubuntu-14.04: - extends: .debpkg_install - image: ubuntu:trusty - dependencies: - - package:ubuntu-14.04 - variables: - LEVELDB_PKG: libleveldb1 - # Xenial build:ubuntu-16.04: @@ -197,6 +167,31 @@ deploy:ubuntu-16.04: variables: LEVELDB_PKG: libleveldb1v5 +# Bionic + +build:ubuntu-18.04: + extends: .build_template + image: ubuntu:bionic + before_script: + - apt-get update -y + - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev + +package:ubuntu-18.04: + extends: .debpkg_template + image: ubuntu:bionic + dependencies: + - build:ubuntu-18.04 + variables: + LEVELDB_PKG: libleveldb1v5 + +deploy:ubuntu-18.04: + extends: .debpkg_install + image: ubuntu:bionic + dependencies: + - package:ubuntu-18.04 + variables: + LEVELDB_PKG: libleveldb1v5 + ## ## Fedora ## @@ -308,3 +303,28 @@ pages: only: - master +package:appimage-client: + stage: package + image: appimagecrafters/appimage-builder + dependencies: + - build:ubuntu-18.04 + before_script: + - apt-get update -y + - apt-get install -y git wget + # Collect files + - mkdir AppDir + - cp -a artifact/minetest/usr/ AppDir/usr/ + - rm AppDir/usr/bin/minetestserver + - cp -R clientmods AppDir/usr/share/minetest + script: + - git clone $MINETEST_GAME_REPO AppDir/usr/share/minetest/games/minetest_game + - rm -Rf AppDir/usr/share/minetest/games/minetest/.git + - export VERSION=$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA + # Remove PrefersNonDefaultGPU property due to validation errors + - sed -i '/PrefersNonDefaultGPU/d' AppDir/usr/share/applications/net.minetest.minetest.desktop + - appimage-builder --skip-test + artifacts: + when: on_success + expire_in: 90 day + paths: + - ./*.AppImage diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml new file mode 100644 index 000000000..9ecad5d8e --- /dev/null +++ b/AppImageBuilder.yml @@ -0,0 +1,51 @@ +version: 1 + +AppDir: + path: ./AppDir + + app_info: + id: minetest + name: Minetest + icon: minetest + version: !ENV ${VERSION} + exec: usr/bin/minetest + exec_args: $@ + runtime: + env: + APPDIR_LIBRARY_PATH: $APPDIR/usr/lib/x86_64-linux-gnu + + apt: + arch: amd64 + sources: + - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic main universe + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-updates main universe + - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-backports main universe + - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-security main universe + + include: + - libirrlicht1.8 + - libxxf86vm1 + - libgl1-mesa-glx + - libsqlite3-0 + - libogg0 + - libvorbis0a + - libopenal1 + - libcurl3-gnutls + - libfreetype6 + - zlib1g + - libgmp10 + - libjsoncpp1 + + files: + exclude: + - usr/share/man + - usr/share/doc/*/README.* + - usr/share/doc/*/changelog.* + - usr/share/doc/*/NEWS.* + - usr/share/doc/*/TODO.* + +AppImage: + update-information: None + sign-key: None + arch: x86_64 From 2f6393f49d5ebf21abfaa7bff876b8c0cf4ca191 Mon Sep 17 00:00:00 2001 From: Lars Date: Thu, 12 Nov 2020 10:37:34 -0800 Subject: [PATCH 281/624] Increase limit for simultaneous blocks sent per client and the meshgen cache. --- builtin/settingtypes.txt | 4 ++-- src/defaultsettings.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index c4dc82dfe..dd4914201 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -747,7 +747,7 @@ mesh_generation_interval (Mapblock mesh generation delay) int 0 0 50 # Size of the MapBlock cache of the mesh generator. Increasing this will # increase the cache hit %, reducing the data being copied from the main # thread, thus reducing jitter. -meshgen_block_cache_size (Mapblock mesh generator's MapBlock cache size in MB) int 20 0 1000 +meshgen_block_cache_size (Mapblock mesh generator's MapBlock cache size in MB) int 40 0 1000 # Enables minimap. enable_minimap (Minimap) bool true @@ -1037,7 +1037,7 @@ ipv6_server (IPv6 server) bool false # Maximum number of blocks that are simultaneously sent per client. # The maximum total count is calculated dynamically: # max_total = ceil((#clients + max_users) * per_client / 4) -max_simultaneous_block_sends_per_client (Maximum simultaneous block sends per client) int 40 +max_simultaneous_block_sends_per_client (Maximum simultaneous block sends per client) int 128 # To reduce lag, block transfers are slowed down when a player is building something. # This determines how long they are slowed down after placing or removing a node. diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 177955589..42e7fc16b 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -42,7 +42,7 @@ void set_default_settings(Settings *settings) settings->setDefault("mute_sound", "false"); settings->setDefault("enable_mesh_cache", "false"); settings->setDefault("mesh_generation_interval", "0"); - settings->setDefault("meshgen_block_cache_size", "20"); + settings->setDefault("meshgen_block_cache_size", "40"); settings->setDefault("enable_vbo", "true"); settings->setDefault("free_move", "false"); settings->setDefault("pitch_move", "false"); @@ -343,7 +343,7 @@ void set_default_settings(Settings *settings) settings->setDefault("port", "30000"); settings->setDefault("strict_protocol_version_checking", "false"); settings->setDefault("player_transfer_distance", "0"); - settings->setDefault("max_simultaneous_block_sends_per_client", "40"); + settings->setDefault("max_simultaneous_block_sends_per_client", "128"); settings->setDefault("time_send_interval", "5"); settings->setDefault("default_game", "minetest"); From 872dce5020c5d05597a251c5ce63ebde256f2b64 Mon Sep 17 00:00:00 2001 From: Paramat Date: Fri, 20 Nov 2020 16:11:19 +0000 Subject: [PATCH 282/624] Move Mapgen V7 river generation into the main generation loop (#10639) All terrain generation now occurs in one loop, instead of rivers being carved afterwards in a separate loop. Fixes the removal of nodes added by mods in 'register on generated'. Avoids other problems and reduces the chance of future bugs. Mapchunk generation time is reduced. Also fixes a code mistake which resulted in river channel generation being disabled at floatland altitudes even when floatlands were disabled. --- src/mapgen/mapgen_v7.cpp | 79 ++++++++++++++++------------------------ src/mapgen/mapgen_v7.h | 2 +- 2 files changed, 32 insertions(+), 49 deletions(-) diff --git a/src/mapgen/mapgen_v7.cpp b/src/mapgen/mapgen_v7.cpp index a1fe25ab6..6b0779e9f 100644 --- a/src/mapgen/mapgen_v7.cpp +++ b/src/mapgen/mapgen_v7.cpp @@ -342,10 +342,6 @@ void MapgenV7::makeChunk(BlockMakeData *data) // Generate base and mountain terrain s16 stone_surface_max_y = generateTerrain(); - // Generate rivers - if (spflags & MGV7_RIDGES) - generateRidgeTerrain(); - // Create heightmap updateHeightmap(node_min, node_max); @@ -467,6 +463,23 @@ bool MapgenV7::getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y) } +bool MapgenV7::getRiverChannelFromMap(int idx_xyz, int idx_xz, s16 y) +{ + // Maximum width of river channel. Creates the vertical canyon walls + float width = 0.2f; + float absuwatern = std::fabs(noise_ridge_uwater->result[idx_xz]) * 2.0f; + if (absuwatern > width) + return false; + + float altitude = y - water_level; + float height_mod = (altitude + 17.0f) / 2.5f; + float width_mod = width - absuwatern; + float nridge = noise_ridge->result[idx_xyz] * std::fmax(altitude, 0.0f) / 7.0f; + + return nridge + width_mod * height_mod >= 0.6f; +} + + bool MapgenV7::getFloatlandTerrainFromMap(int idx_xyz, float float_offset) { return noise_floatland->result[idx_xyz] + floatland_density - float_offset >= 0.0f; @@ -521,6 +534,15 @@ int MapgenV7::generateTerrain() } } + // 'Generate rivers in this mapchunk' bool for + // simplification of condition checks in y-loop. + bool gen_rivers = (spflags & MGV7_RIDGES) && node_max.Y >= water_level - 16 && + !gen_floatlands; + if (gen_rivers) { + noise_ridge->perlinMap3D(node_min.X, node_min.Y - 1, node_min.Z); + noise_ridge_uwater->perlinMap2D(node_min.X, node_min.Z); + } + //// Place nodes const v3s16 &em = vm->m_area.getExtent(); s16 stone_surface_max_y = -MAX_MAP_GENERATION_LIMIT; @@ -544,10 +566,13 @@ int MapgenV7::generateTerrain() if (vm->m_data[vi].getContent() != CONTENT_IGNORE) continue; - if (y <= surface_y) { + bool is_river_channel = gen_rivers && + getRiverChannelFromMap(index3d, index2d, y); + if (y <= surface_y && !is_river_channel) { vm->m_data[vi] = n_stone; // Base terrain } else if ((spflags & MGV7_MOUNTAINS) && - getMountainTerrainFromMap(index3d, index2d, y)) { + getMountainTerrainFromMap(index3d, index2d, y) && + !is_river_channel) { vm->m_data[vi] = n_stone; // Mountain terrain if (y > stone_surface_max_y) stone_surface_max_y = y; @@ -569,45 +594,3 @@ int MapgenV7::generateTerrain() return stone_surface_max_y; } - - -void MapgenV7::generateRidgeTerrain() -{ - if (node_max.Y < water_level - 16 || - (node_max.Y >= floatland_ymin && node_min.Y <= floatland_ymax)) - return; - - noise_ridge->perlinMap3D(node_min.X, node_min.Y - 1, node_min.Z); - noise_ridge_uwater->perlinMap2D(node_min.X, node_min.Z); - - MapNode n_water(c_water_source); - MapNode n_air(CONTENT_AIR); - u32 index3d = 0; - float width = 0.2f; - - for (s16 z = node_min.Z; z <= node_max.Z; z++) - for (s16 y = node_min.Y - 1; y <= node_max.Y + 1; y++) { - u32 vi = vm->m_area.index(node_min.X, y, z); - for (s16 x = node_min.X; x <= node_max.X; x++, index3d++, vi++) { - u32 index2d = (z - node_min.Z) * csize.X + (x - node_min.X); - float uwatern = noise_ridge_uwater->result[index2d] * 2.0f; - if (std::fabs(uwatern) > width) - continue; - // Optimises, but also avoids removing nodes placed by mods in - // 'on-generated', when generating outside mapchunk. - content_t c = vm->m_data[vi].getContent(); - if (c != c_stone) - continue; - - float altitude = y - water_level; - float height_mod = (altitude + 17.0f) / 2.5f; - float width_mod = width - std::fabs(uwatern); - float nridge = noise_ridge->result[index3d] * - std::fmax(altitude, 0.0f) / 7.0f; - if (nridge + width_mod * height_mod < 0.6f) - continue; - - vm->m_data[vi] = (y > water_level) ? n_air : n_water; - } - } -} diff --git a/src/mapgen/mapgen_v7.h b/src/mapgen/mapgen_v7.h index 4020cd935..5db10a304 100644 --- a/src/mapgen/mapgen_v7.h +++ b/src/mapgen/mapgen_v7.h @@ -94,10 +94,10 @@ public: float baseTerrainLevelFromMap(int index); bool getMountainTerrainAtPoint(s16 x, s16 y, s16 z); bool getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y); + bool getRiverChannelFromMap(int idx_xyz, int idx_xz, s16 y); bool getFloatlandTerrainFromMap(int idx_xyz, float float_offset); int generateTerrain(); - void generateRidgeTerrain(); private: s16 mount_zero_level; From 43bc3a124541d014d7a2678d72bf3b54ff2d6e97 Mon Sep 17 00:00:00 2001 From: MoNTE48 Date: Sun, 22 Nov 2020 14:21:08 +0100 Subject: [PATCH 283/624] Fix Visual Studio build in Actions --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ae359f5d8..71fdf3652 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -221,8 +221,8 @@ jobs: name: VS 2019 ${{ matrix.config.arch }}-${{ matrix.type }} runs-on: windows-2019 env: - VCPKG_VERSION: c7ab9d3110813979a873b2dbac630a9ab79850dc -# 2020.04 + VCPKG_VERSION: 0bf3923f9fab4001c00f0f429682a0853b5749e0 +# 2020.11 vcpkg_packages: irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit strategy: fail-fast: false @@ -248,7 +248,7 @@ jobs: uses: actions/checkout@v2 - name: Restore from cache and run vcpkg - uses: lukka/run-vcpkg@v2 + uses: lukka/run-vcpkg@v5 with: vcpkgArguments: ${{env.vcpkg_packages}} vcpkgDirectory: '${{ github.workspace }}\vcpkg' From 78273027bf4bbee7488c76c6d65f85381ec7c0ba Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Wed, 16 Sep 2020 17:10:17 +0200 Subject: [PATCH 284/624] Add sound to press event of some formspecs elements (#10402) --- doc/lua_api.txt | 5 +++++ src/client/game.cpp | 12 +++++------ src/gui/StyleSpec.h | 3 +++ src/gui/guiEngine.cpp | 1 + src/gui/guiFormSpecMenu.cpp | 40 ++++++++++++++++++++++++++++++++++--- src/gui/guiFormSpecMenu.h | 6 +++++- 6 files changed, 57 insertions(+), 10 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index ef283f0c1..27f871618 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2843,11 +2843,14 @@ Some types may inherit styles from parent types. * noclip - boolean, set to true to allow the element to exceed formspec bounds. * padding - rect, adds space between the edges of the button and the content. This value is relative to bgimg_middle. + * sound - a sound to be played when clicked. * textcolor - color, default white. * checkbox * noclip - boolean, set to true to allow the element to exceed formspec bounds. + * sound - a sound to be played when clicked. * dropdown * noclip - boolean, set to true to allow the element to exceed formspec bounds. + * sound - a sound to be played when clicked. * field, pwdfield, textarea * border - set to false to hide the textbox background and border. Default true. * font - Sets font type. See button `font` property for more information. @@ -2874,10 +2877,12 @@ Some types may inherit styles from parent types. * fgimg_pressed - image when pressed. Defaults to fgimg when not provided. * This is deprecated, use states instead. * NOTE: The parameters of any given image_button will take precedence over fgimg/fgimg_pressed + * sound - a sound to be played when clicked. * scrollbar * noclip - boolean, set to true to allow the element to exceed formspec bounds. * tabheader * noclip - boolean, set to true to allow the element to exceed formspec bounds. + * sound - a sound to be played when clicked. * textcolor - color. Default white. * table, textlist * font - Sets font type. See button `font` property for more information. diff --git a/src/client/game.cpp b/src/client/game.cpp index 5c38e027d..b7bb0a330 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -2071,7 +2071,7 @@ void Game::openInventory() TextDest *txt_dst = new TextDestPlayerInventory(client); auto *&formspec = m_game_ui->updateFormspec(""); GUIFormSpecMenu::create(formspec, client, &input->joystick, fs_src, - txt_dst, client->getFormspecPrepend()); + txt_dst, client->getFormspecPrepend(), sound); formspec->setFormSpec(fs_src->getForm(), inventoryloc); } @@ -2603,7 +2603,7 @@ void Game::handleClientEvent_ShowFormSpec(ClientEvent *event, CameraOrientation auto *&formspec = m_game_ui->updateFormspec(*(event->show_formspec.formname)); GUIFormSpecMenu::create(formspec, client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend()); + fs_src, txt_dst, client->getFormspecPrepend(), sound); } delete event->show_formspec.formspec; @@ -2616,7 +2616,7 @@ void Game::handleClientEvent_ShowLocalFormSpec(ClientEvent *event, CameraOrienta LocalFormspecHandler *txt_dst = new LocalFormspecHandler(*event->show_formspec.formname, client); GUIFormSpecMenu::create(m_game_ui->getFormspecGUI(), client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend()); + fs_src, txt_dst, client->getFormspecPrepend(), sound); delete event->show_formspec.formspec; delete event->show_formspec.formname; @@ -3336,7 +3336,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, auto *&formspec = m_game_ui->updateFormspec(""); GUIFormSpecMenu::create(formspec, client, &input->joystick, fs_src, - txt_dst, client->getFormspecPrepend()); + txt_dst, client->getFormspecPrepend(), sound); formspec->setFormSpec(meta->getString("formspec"), inventoryloc); return false; @@ -4108,7 +4108,7 @@ void Game::showDeathFormspec() auto *&formspec = m_game_ui->getFormspecGUI(); GUIFormSpecMenu::create(formspec, client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend()); + fs_src, txt_dst, client->getFormspecPrepend(), sound); formspec->setFocus("btn_respawn"); } @@ -4242,7 +4242,7 @@ void Game::showPauseMenu() auto *&formspec = m_game_ui->getFormspecGUI(); GUIFormSpecMenu::create(formspec, client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend()); + fs_src, txt_dst, client->getFormspecPrepend(), sound); formspec->setFocus("btn_continue"); formspec->doPause = true; } diff --git a/src/gui/StyleSpec.h b/src/gui/StyleSpec.h index 36ad51a89..f2844ce28 100644 --- a/src/gui/StyleSpec.h +++ b/src/gui/StyleSpec.h @@ -54,6 +54,7 @@ public: COLORS, BORDERCOLORS, BORDERWIDTHS, + SOUND, NUM_PROPERTIES, NONE }; @@ -116,6 +117,8 @@ public: return BORDERCOLORS; } else if (name == "borderwidths") { return BORDERWIDTHS; + } else if (name == "sound") { + return SOUND; } else { return NONE; } diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp index 4a13f0b11..c5ad5c323 100644 --- a/src/gui/guiEngine.cpp +++ b/src/gui/guiEngine.cpp @@ -170,6 +170,7 @@ GUIEngine::GUIEngine(JoystickController *joystick, m_menumanager, NULL /* &client */, m_texture_source, + m_sound_manager, m_formspecgui, m_buttonhandler, "", diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 039b28e79..632b15992 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -48,6 +48,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "settings.h" #include "client/client.h" #include "client/fontengine.h" +#include "client/sound.h" #include "util/hex.h" #include "util/numeric.h" #include "util/string.h" // for parseColorString() @@ -95,11 +96,13 @@ inline u32 clamp_u8(s32 value) GUIFormSpecMenu::GUIFormSpecMenu(JoystickController *joystick, gui::IGUIElement *parent, s32 id, IMenuManager *menumgr, - Client *client, ISimpleTextureSource *tsrc, IFormSource *fsrc, TextDest *tdst, + Client *client, ISimpleTextureSource *tsrc, ISoundManager *sound_manager, + IFormSource *fsrc, TextDest *tdst, const std::string &formspecPrepend, bool remap_dbl_click): GUIModalMenu(RenderingEngine::get_gui_env(), parent, id, menumgr, remap_dbl_click), m_invmgr(client), m_tsrc(tsrc), + m_sound_manager(sound_manager), m_client(client), m_formspec_prepend(formspecPrepend), m_form_src(fsrc), @@ -143,11 +146,12 @@ GUIFormSpecMenu::~GUIFormSpecMenu() void GUIFormSpecMenu::create(GUIFormSpecMenu *&cur_formspec, Client *client, JoystickController *joystick, IFormSource *fs_src, TextDest *txt_dest, - const std::string &formspecPrepend) + const std::string &formspecPrepend, ISoundManager *sound_manager) { if (cur_formspec == nullptr) { cur_formspec = new GUIFormSpecMenu(joystick, guiroot, -1, &g_menumgr, - client, client->getTextureSource(), fs_src, txt_dest, formspecPrepend); + client, client->getTextureSource(), sound_manager, fs_src, + txt_dest, formspecPrepend); cur_formspec->doPause = false; /* @@ -614,6 +618,9 @@ void GUIFormSpecMenu::parseCheckbox(parserData* data, const std::string &element data->current_parent, spec.fid, spec.flabel.c_str()); auto style = getDefaultStyleForElement("checkbox", name); + + spec.sound = style.get(StyleSpec::Property::SOUND, ""); + e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); if (spec.fname == m_focused_element) { @@ -1020,6 +1027,9 @@ void GUIFormSpecMenu::parseButton(parserData* data, const std::string &element, data->current_parent, spec.fid, spec.flabel.c_str()); auto style = getStyleForElement(type, name, (type != "button") ? "button" : ""); + + spec.sound = style[StyleSpec::STATE_DEFAULT].get(StyleSpec::Property::SOUND, ""); + e->setStyles(style); if (spec.fname == m_focused_element) { @@ -1381,6 +1391,9 @@ void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element e->setSelected(stoi(str_initial_selection)-1); auto style = getDefaultStyleForElement("dropdown", name); + + spec.sound = style.get(StyleSpec::Property::SOUND, ""); + e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); m_fields.push_back(spec); @@ -1747,6 +1760,10 @@ void GUIFormSpecMenu::parseHyperText(parserData *data, const std::string &elemen ); spec.ftype = f_HyperText; + + auto style = getDefaultStyleForElement("hypertext", spec.fname); + spec.sound = style.get(StyleSpec::Property::SOUND, ""); + GUIHyperText *e = new GUIHyperText(spec.flabel.c_str(), Environment, data->current_parent, spec.fid, rect, m_client, m_tsrc); e->drop(); @@ -1999,6 +2016,8 @@ void GUIFormSpecMenu::parseImageButton(parserData* data, const std::string &elem auto style = getStyleForElement("image_button", spec.fname); + spec.sound = style[StyleSpec::STATE_DEFAULT].get(StyleSpec::Property::SOUND, ""); + // Override style properties with values specified directly in the element if (!image_name.empty()) style[StyleSpec::STATE_DEFAULT].set(StyleSpec::FGIMG, image_name); @@ -2107,6 +2126,9 @@ void GUIFormSpecMenu::parseTabHeader(parserData* data, const std::string &elemen e->setTabHeight(geom.Y); auto style = getDefaultStyleForElement("tabheader", name); + + spec.sound = style.get(StyleSpec::Property::SOUND, ""); + e->setNotClipped(style.getBool(StyleSpec::NOCLIP, true)); for (const std::string &button : buttons) { @@ -2195,6 +2217,9 @@ void GUIFormSpecMenu::parseItemImageButton(parserData* data, const std::string & item_name, m_client); auto style = getStyleForElement("item_image_button", spec_btn.fname, "image_button"); + + spec_btn.sound = style[StyleSpec::STATE_DEFAULT].get(StyleSpec::Property::SOUND, ""); + e_btn->setStyles(style); if (spec_btn.fname == m_focused_element) { @@ -4486,6 +4511,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) for (GUIFormSpecMenu::FieldSpec &s : m_fields) { if ((s.ftype == f_TabHeader) && (s.fid == event.GUIEvent.Caller->getID())) { + if (!s.sound.empty() && m_sound_manager) + m_sound_manager->playSound(s.sound, false, 1.0f); s.send = true; acceptInput(); s.send = false; @@ -4529,6 +4556,9 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) continue; if (s.ftype == f_Button || s.ftype == f_CheckBox) { + if (!s.sound.empty() && m_sound_manager) + m_sound_manager->playSound(s.sound, false, 1.0f); + s.send = true; if (s.is_exit) { if (m_allowclose) { @@ -4551,6 +4581,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) s2.send = false; } } + if (!s.sound.empty() && m_sound_manager) + m_sound_manager->playSound(s.sound, false, 1.0f); s.send = true; acceptInput(quit_mode_no); @@ -4567,6 +4599,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) acceptInput(quit_mode_no); s.fdefault = L""; } else if (s.ftype == f_Unknown || s.ftype == f_HyperText) { + if (!s.sound.empty() && m_sound_manager) + m_sound_manager->playSound(s.sound, false, 1.0f); s.send = true; acceptInput(); s.send = false; diff --git a/src/gui/guiFormSpecMenu.h b/src/gui/guiFormSpecMenu.h index c5d662a69..53076e3bd 100644 --- a/src/gui/guiFormSpecMenu.h +++ b/src/gui/guiFormSpecMenu.h @@ -39,6 +39,7 @@ class InventoryManager; class ISimpleTextureSource; class Client; class GUIScrollContainer; +class ISoundManager; typedef enum { f_Button, @@ -127,6 +128,7 @@ class GUIFormSpecMenu : public GUIModalMenu int priority; core::rect rect; gui::ECURSOR_ICON fcursor_icon; + std::string sound; }; struct TooltipSpec @@ -151,6 +153,7 @@ public: IMenuManager *menumgr, Client *client, ISimpleTextureSource *tsrc, + ISoundManager *sound_manager, IFormSource* fs_src, TextDest* txt_dst, const std::string &formspecPrepend, @@ -160,7 +163,7 @@ public: static void create(GUIFormSpecMenu *&cur_formspec, Client *client, JoystickController *joystick, IFormSource *fs_src, TextDest *txt_dest, - const std::string &formspecPrepend); + const std::string &formspecPrepend, ISoundManager *sound_manager); void setFormSpec(const std::string &formspec_string, const InventoryLocation ¤t_inventory_location) @@ -293,6 +296,7 @@ protected: InventoryManager *m_invmgr; ISimpleTextureSource *m_tsrc; + ISoundManager *m_sound_manager; Client *m_client; std::string m_formspec_string; From 8dc70ebb936277f740dffe9a11b5ee0fecc9de8e Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 24 Nov 2020 09:23:18 -0800 Subject: [PATCH 285/624] Fix camera panning glitches (partially revert 10489.) --- src/client/clientmap.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index c8561def6..09072858a 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -124,7 +124,10 @@ void ClientMap::updateDrawList() const v3f camera_position = m_camera_position; const v3f camera_direction = m_camera_direction; - const f32 camera_fov = m_camera_fov; + + // Use a higher fov to accomodate faster camera movements. + // Blocks are cropped better when they are drawn. + const f32 camera_fov = m_camera_fov * 1.1f; v3s16 cam_pos_nodes = floatToInt(camera_position, BS); v3s16 p_blocks_min; From f1349be5422ab11b488309bee89fdcf868e860bb Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 25 Nov 2020 17:16:41 -0800 Subject: [PATCH 286/624] Avoid marking map blocks dirty upon deserialization. --- src/mapblock.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mapblock.cpp b/src/mapblock.cpp index 5fb6b221b..8bfecd755 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -533,7 +533,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version, bool disk) // Timestamp TRACESTREAM(<<"MapBlock::deSerialize "<= 17) { - setTimestamp(readU32(is)); + setTimestampNoChangedFlag(readU32(is)); m_disk_timestamp = m_timestamp; } else { - setTimestamp(BLOCK_TIMESTAMP_UNDEFINED); + setTimestampNoChangedFlag(BLOCK_TIMESTAMP_UNDEFINED); } // Dynamically re-set ids based on node names From 095f82692d3d1b8b190178d640f0a166d1851f60 Mon Sep 17 00:00:00 2001 From: numzero Date: Sun, 22 Nov 2020 09:13:16 +0300 Subject: [PATCH 287/624] Batch cloud drawing --- src/client/clouds.cpp | 47 +++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/client/clouds.cpp b/src/client/clouds.cpp index 887a62f25..ccc94cc88 100644 --- a/src/client/clouds.cpp +++ b/src/client/clouds.cpp @@ -170,8 +170,9 @@ void Clouds::render() // Read noise - bool *grid = new bool[m_cloud_radius_i * 2 * m_cloud_radius_i * 2]; - + std::vector grid(m_cloud_radius_i * 2 * m_cloud_radius_i * 2); // vector is broken + std::vector vertices; + vertices.reserve(16 * m_cloud_radius_i * m_cloud_radius_i); for(s16 zi = -m_cloud_radius_i; zi < m_cloud_radius_i; zi++) { u32 si = (zi + m_cloud_radius_i) * m_cloud_radius_i * 2 + m_cloud_radius_i; @@ -195,12 +196,7 @@ void Clouds::render() { s16 zi = zi0; s16 xi = xi0; - // Draw from front to back (needed for transparency) - /*if(zi <= 0) - zi = -m_cloud_radius_i - zi; - if(xi <= 0) - xi = -m_cloud_radius_i - xi;*/ - // Draw from back to front + // Draw from back to front for proper transparency if(zi >= 0) zi = m_cloud_radius_i - zi - 1; if(xi >= 0) @@ -220,17 +216,10 @@ void Clouds::render() video::S3DVertex(0,0,0, 0,0,0, c_top, 0, 0) }; - /*if(zi <= 0 && xi <= 0){ - v[0].Color.setBlue(255); - v[1].Color.setBlue(255); - v[2].Color.setBlue(255); - v[3].Color.setBlue(255); - }*/ - - f32 rx = cloud_size / 2.0f; + const f32 rx = cloud_size / 2.0f; // if clouds are flat, the top layer should be at the given height - f32 ry = m_enable_3d ? m_params.thickness * BS : 0.0f; - f32 rz = cloud_size / 2; + const f32 ry = m_enable_3d ? m_params.thickness * BS : 0.0f; + const f32 rz = cloud_size / 2; for(int i=0; idrawVertexPrimitiveList(v, 4, indices, 2, - video::EVT_STANDARD, scene::EPT_TRIANGLES, video::EIT_16BIT); + vertices.push_back(vertex); + } } } - - delete[] grid; + int quad_count = vertices.size() / 4; + std::vector indices; + indices.reserve(quad_count * 6); + for (int k = 0; k < quad_count; k++) { + indices.push_back(4 * k + 0); + indices.push_back(4 * k + 1); + indices.push_back(4 * k + 2); + indices.push_back(4 * k + 2); + indices.push_back(4 * k + 3); + indices.push_back(4 * k + 0); + } + driver->drawVertexPrimitiveList(vertices.data(), vertices.size(), indices.data(), 2 * quad_count, + video::EVT_STANDARD, scene::EPT_TRIANGLES, video::EIT_16BIT); // Restore fog settings driver->setFog(fog_color, fog_type, fog_start, fog_end, fog_density, From 89cc5bf53730d72744d45f92fc11dc9ab6c232c9 Mon Sep 17 00:00:00 2001 From: numzero Date: Sun, 22 Nov 2020 16:43:38 +0300 Subject: [PATCH 288/624] Don't evaluate things many times --- src/client/clouds.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/client/clouds.cpp b/src/client/clouds.cpp index ccc94cc88..253dee8b9 100644 --- a/src/client/clouds.cpp +++ b/src/client/clouds.cpp @@ -341,14 +341,13 @@ void Clouds::step(float dtime) void Clouds::update(const v3f &camera_p, const video::SColorf &color_diffuse) { + video::SColorf ambient(m_params.color_ambient); + video::SColorf bright(m_params.color_bright); m_camera_pos = camera_p; - m_color.r = MYMIN(MYMAX(color_diffuse.r * m_params.color_bright.getRed(), - m_params.color_ambient.getRed()), 255) / 255.0f; - m_color.g = MYMIN(MYMAX(color_diffuse.g * m_params.color_bright.getGreen(), - m_params.color_ambient.getGreen()), 255) / 255.0f; - m_color.b = MYMIN(MYMAX(color_diffuse.b * m_params.color_bright.getBlue(), - m_params.color_ambient.getBlue()), 255) / 255.0f; - m_color.a = m_params.color_bright.getAlpha() / 255.0f; + m_color.r = core::clamp(color_diffuse.r * bright.r, ambient.r, 1.0f); + m_color.g = core::clamp(color_diffuse.g * bright.g, ambient.g, 1.0f); + m_color.b = core::clamp(color_diffuse.b * bright.b, ambient.b, 1.0f); + m_color.a = bright.a; // is the camera inside the cloud mesh? m_camera_inside_cloud = false; // default From 3077afc0a2039cd4c8d64d9df62ed9b2ba6463dc Mon Sep 17 00:00:00 2001 From: numzero Date: Sun, 22 Nov 2020 16:29:31 +0300 Subject: [PATCH 289/624] Store stars in a single static mesh buffer --- src/client/sky.cpp | 199 ++++++++++++++++++++------------------------- src/client/sky.h | 8 +- 2 files changed, 92 insertions(+), 115 deletions(-) diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 2e0cbca86..29a0545ab 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -1,6 +1,7 @@ /* Minetest Copyright (C) 2010-2013 celeron55, Perttu Ahola +Copyright (C) 2020 numzero, Lobachevskiy Vitaliy This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -34,16 +35,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "config.h" using namespace irr::core; -Sky::Sky(s32 id, ITextureSource *tsrc) : - scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), - RenderingEngine::get_scene_manager(), id) -{ - setAutomaticCulling(scene::EAC_OFF); - m_box.MaxEdge.set(0, 0, 0); - m_box.MinEdge.set(0, 0, 0); - - // Create material - +static video::SMaterial baseMaterial() { video::SMaterial mat; mat.Lighting = false; #if ENABLE_GLES @@ -56,14 +48,29 @@ Sky::Sky(s32 id, ITextureSource *tsrc) : mat.TextureLayer[0].TextureWrapU = video::ETC_CLAMP_TO_EDGE; mat.TextureLayer[0].TextureWrapV = video::ETC_CLAMP_TO_EDGE; mat.BackfaceCulling = false; + return mat; +}; - m_materials[0] = mat; +Sky::Sky(s32 id, ITextureSource *tsrc) : + scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), + RenderingEngine::get_scene_manager(), id) +{ + setAutomaticCulling(scene::EAC_OFF); + m_box.MaxEdge.set(0, 0, 0); + m_box.MinEdge.set(0, 0, 0); - m_materials[1] = mat; + // Create materials + + m_materials[0] = baseMaterial(); + m_materials[0].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; + m_materials[0].Lighting = true; + m_materials[0].ColorMaterial = video::ECM_NONE; + + m_materials[1] = baseMaterial(); //m_materials[1].MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA; m_materials[1].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; - m_materials[2] = mat; + m_materials[2] = baseMaterial(); m_materials[2].setTexture(0, tsrc->getTextureForMesh("sunrisebg.png")); m_materials[2].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; //m_materials[2].MaterialType = video::EMT_TRANSPARENT_ADD_COLOR; @@ -80,7 +87,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc) : tsrc->getTexture(m_moon_params.tonemap) : NULL; if (m_sun_texture) { - m_materials[3] = mat; + m_materials[3] = baseMaterial(); m_materials[3].setTexture(0, m_sun_texture); m_materials[3].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; // Disables texture filtering @@ -92,7 +99,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc) : m_materials[3].Lighting = true; } if (m_moon_texture) { - m_materials[4] = mat; + m_materials[4] = baseMaterial(); m_materials[4].setTexture(0, m_moon_texture); m_materials[4].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; // Disables texture filtering @@ -105,7 +112,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc) : } for (int i = 5; i < 11; i++) { - m_materials[i] = mat; + m_materials[i] = baseMaterial(); m_materials[i].Lighting = true; m_materials[i].MaterialType = video::EMT_SOLID; } @@ -673,13 +680,12 @@ void Sky::draw_moon(video::IVideoDriver *driver, float moonsize, const video::SC c = video::SColor(255, 255, 255, 255); draw_sky_body(vertices, -d, d, c); place_sky_body(vertices, -90, wicked_time_of_day * 360 - 90); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day) { - driver->setMaterial(m_materials[1]); // Tune values so that stars first appear just after the sun // disappears over the horizon, and disappear just before the sun // appears over the horizon. @@ -687,87 +693,19 @@ void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day) // to time 4000. float tod = wicked_time_of_day < 0.5f ? wicked_time_of_day : (1.0f - wicked_time_of_day); - float starbrightness = clamp((0.25f - fabsf(tod)) * 20.0f, 0.0f, 1.0f); - - float f = starbrightness; - float d = (0.006 / 2) * m_star_params.scale; - - video::SColor starcolor = m_star_params.starcolor; - starcolor.setAlpha(f * m_star_params.starcolor.getAlpha()); - - // Stars are only drawn when not fully transparent - if (m_star_params.starcolor.getAlpha() < 1) + float starbrightness = (0.25f - fabsf(tod)) * 20.0f; + int alpha = clamp(starbrightness * m_star_params.starcolor.getAlpha(), 0, 255); + if (!alpha) // Stars are only drawn when not fully transparent return; -#if ENABLE_GLES - u16 *indices = new u16[m_star_params.count * 3]; - video::S3DVertex *vertices = - new video::S3DVertex[m_star_params.count * 3]; - for (u32 i = 0; i < m_star_params.count; i++) { - indices[i * 3 + 0] = i * 3 + 0; - indices[i * 3 + 1] = i * 3 + 1; - indices[i * 3 + 2] = i * 3 + 2; - v3f r = m_stars[i]; - core::CMatrix4 a; - a.buildRotateFromTo(v3f(0, 1, 0), r); - v3f p = v3f(-d, 1, -d); - v3f p1 = v3f(d, 1, 0); - v3f p2 = v3f(-d, 1, d); - a.rotateVect(p); - a.rotateVect(p1); - a.rotateVect(p2); - p.rotateXYBy(wicked_time_of_day * 360 - 90); - p1.rotateXYBy(wicked_time_of_day * 360 - 90); - p2.rotateXYBy(wicked_time_of_day * 360 - 90); - vertices[i * 3 + 0].Pos = p; - vertices[i * 3 + 0].Color = starcolor; - vertices[i * 3 + 1].Pos = p1; - vertices[i * 3 + 1].Color = starcolor; - vertices[i * 3 + 2].Pos = p2; - vertices[i * 3 + 2].Color = starcolor; - } - driver->drawIndexedTriangleList(vertices, m_star_params.count * 3, - indices, m_star_params.count); - delete[] indices; - delete[] vertices; -#else - u16 *indices = new u16[m_star_params.count * 4]; - video::S3DVertex *vertices = - new video::S3DVertex[m_star_params.count * 4]; - for (u32 i = 0; i < m_star_params.count; i++) { - indices[i * 4 + 0] = i * 4 + 0; - indices[i * 4 + 1] = i * 4 + 1; - indices[i * 4 + 2] = i * 4 + 2; - indices[i * 4 + 3] = i * 4 + 3; - v3f r = m_stars[i]; - core::CMatrix4 a; - a.buildRotateFromTo(v3f(0, 1, 0), r); - v3f p = v3f(-d, 1, -d); - v3f p1 = v3f(d, 1, -d); - v3f p2 = v3f(d, 1, d); - v3f p3 = v3f(-d, 1, d); - a.rotateVect(p); - a.rotateVect(p1); - a.rotateVect(p2); - a.rotateVect(p3); - p.rotateXYBy(wicked_time_of_day * 360 - 90); - p1.rotateXYBy(wicked_time_of_day * 360 - 90); - p2.rotateXYBy(wicked_time_of_day * 360 - 90); - p3.rotateXYBy(wicked_time_of_day * 360 - 90); - vertices[i * 4 + 0].Pos = p; - vertices[i * 4 + 0].Color = starcolor; - vertices[i * 4 + 1].Pos = p1; - vertices[i * 4 + 1].Color = starcolor; - vertices[i * 4 + 2].Pos = p2; - vertices[i * 4 + 2].Color = starcolor; - vertices[i * 4 + 3].Pos = p3; - vertices[i * 4 + 3].Color = starcolor; - } - driver->drawVertexPrimitiveList(vertices, m_star_params.count * 4, - indices, m_star_params.count, video::EVT_STANDARD, - scene::EPT_QUADS, video::EIT_16BIT); - delete[] indices; - delete[] vertices; -#endif + + m_materials[0].DiffuseColor = video::SColor(alpha, 0, 0, 0); + m_materials[0].EmissiveColor = m_star_params.starcolor; + auto sky_rotation = core::matrix4().setRotationAxisRadians(2.0f * M_PI * (wicked_time_of_day - 0.25f), v3f(0.0f, 0.0f, 1.0f)); + auto world_matrix = driver->getTransform(video::ETS_WORLD); + driver->setTransform(video::ETS_WORLD, world_matrix * sky_rotation); + driver->setMaterial(m_materials[0]); + driver->drawMeshBuffer(m_stars.get()); + driver->setTransform(video::ETS_WORLD, world_matrix); } void Sky::draw_sky_body(std::array &vertices, float pos_1, float pos_2, const video::SColor &c) @@ -822,7 +760,7 @@ void Sky::setSunTexture(std::string sun_texture, m_sun_texture = tsrc->getTextureForMesh(m_sun_params.texture); if (m_sun_texture) { - m_materials[3] = m_materials[0]; + m_materials[3] = baseMaterial(); m_materials[3].setTexture(0, m_sun_texture); m_materials[3].MaterialType = video:: EMT_TRANSPARENT_ALPHA_CHANNEL; @@ -870,7 +808,7 @@ void Sky::setMoonTexture(std::string moon_texture, m_moon_texture = tsrc->getTextureForMesh(m_moon_params.texture); if (m_moon_texture) { - m_materials[4] = m_materials[0]; + m_materials[4] = baseMaterial(); m_materials[4].setTexture(0, m_moon_texture); m_materials[4].MaterialType = video:: EMT_TRANSPARENT_ALPHA_CHANNEL; @@ -892,21 +830,56 @@ void Sky::setStarCount(u16 star_count, bool force_update) // Allow force updating star count at game init. if (m_star_params.count != star_count || force_update) { m_star_params.count = star_count; - m_stars.clear(); - // Rebuild the stars surrounding the camera - for (u16 i = 0; i < star_count; i++) { - v3f star = v3f( - myrand_range(-10000, 10000), - myrand_range(-10000, 10000), - myrand_range(-10000, 10000) - ); - - star.normalize(); - m_stars.emplace_back(star); - } + updateStars(); } } +void Sky::updateStars() { + m_stars.reset(new scene::SMeshBuffer()); + // Stupid IrrLicht doesn’t allow non-indexed rendering, and indexed quad + // rendering is slow due to lack of hardware support. So as indices are + // 16-bit and there are 4 vertices per star... the limit is 2^16/4 = 0x4000. + // That should be well enough actually. + if (m_star_params.count > 0x4000) { + warningstream << "Requested " << m_star_params.count << " stars but " << 0x4000 << " is the max\n"; + m_star_params.count = 0x4000; + } + m_stars->Vertices.reallocate(4 * m_star_params.count); + m_stars->Indices.reallocate(6 * m_star_params.count); + + float d = (0.006 / 2) * m_star_params.scale; + for (u16 i = 0; i < m_star_params.count; i++) { + v3f r = v3f( + myrand_range(-10000, 10000), + myrand_range(-10000, 10000), + myrand_range(-10000, 10000) + ); + core::CMatrix4 a; + a.buildRotateFromTo(v3f(0, 1, 0), r); + v3f p = v3f(-d, 1, -d); + v3f p1 = v3f(d, 1, -d); + v3f p2 = v3f(d, 1, d); + v3f p3 = v3f(-d, 1, d); + a.rotateVect(p); + a.rotateVect(p1); + a.rotateVect(p2); + a.rotateVect(p3); + m_stars->Vertices.push_back(video::S3DVertex(p, {}, {}, {})); + m_stars->Vertices.push_back(video::S3DVertex(p1, {}, {}, {})); + m_stars->Vertices.push_back(video::S3DVertex(p2, {}, {}, {})); + m_stars->Vertices.push_back(video::S3DVertex(p3, {}, {}, {})); + } + for (u16 i = 0; i < m_star_params.count; i++) { + m_stars->Indices.push_back(i * 4 + 0); + m_stars->Indices.push_back(i * 4 + 1); + m_stars->Indices.push_back(i * 4 + 2); + m_stars->Indices.push_back(i * 4 + 2); + m_stars->Indices.push_back(i * 4 + 3); + m_stars->Indices.push_back(i * 4 + 0); + } + m_stars->setHardwareMappingHint(scene::EHM_STATIC); +} + void Sky::setSkyColors(const SkyColor &sky_color) { m_sky_params.sky_color = sky_color; @@ -936,7 +909,7 @@ void Sky::addTextureToSkybox(std::string texture, int material_id, // Keep a list of texture names handy. m_sky_params.textures.emplace_back(texture); video::ITexture *result = tsrc->getTextureForMesh(texture); - m_materials[material_id+5] = m_materials[0]; + m_materials[material_id+5] = baseMaterial(); m_materials[material_id+5].setTexture(0, result); m_materials[material_id+5].MaterialType = video::EMT_SOLID; } diff --git a/src/client/sky.h b/src/client/sky.h index 3227e8f59..176545015 100644 --- a/src/client/sky.h +++ b/src/client/sky.h @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "camera.h" #include "irrlichttypes_extrabloated.h" +#include "irr_ptr.h" #include "skyparams.h" #pragma once @@ -77,7 +78,7 @@ public: void setStarsVisible(bool stars_visible) { m_star_params.visible = stars_visible; } void setStarCount(u16 star_count, bool force_update); void setStarColor(video::SColor star_color) { m_star_params.starcolor = star_color; } - void setStarScale(f32 star_scale) { m_star_params.scale = star_scale; } + void setStarScale(f32 star_scale) { m_star_params.scale = star_scale; updateStars(); } bool getCloudsVisible() const { return m_clouds_visible && m_clouds_enabled; } const video::SColorf &getCloudColor() const { return m_cloudcolor_f; } @@ -178,13 +179,16 @@ private: bool m_default_tint = true; - std::vector m_stars; + irr_ptr m_stars; video::ITexture *m_sun_texture; video::ITexture *m_moon_texture; video::ITexture *m_sun_tonemap; video::ITexture *m_moon_tonemap; + void updateStars(); + void updateStarsColor(video::SColor color); + void draw_sun(video::IVideoDriver *driver, float sunsize, const video::SColor &suncolor, const video::SColor &suncolor2, float wicked_time_of_day); void draw_moon(video::IVideoDriver *driver, float moonsize, const video::SColor &mooncolor, From 560627eef8c02f8201e639c75fcd5301d3a33077 Mon Sep 17 00:00:00 2001 From: numzero Date: Sun, 22 Nov 2020 16:41:36 +0300 Subject: [PATCH 290/624] Reuse seed when updating stars The only currently relevant parameter is scale which can now be changed without resetting stars position --- src/client/sky.cpp | 8 +++++--- src/client/sky.h | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 29a0545ab..cc9fb7d36 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -830,6 +830,7 @@ void Sky::setStarCount(u16 star_count, bool force_update) // Allow force updating star count at game init. if (m_star_params.count != star_count || force_update) { m_star_params.count = star_count; + m_seed = (u64)myrand() << 32 | myrand(); updateStars(); } } @@ -847,12 +848,13 @@ void Sky::updateStars() { m_stars->Vertices.reallocate(4 * m_star_params.count); m_stars->Indices.reallocate(6 * m_star_params.count); + PcgRandom rgen(m_seed); float d = (0.006 / 2) * m_star_params.scale; for (u16 i = 0; i < m_star_params.count; i++) { v3f r = v3f( - myrand_range(-10000, 10000), - myrand_range(-10000, 10000), - myrand_range(-10000, 10000) + rgen.range(-10000, 10000), + rgen.range(-10000, 10000), + rgen.range(-10000, 10000) ); core::CMatrix4 a; a.buildRotateFromTo(v3f(0, 1, 0), r); diff --git a/src/client/sky.h b/src/client/sky.h index 176545015..9f859f961 100644 --- a/src/client/sky.h +++ b/src/client/sky.h @@ -179,6 +179,7 @@ private: bool m_default_tint = true; + u64 m_seed = 0; irr_ptr m_stars; video::ITexture *m_sun_texture; From d7cf40a0ce996985cff20a156c56437f8b64c772 Mon Sep 17 00:00:00 2001 From: numzero Date: Sun, 22 Nov 2020 16:44:00 +0300 Subject: [PATCH 291/624] Replace TriangleFan as poorly supported --- src/client/sky.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/client/sky.cpp b/src/client/sky.cpp index cc9fb7d36..dda59dd11 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -209,7 +209,7 @@ void Sky::render() const f32 t = 1.0f; const f32 o = 0.0f; - static const u16 indices[4] = {0, 1, 2, 3}; + static const u16 indices[6] = {0, 1, 2, 0, 2, 3}; video::S3DVertex vertices[4]; driver->setMaterial(m_materials[1]); @@ -251,7 +251,7 @@ void Sky::render() vertex.Pos.rotateXZBy(180); } } - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } @@ -277,7 +277,7 @@ void Sky::render() // Switch from -Z (south) to +Z (north) vertex.Pos.rotateXZBy(-180); } - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } @@ -308,7 +308,7 @@ void Sky::render() // Switch from -Z (south) to -X (west) vertex.Pos.rotateXZBy(-90); } - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } // Draw sun @@ -344,7 +344,7 @@ void Sky::render() // Switch from -Z (south) to +Z (north) vertex.Pos.rotateXZBy(-180); } - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } // Draw bottom far cloudy fog thing in front of sun, moon and stars @@ -353,7 +353,7 @@ void Sky::render() vertices[1] = video::S3DVertex( 1, -1.0, -1, 0, 1, 0, c, o, t); vertices[2] = video::S3DVertex( 1, -1.0, 1, 0, 1, 0, c, o, o); vertices[3] = video::S3DVertex(-1, -1.0, 1, 0, 1, 0, c, t, o); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } } @@ -597,7 +597,7 @@ void Sky::draw_sun(video::IVideoDriver *driver, float sunsize, const video::SCol * wicked_time_of_day: current time of day, to know where should be the sun in the sky */ { - static const u16 indices[4] = {0, 1, 2, 3}; + static const u16 indices[] = {0, 1, 2, 0, 2, 3}; std::array vertices; if (!m_sun_texture) { driver->setMaterial(m_materials[1]); @@ -615,7 +615,7 @@ void Sky::draw_sun(video::IVideoDriver *driver, float sunsize, const video::SCol for (int i = 0; i < 4; i++) { draw_sky_body(vertices, -sunsizes[i], sunsizes[i], colors[i]); place_sky_body(vertices, 90, wicked_time_of_day * 360 - 90); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } else { driver->setMaterial(m_materials[3]); @@ -627,7 +627,7 @@ void Sky::draw_sun(video::IVideoDriver *driver, float sunsize, const video::SCol c = video::SColor(255, 255, 255, 255); draw_sky_body(vertices, -d, d, c); place_sky_body(vertices, 90, wicked_time_of_day * 360 - 90); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } @@ -644,7 +644,7 @@ void Sky::draw_moon(video::IVideoDriver *driver, float moonsize, const video::SC * the sky */ { - static const u16 indices[4] = {0, 1, 2, 3}; + static const u16 indices[] = {0, 1, 2, 0, 2, 3}; std::array vertices; if (!m_moon_texture) { driver->setMaterial(m_materials[1]); @@ -668,7 +668,7 @@ void Sky::draw_moon(video::IVideoDriver *driver, float moonsize, const video::SC for (int i = 0; i < 4; i++) { draw_sky_body(vertices, moonsizes_1[i], moonsizes_2[i], colors[i]); place_sky_body(vertices, -90, wicked_time_of_day * 360 - 90); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } else { driver->setMaterial(m_materials[4]); From be59668f4743bb3bf85b37a188ffc1759601c152 Mon Sep 17 00:00:00 2001 From: numzero Date: Sun, 22 Nov 2020 17:36:59 +0300 Subject: [PATCH 292/624] Allow missing shaders --- src/client/shader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/shader.cpp b/src/client/shader.cpp index 4f6430579..1cec20d2c 100644 --- a/src/client/shader.cpp +++ b/src/client/shader.cpp @@ -577,7 +577,6 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp shaderinfo.name = name; shaderinfo.material_type = material_type; shaderinfo.drawtype = drawtype; - shaderinfo.material = video::EMT_SOLID; switch (material_type) { case TILE_MATERIAL_OPAQUE: case TILE_MATERIAL_LIQUID_OPAQUE: @@ -598,6 +597,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp shaderinfo.base_material = video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF; break; } + shaderinfo.material = shaderinfo.base_material; bool enable_shaders = g_settings->getBool("enable_shaders"); if (!enable_shaders) From cdcf7dca7c9afb329d49f2016964f77ac379ed67 Mon Sep 17 00:00:00 2001 From: numzero Date: Sun, 22 Nov 2020 18:25:41 +0300 Subject: [PATCH 293/624] Sky: support GLES2 IrrLicht built-in shader is broken, have to write my own --- client/shaders/stars_shader/opengl_fragment.glsl | 6 ++++++ client/shaders/stars_shader/opengl_vertex.glsl | 4 ++++ src/client/game.cpp | 8 +++++++- src/client/sky.cpp | 15 ++++++++------- src/client/sky.h | 8 ++++++-- 5 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 client/shaders/stars_shader/opengl_fragment.glsl create mode 100644 client/shaders/stars_shader/opengl_vertex.glsl diff --git a/client/shaders/stars_shader/opengl_fragment.glsl b/client/shaders/stars_shader/opengl_fragment.glsl new file mode 100644 index 000000000..a9ed741bf --- /dev/null +++ b/client/shaders/stars_shader/opengl_fragment.glsl @@ -0,0 +1,6 @@ +uniform vec4 starColor; + +void main(void) +{ + gl_FragColor = starColor; +} diff --git a/client/shaders/stars_shader/opengl_vertex.glsl b/client/shaders/stars_shader/opengl_vertex.glsl new file mode 100644 index 000000000..77c401f34 --- /dev/null +++ b/client/shaders/stars_shader/opengl_vertex.glsl @@ -0,0 +1,4 @@ +void main(void) +{ + gl_Position = mWorldViewProj * inVertexPosition; +} diff --git a/src/client/game.cpp b/src/client/game.cpp index b7bb0a330..2001f0487 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -424,6 +424,7 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter CachedVertexShaderSetting m_animation_timer_vertex; CachedPixelShaderSetting m_animation_timer_pixel; CachedPixelShaderSetting m_day_light; + CachedPixelShaderSetting m_star_color; CachedPixelShaderSetting m_eye_position_pixel; CachedVertexShaderSetting m_eye_position_vertex; CachedPixelShaderSetting m_minimap_yaw; @@ -456,6 +457,7 @@ public: m_animation_timer_vertex("animationTimer"), m_animation_timer_pixel("animationTimer"), m_day_light("dayLight"), + m_star_color("starColor"), m_eye_position_pixel("eyePosition"), m_eye_position_vertex("eyePosition"), m_minimap_yaw("yawVec"), @@ -507,6 +509,10 @@ public: sunlight.b }; m_day_light.set(dnc, services); + video::SColorf star_color = m_sky->getCurrentStarColor(); + float clr[4] = {star_color.r, star_color.g, star_color.b, star_color.a}; + m_star_color.set(clr, services); + u32 animation_timer = porting::getTimeMs() % 1000000; float animation_timer_f = (float)animation_timer / 100000.f; m_animation_timer_vertex.set(&animation_timer_f, services); @@ -1363,7 +1369,7 @@ bool Game::createClient(const GameStartData &start_data) /* Skybox */ - sky = new Sky(-1, texture_src); + sky = new Sky(-1, texture_src, shader_src); scsf->setSky(sky); skybox = NULL; // This is used/set later on in the main run loop diff --git a/src/client/sky.cpp b/src/client/sky.cpp index dda59dd11..3fc5a95b4 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -51,7 +51,7 @@ static video::SMaterial baseMaterial() { return mat; }; -Sky::Sky(s32 id, ITextureSource *tsrc) : +Sky::Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc) : scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), RenderingEngine::get_scene_manager(), id) { @@ -59,10 +59,12 @@ Sky::Sky(s32 id, ITextureSource *tsrc) : m_box.MaxEdge.set(0, 0, 0); m_box.MinEdge.set(0, 0, 0); + m_enable_shaders = g_settings->getBool("enable_shaders"); + // Create materials m_materials[0] = baseMaterial(); - m_materials[0].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; + m_materials[0].MaterialType = ssrc->getShaderInfo(ssrc->getShader("stars_shader", TILE_MATERIAL_ALPHA, 0)).material; m_materials[0].Lighting = true; m_materials[0].ColorMaterial = video::ECM_NONE; @@ -694,12 +696,11 @@ void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day) float tod = wicked_time_of_day < 0.5f ? wicked_time_of_day : (1.0f - wicked_time_of_day); float starbrightness = (0.25f - fabsf(tod)) * 20.0f; - int alpha = clamp(starbrightness * m_star_params.starcolor.getAlpha(), 0, 255); - if (!alpha) // Stars are only drawn when not fully transparent + m_star_color = m_star_params.starcolor; + m_star_color.a = clamp(starbrightness * m_star_color.a, 0.0f, 1.0f); + if (m_star_color.a <= 0.0f) // Stars are only drawn when not fully transparent return; - - m_materials[0].DiffuseColor = video::SColor(alpha, 0, 0, 0); - m_materials[0].EmissiveColor = m_star_params.starcolor; + m_materials[0].DiffuseColor = m_materials[0].EmissiveColor = m_star_color.toSColor(); auto sky_rotation = core::matrix4().setRotationAxisRadians(2.0f * M_PI * (wicked_time_of_day - 0.25f), v3f(0.0f, 0.0f, 1.0f)); auto world_matrix = driver->getTransform(video::ETS_WORLD); driver->setTransform(video::ETS_WORLD, world_matrix * sky_rotation); diff --git a/src/client/sky.h b/src/client/sky.h index 9f859f961..10e1cd976 100644 --- a/src/client/sky.h +++ b/src/client/sky.h @@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "camera.h" #include "irrlichttypes_extrabloated.h" #include "irr_ptr.h" +#include "shader.h" #include "skyparams.h" #pragma once @@ -35,7 +36,7 @@ class Sky : public scene::ISceneNode { public: //! constructor - Sky(s32 id, ITextureSource *tsrc); + Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc); virtual void OnRegisterSceneNode(); @@ -102,6 +103,8 @@ public: void clearSkyboxTextures() { m_sky_params.textures.clear(); } void addTextureToSkybox(std::string texture, int material_id, ITextureSource *tsrc); + const video::SColorf &getCurrentStarColor() const { return m_star_color; } + private: aabb3f m_box; video::SMaterial m_materials[SKY_MATERIAL_COUNT]; @@ -155,6 +158,7 @@ private: bool m_clouds_enabled = true; // Initialised to true, reset only by set_sky API bool m_directional_colored_fog; bool m_in_clouds = true; // Prevent duplicating bools to remember old values + bool m_enable_shaders = false; video::SColorf m_bgcolor_bright_f = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f); video::SColorf m_skycolor_bright_f = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f); @@ -181,6 +185,7 @@ private: u64 m_seed = 0; irr_ptr m_stars; + video::SColorf m_star_color; video::ITexture *m_sun_texture; video::ITexture *m_moon_texture; @@ -188,7 +193,6 @@ private: video::ITexture *m_moon_tonemap; void updateStars(); - void updateStarsColor(video::SColor color); void draw_sun(video::IVideoDriver *driver, float sunsize, const video::SColor &suncolor, const video::SColor &suncolor2, float wicked_time_of_day); From c158e20e5beab1037c905fe96b2a56baccddaec7 Mon Sep 17 00:00:00 2001 From: numzero Date: Sun, 22 Nov 2020 19:49:38 +0300 Subject: [PATCH 294/624] Provide fallback star color for GLES 2 with MT shaders disabled --- src/client/sky.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 3fc5a95b4..0fccf067c 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -849,6 +849,7 @@ void Sky::updateStars() { m_stars->Vertices.reallocate(4 * m_star_params.count); m_stars->Indices.reallocate(6 * m_star_params.count); + video::SColor fallback_color = m_star_params.starcolor; // used on GLES 2 “without shaders” PcgRandom rgen(m_seed); float d = (0.006 / 2) * m_star_params.scale; for (u16 i = 0; i < m_star_params.count; i++) { @@ -867,10 +868,10 @@ void Sky::updateStars() { a.rotateVect(p1); a.rotateVect(p2); a.rotateVect(p3); - m_stars->Vertices.push_back(video::S3DVertex(p, {}, {}, {})); - m_stars->Vertices.push_back(video::S3DVertex(p1, {}, {}, {})); - m_stars->Vertices.push_back(video::S3DVertex(p2, {}, {}, {})); - m_stars->Vertices.push_back(video::S3DVertex(p3, {}, {}, {})); + m_stars->Vertices.push_back(video::S3DVertex(p, {}, fallback_color, {})); + m_stars->Vertices.push_back(video::S3DVertex(p1, {}, fallback_color, {})); + m_stars->Vertices.push_back(video::S3DVertex(p2, {}, fallback_color, {})); + m_stars->Vertices.push_back(video::S3DVertex(p3, {}, fallback_color, {})); } for (u16 i = 0; i < m_star_params.count; i++) { m_stars->Indices.push_back(i * 4 + 0); From 8689e00fca2cf55594d53f4e112f0d7b6676c8b0 Mon Sep 17 00:00:00 2001 From: numzero Date: Mon, 23 Nov 2020 01:04:31 +0300 Subject: [PATCH 295/624] Fix style --- src/client/sky.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 0fccf067c..180d43066 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -35,7 +35,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "config.h" using namespace irr::core; -static video::SMaterial baseMaterial() { +static video::SMaterial baseMaterial() +{ video::SMaterial mat; mat.Lighting = false; #if ENABLE_GLES @@ -836,7 +837,8 @@ void Sky::setStarCount(u16 star_count, bool force_update) } } -void Sky::updateStars() { +void Sky::updateStars() +{ m_stars.reset(new scene::SMeshBuffer()); // Stupid IrrLicht doesn’t allow non-indexed rendering, and indexed quad // rendering is slow due to lack of hardware support. So as indices are From 868749b4f8e898be0c01f892ea78d859d054c17e Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 26 Nov 2020 22:17:11 +0100 Subject: [PATCH 296/624] Return star color calculation to what it previously was --- src/client/sky.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 180d43066..9a2614eda 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -698,7 +698,7 @@ void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day) float tod = wicked_time_of_day < 0.5f ? wicked_time_of_day : (1.0f - wicked_time_of_day); float starbrightness = (0.25f - fabsf(tod)) * 20.0f; m_star_color = m_star_params.starcolor; - m_star_color.a = clamp(starbrightness * m_star_color.a, 0.0f, 1.0f); + m_star_color.a *= clamp(starbrightness, 0.0f, 1.0f); if (m_star_color.a <= 0.0f) // Stars are only drawn when not fully transparent return; m_materials[0].DiffuseColor = m_materials[0].EmissiveColor = m_star_color.toSColor(); From 9bb381ebd387cd783da8d582949bf284a29d9b3a Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 26 Nov 2020 22:19:46 +0100 Subject: [PATCH 297/624] Change typedef to normal definitions in GUI code --- src/gui/guiEngine.h | 10 +++++----- src/gui/guiFormSpecMenu.h | 18 +++++++++--------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/gui/guiEngine.h b/src/gui/guiEngine.h index e5b3edce7..eef1ad8aa 100644 --- a/src/gui/guiEngine.h +++ b/src/gui/guiEngine.h @@ -29,22 +29,22 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/enriched_string.h" /******************************************************************************/ -/* Typedefs and macros */ +/* Structs and macros */ /******************************************************************************/ /** texture layer ids */ -typedef enum { +enum texture_layer { TEX_LAYER_BACKGROUND = 0, TEX_LAYER_OVERLAY, TEX_LAYER_HEADER, TEX_LAYER_FOOTER, TEX_LAYER_MAX -} texture_layer; +}; -typedef struct { +struct image_definition { video::ITexture *texture = nullptr; bool tile; unsigned int minsize; -} image_definition; +}; /******************************************************************************/ /* forward declarations */ diff --git a/src/gui/guiFormSpecMenu.h b/src/gui/guiFormSpecMenu.h index 53076e3bd..37106cb65 100644 --- a/src/gui/guiFormSpecMenu.h +++ b/src/gui/guiFormSpecMenu.h @@ -41,7 +41,7 @@ class Client; class GUIScrollContainer; class ISoundManager; -typedef enum { +enum FormspecFieldType { f_Button, f_Table, f_TabHeader, @@ -53,13 +53,13 @@ typedef enum { f_HyperText, f_AnimatedImage, f_Unknown -} FormspecFieldType; +}; -typedef enum { +enum FormspecQuitMode { quit_mode_no, quit_mode_accept, quit_mode_cancel -} FormspecQuitMode; +}; struct TextDest { @@ -356,7 +356,7 @@ private: JoystickController *m_joystick; bool m_show_debug = false; - typedef struct { + struct parserData { bool explicit_size; bool real_coordinates; u8 simple_field_count; @@ -384,16 +384,16 @@ private: // used to restore table selection/scroll/treeview state std::unordered_map table_dyndata; - } parserData; + }; - typedef struct { + struct fs_key_pending { bool key_up; bool key_down; bool key_enter; bool key_escape; - } fs_key_pendig; + }; - fs_key_pendig current_keys_pending; + fs_key_pending current_keys_pending; std::string current_field_enter_pending = ""; std::vector m_hovered_item_tooltips; From f1d72d212a0661588be27003069abf4bd8092e55 Mon Sep 17 00:00:00 2001 From: Lars Date: Sun, 15 Nov 2020 22:58:57 -0800 Subject: [PATCH 298/624] Avoid generating the same chunk more than once with multiple emerge threads. --- src/emerge.h | 1 - src/map.cpp | 5 ++++- src/map.h | 1 + src/mapgen/mapgen_carpathian.cpp | 6 ------ src/mapgen/mapgen_flat.cpp | 6 ------ src/mapgen/mapgen_fractal.cpp | 6 ------ src/mapgen/mapgen_singlenode.cpp | 6 ------ src/mapgen/mapgen_v5.cpp | 6 ------ src/mapgen/mapgen_v6.cpp | 6 ------ src/mapgen/mapgen_v7.cpp | 6 ------ src/mapgen/mapgen_valleys.cpp | 6 ------ 11 files changed, 5 insertions(+), 50 deletions(-) diff --git a/src/emerge.h b/src/emerge.h index 6f204666d..da845e243 100644 --- a/src/emerge.h +++ b/src/emerge.h @@ -52,7 +52,6 @@ struct BlockMakeData { u64 seed = 0; v3s16 blockpos_min; v3s16 blockpos_max; - v3s16 blockpos_requested; UniqueQueue transforming_liquid; const NodeDefManager *nodedef = nullptr; diff --git a/src/map.cpp b/src/map.cpp index ef7eddb39..37b6e9b6b 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1345,6 +1345,9 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data) v3s16 bpmin = EmergeManager::getContainingChunk(blockpos, csize); v3s16 bpmax = bpmin + v3s16(1, 1, 1) * (csize - 1); + if (!m_chunks_in_progress.insert(bpmin).second) + return false; + bool enable_mapgen_debug_info = m_emerge->enable_mapgen_debug_info; EMERGE_DBG_OUT("initBlockMake(): " PP(bpmin) " - " PP(bpmax)); @@ -1360,7 +1363,6 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data) data->seed = getSeed(); data->blockpos_min = bpmin; data->blockpos_max = bpmax; - data->blockpos_requested = blockpos; data->nodedef = m_nodedef; /* @@ -1482,6 +1484,7 @@ void ServerMap::finishBlockMake(BlockMakeData *data, NOTE: Will be saved later. */ //save(MOD_STATE_WRITE_AT_UNLOAD); + m_chunks_in_progress.erase(bpmin); } MapSector *ServerMap::createSector(v2s16 p2d) diff --git a/src/map.h b/src/map.h index b28f34db3..3bc30c482 100644 --- a/src/map.h +++ b/src/map.h @@ -423,6 +423,7 @@ private: // Chunks core::map m_chunks; #endif + std::set m_chunks_in_progress; /* Metadata is re-written on disk only if this is true. diff --git a/src/mapgen/mapgen_carpathian.cpp b/src/mapgen/mapgen_carpathian.cpp index 74ed263ba..b3a0bd270 100644 --- a/src/mapgen/mapgen_carpathian.cpp +++ b/src/mapgen/mapgen_carpathian.cpp @@ -260,12 +260,6 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; diff --git a/src/mapgen/mapgen_flat.cpp b/src/mapgen/mapgen_flat.cpp index d62548014..342455029 100644 --- a/src/mapgen/mapgen_flat.cpp +++ b/src/mapgen/mapgen_flat.cpp @@ -209,12 +209,6 @@ void MapgenFlat::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; diff --git a/src/mapgen/mapgen_fractal.cpp b/src/mapgen/mapgen_fractal.cpp index 3b6bbd6c1..fabb1b2b1 100644 --- a/src/mapgen/mapgen_fractal.cpp +++ b/src/mapgen/mapgen_fractal.cpp @@ -209,12 +209,6 @@ void MapgenFractal::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); //TimeTaker t("makeChunk"); diff --git a/src/mapgen/mapgen_singlenode.cpp b/src/mapgen/mapgen_singlenode.cpp index cade9e7a8..5382423fa 100644 --- a/src/mapgen/mapgen_singlenode.cpp +++ b/src/mapgen/mapgen_singlenode.cpp @@ -50,12 +50,6 @@ void MapgenSinglenode::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; diff --git a/src/mapgen/mapgen_v5.cpp b/src/mapgen/mapgen_v5.cpp index 0f6a19fa1..87e54755f 100644 --- a/src/mapgen/mapgen_v5.cpp +++ b/src/mapgen/mapgen_v5.cpp @@ -201,12 +201,6 @@ void MapgenV5::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; diff --git a/src/mapgen/mapgen_v6.cpp b/src/mapgen/mapgen_v6.cpp index 90a52e031..e04180f96 100644 --- a/src/mapgen/mapgen_v6.cpp +++ b/src/mapgen/mapgen_v6.cpp @@ -512,12 +512,6 @@ void MapgenV6::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; diff --git a/src/mapgen/mapgen_v7.cpp b/src/mapgen/mapgen_v7.cpp index 6b0779e9f..cc5f5726d 100644 --- a/src/mapgen/mapgen_v7.cpp +++ b/src/mapgen/mapgen_v7.cpp @@ -317,12 +317,6 @@ void MapgenV7::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); //TimeTaker t("makeChunk"); diff --git a/src/mapgen/mapgen_valleys.cpp b/src/mapgen/mapgen_valleys.cpp index d7b6f738f..c4234857e 100644 --- a/src/mapgen/mapgen_valleys.cpp +++ b/src/mapgen/mapgen_valleys.cpp @@ -210,12 +210,6 @@ void MapgenValleys::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); //TimeTaker t("makeChunk"); From 3176daee79a8e91bd16fc275704f49fe1648db32 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 29 Nov 2020 19:20:45 +0100 Subject: [PATCH 299/624] Input: Fix on_rightclick called when placing into air --- src/client/game.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/client/game.cpp b/src/client/game.cpp index 2001f0487..575fd46ff 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -3139,6 +3139,9 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) input->clearWasKeyPressed(); input->clearWasKeyReleased(); + // Ensure DIG & PLACE are marked as handled + wasKeyDown(KeyType::DIG); + wasKeyDown(KeyType::PLACE); input->joystick.clearWasKeyDown(KeyType::DIG); input->joystick.clearWasKeyDown(KeyType::PLACE); From ecd4f45318e7e510ebe4ebe8420ea739122d2edf Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 4 Dec 2020 11:27:15 +0100 Subject: [PATCH 300/624] Fix certain connected nodeboxes crashing when falling fixes #10695 --- builtin/game/falling.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua index 8d044beaa..f489ea702 100644 --- a/builtin/game/falling.lua +++ b/builtin/game/falling.lua @@ -130,7 +130,7 @@ core.register_entity(":__builtin:falling_node", { -- Set collision box (certain nodeboxes only for now) local nb_types = {fixed=true, leveled=true, connected=true} if def.drawtype == "nodebox" and def.node_box and - nb_types[def.node_box.type] then + nb_types[def.node_box.type] and def.node_box.fixed then local box = table.copy(def.node_box.fixed) if type(box[1]) == "table" then box = #box == 1 and box[1] or nil -- We can only use a single box From e73c5d45858b35dde782b23677495c6eda3f8253 Mon Sep 17 00:00:00 2001 From: HybridDog <3192173+HybridDog@users.noreply.github.com> Date: Fri, 4 Dec 2020 20:16:12 +0100 Subject: [PATCH 301/624] Fix MSAA stripes (#9247) This only works when shaders are enabled. The centroid varying avoids that the textures (which repeat themselves out of bounds) are sampled out of bounds in MSAA. If MSAA (called FSAA in minetest) is disabled, the centroid keyword does nothing. --- builtin/settingtypes.txt | 4 ++-- client/shaders/nodes_shader/opengl_fragment.glsl | 6 +++--- client/shaders/nodes_shader/opengl_vertex.glsl | 7 +++++-- client/shaders/object_shader/opengl_fragment.glsl | 4 ++-- client/shaders/object_shader/opengl_vertex.glsl | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index dd4914201..384d12a1a 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -517,8 +517,8 @@ texture_min_size (Minimum texture size) int 64 # This algorithm smooths out the 3D viewport while keeping the image sharp, # but it doesn't affect the insides of textures # (which is especially noticeable with transparent textures). -# This option is experimental and might cause visible spaces between blocks -# when set above 0. +# Visible spaces appear between nodes when shaders are disabled. +# If set to 0, MSAA is disabled. # A restart is required after changing this option. fsaa (FSAA) enum 0 0,1,2,4,8,16 diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl index 82c87073a..b0f6d45d0 100644 --- a/client/shaders/nodes_shader/opengl_fragment.glsl +++ b/client/shaders/nodes_shader/opengl_fragment.glsl @@ -16,7 +16,7 @@ varying vec3 vPosition; // precision must be considered). varying vec3 worldPosition; varying lowp vec4 varColor; -varying mediump vec2 varTexCoord; +centroid varying mediump vec2 varTexCoord; varying vec3 eyeVec; const float fogStart = FOG_START; @@ -46,7 +46,7 @@ vec4 applyToneMapping(vec4 color) const float gamma = 1.6; const float exposureBias = 5.5; color.rgb = uncharted2Tonemap(exposureBias * color.rgb); - // Precalculated white_scale from + // Precalculated white_scale from //vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W)); vec3 whiteScale = vec3(1.036015346); color.rgb *= whiteScale; @@ -72,7 +72,7 @@ void main(void) color = base.rgb; vec4 col = vec4(color.rgb * varColor.rgb, 1.0); - + #ifdef ENABLE_TONE_MAPPING col = applyToneMapping(col); #endif diff --git a/client/shaders/nodes_shader/opengl_vertex.glsl b/client/shaders/nodes_shader/opengl_vertex.glsl index cb344f6e6..5742ec1d3 100644 --- a/client/shaders/nodes_shader/opengl_vertex.glsl +++ b/client/shaders/nodes_shader/opengl_vertex.glsl @@ -16,7 +16,10 @@ varying vec3 vPosition; // precision must be considered). varying vec3 worldPosition; varying lowp vec4 varColor; -varying mediump vec2 varTexCoord; +// The centroid keyword ensures that after interpolation the texture coordinates +// lie within the same bounds when MSAA is en- and disabled. +// This fixes the stripes problem with nearest-neighbour textures and MSAA. +centroid varying mediump vec2 varTexCoord; varying vec3 eyeVec; // Color of the light emitted by the light sources. @@ -142,7 +145,7 @@ void main(void) vec4 color; // The alpha gives the ratio of sunlight in the incoming light. float nightRatio = 1.0 - inVertexColor.a; - color.rgb = inVertexColor.rgb * (inVertexColor.a * dayLight.rgb + + color.rgb = inVertexColor.rgb * (inVertexColor.a * dayLight.rgb + nightRatio * artificialLight.rgb) * 2.0; color.a = 1.0; diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl index 7ac182a63..bf18c1499 100644 --- a/client/shaders/object_shader/opengl_fragment.glsl +++ b/client/shaders/object_shader/opengl_fragment.glsl @@ -9,7 +9,7 @@ varying vec3 vNormal; varying vec3 vPosition; varying vec3 worldPosition; varying lowp vec4 varColor; -varying mediump vec2 varTexCoord; +centroid varying mediump vec2 varTexCoord; varying vec3 eyeVec; varying float vIDiff; @@ -43,7 +43,7 @@ vec4 applyToneMapping(vec4 color) const float gamma = 1.6; const float exposureBias = 5.5; color.rgb = uncharted2Tonemap(exposureBias * color.rgb); - // Precalculated white_scale from + // Precalculated white_scale from //vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W)); vec3 whiteScale = vec3(1.036015346); color.rgb *= whiteScale; diff --git a/client/shaders/object_shader/opengl_vertex.glsl b/client/shaders/object_shader/opengl_vertex.glsl index e44984dc8..f31b842ee 100644 --- a/client/shaders/object_shader/opengl_vertex.glsl +++ b/client/shaders/object_shader/opengl_vertex.glsl @@ -7,7 +7,7 @@ varying vec3 vNormal; varying vec3 vPosition; varying vec3 worldPosition; varying lowp vec4 varColor; -varying mediump vec2 varTexCoord; +centroid varying mediump vec2 varTexCoord; varying vec3 eyeVec; varying float vIDiff; From 08c9d1a66963eb2ecbca2681a0d473d4103e3f1e Mon Sep 17 00:00:00 2001 From: Oblomov Date: Fri, 4 Dec 2020 20:16:53 +0100 Subject: [PATCH 302/624] Cross-reference the node level manipulation functions (#10633) This can help developers find the correct functions to access and manipulate the fluid level. --- doc/lua_api.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 27f871618..25a2b8f60 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -1014,7 +1014,9 @@ The function of `param2` is determined by `paramtype2` in node definition. * `paramtype2 = "flowingliquid"` * Used by `drawtype = "flowingliquid"` and `liquidtype = "flowing"` * The liquid level and a flag of the liquid are stored in `param2` - * Bits 0-2: Liquid level (0-7). The higher, the more liquid is in this node + * Bits 0-2: Liquid level (0-7). The higher, the more liquid is in this node; + see `minetest.get_node_level`, `minetest.set_node_level` and `minetest.add_node_level` + to access/manipulate the content of this field * Bit 3: If set, liquid is flowing downwards (no graphical effect) * `paramtype2 = "wallmounted"` * Supported drawtypes: "torchlike", "signlike", "normal", "nodebox", "mesh" From 07e0b527cf3e6e4f1bf36823940216efef59d8c9 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 5 Dec 2020 00:09:12 +0100 Subject: [PATCH 303/624] Revert "Increase limit for simultaneous blocks sent per client and the meshgen cache." This reverts commit 2f6393f49d5ebf21abfaa7bff876b8c0cf4ca191. --- builtin/settingtypes.txt | 4 ++-- src/defaultsettings.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 384d12a1a..c9f16578c 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -747,7 +747,7 @@ mesh_generation_interval (Mapblock mesh generation delay) int 0 0 50 # Size of the MapBlock cache of the mesh generator. Increasing this will # increase the cache hit %, reducing the data being copied from the main # thread, thus reducing jitter. -meshgen_block_cache_size (Mapblock mesh generator's MapBlock cache size in MB) int 40 0 1000 +meshgen_block_cache_size (Mapblock mesh generator's MapBlock cache size in MB) int 20 0 1000 # Enables minimap. enable_minimap (Minimap) bool true @@ -1037,7 +1037,7 @@ ipv6_server (IPv6 server) bool false # Maximum number of blocks that are simultaneously sent per client. # The maximum total count is calculated dynamically: # max_total = ceil((#clients + max_users) * per_client / 4) -max_simultaneous_block_sends_per_client (Maximum simultaneous block sends per client) int 128 +max_simultaneous_block_sends_per_client (Maximum simultaneous block sends per client) int 40 # To reduce lag, block transfers are slowed down when a player is building something. # This determines how long they are slowed down after placing or removing a node. diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 42e7fc16b..177955589 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -42,7 +42,7 @@ void set_default_settings(Settings *settings) settings->setDefault("mute_sound", "false"); settings->setDefault("enable_mesh_cache", "false"); settings->setDefault("mesh_generation_interval", "0"); - settings->setDefault("meshgen_block_cache_size", "40"); + settings->setDefault("meshgen_block_cache_size", "20"); settings->setDefault("enable_vbo", "true"); settings->setDefault("free_move", "false"); settings->setDefault("pitch_move", "false"); @@ -343,7 +343,7 @@ void set_default_settings(Settings *settings) settings->setDefault("port", "30000"); settings->setDefault("strict_protocol_version_checking", "false"); settings->setDefault("player_transfer_distance", "0"); - settings->setDefault("max_simultaneous_block_sends_per_client", "128"); + settings->setDefault("max_simultaneous_block_sends_per_client", "40"); settings->setDefault("time_send_interval", "5"); settings->setDefault("default_game", "minetest"); From 6d7067fd37a8084aca139ecab552982e0ee99582 Mon Sep 17 00:00:00 2001 From: hecks <42101236+hecktest@users.noreply.github.com> Date: Sun, 6 Dec 2020 00:03:40 +0100 Subject: [PATCH 304/624] Implement mapblock camera offset correctly (#10702) Implement mapblock camera offset correctly - reduce client jitter Co-authored-by: hecktest <> --- src/client/clientmap.cpp | 95 +++++++++++++++++------------------- src/client/clientmap.h | 19 ++++++++ src/client/mapblock_mesh.cpp | 20 -------- src/client/mapblock_mesh.h | 3 -- 4 files changed, 63 insertions(+), 74 deletions(-) diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index 09072858a..fa47df3f4 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -31,6 +31,37 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "client/renderingengine.h" +// struct MeshBufListList +void MeshBufListList::clear() +{ + for (auto &list : lists) + list.clear(); +} + +void MeshBufListList::add(scene::IMeshBuffer *buf, v3s16 position, u8 layer) +{ + // Append to the correct layer + std::vector &list = lists[layer]; + const video::SMaterial &m = buf->getMaterial(); + for (MeshBufList &l : list) { + // comparing a full material is quite expensive so we don't do it if + // not even first texture is equal + if (l.m.TextureLayer[0].Texture != m.TextureLayer[0].Texture) + continue; + + if (l.m == m) { + l.bufs.emplace_back(position, buf); + return; + } + } + MeshBufList l; + l.m = m; + l.bufs.emplace_back(position, buf); + list.emplace_back(l); +} + +// ClientMap + ClientMap::ClientMap( Client *client, MapDrawControl &control, @@ -182,9 +213,7 @@ void ClientMap::updateDrawList() if not seen on display */ - if (block->mesh) { - block->mesh->updateCameraOffset(m_camera_offset); - } else { + if (!block->mesh) { // Ignore if mesh doesn't exist continue; } @@ -229,50 +258,6 @@ void ClientMap::updateDrawList() g_profiler->avg("MapBlocks loaded [#]", blocks_loaded); } -struct MeshBufList -{ - video::SMaterial m; - std::vector bufs; -}; - -struct MeshBufListList -{ - /*! - * Stores the mesh buffers of the world. - * The array index is the material's layer. - * The vector part groups vertices by material. - */ - std::vector lists[MAX_TILE_LAYERS]; - - void clear() - { - for (auto &list : lists) - list.clear(); - } - - void add(scene::IMeshBuffer *buf, u8 layer) - { - // Append to the correct layer - std::vector &list = lists[layer]; - const video::SMaterial &m = buf->getMaterial(); - for (MeshBufList &l : list) { - // comparing a full material is quite expensive so we don't do it if - // not even first texture is equal - if (l.m.TextureLayer[0].Texture != m.TextureLayer[0].Texture) - continue; - - if (l.m == m) { - l.bufs.push_back(buf); - return; - } - } - MeshBufList l; - l.m = m; - l.bufs.push_back(buf); - list.push_back(l); - } -}; - void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) { bool is_transparent_pass = pass == scene::ESNRP_TRANSPARENT; @@ -317,6 +302,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) MeshBufListList drawbufs; for (auto &i : m_drawlist) { + v3s16 block_pos = i.first; MapBlock *block = i.second; // If the mesh of the block happened to get deleted, ignore it @@ -382,7 +368,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) material.setFlag(video::EMF_WIREFRAME, m_control.show_wireframe); - drawbufs.add(buf, layer); + drawbufs.add(buf, block_pos, layer); } } } @@ -391,6 +377,9 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) TimeTaker draw("Drawing mesh buffers"); + core::matrix4 m; // Model matrix + v3f offset = intToFloat(m_camera_offset, BS); + // Render all layers in order for (auto &lists : drawbufs.lists) { for (MeshBufList &list : lists) { @@ -402,7 +391,13 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) } driver->setMaterial(list.m); - for (scene::IMeshBuffer *buf : list.bufs) { + for (auto &pair : list.bufs) { + scene::IMeshBuffer *buf = pair.second; + + v3f block_wpos = intToFloat(pair.first * MAP_BLOCKSIZE, BS); + m.setTranslation(block_wpos - offset); + + driver->setTransform(video::ETS_WORLD, m); driver->drawMeshBuffer(buf); vertex_count += buf->getVertexCount(); } @@ -607,5 +602,3 @@ void ClientMap::PrintInfo(std::ostream &out) { out<<"ClientMap: "; } - - diff --git a/src/client/clientmap.h b/src/client/clientmap.h index 172e3a1d6..57cc4427e 100644 --- a/src/client/clientmap.h +++ b/src/client/clientmap.h @@ -35,6 +35,25 @@ struct MapDrawControl bool show_wireframe = false; }; +struct MeshBufList +{ + video::SMaterial m; + std::vector> bufs; +}; + +struct MeshBufListList +{ + /*! + * Stores the mesh buffers of the world. + * The array index is the material's layer. + * The vector part groups vertices by material. + */ + std::vector lists[MAX_TILE_LAYERS]; + + void clear(); + void add(scene::IMeshBuffer *buf, v3s16 position, u8 layer); +}; + class Client; class ITextureSource; diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index 6a59fabe3..dac25a066 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -1175,13 +1175,6 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): buf->drop(); } - /* - Do some stuff to the mesh - */ - m_camera_offset = camera_offset; - translateMesh(m_mesh[layer], - intToFloat(data->m_blockpos * MAP_BLOCKSIZE - camera_offset, BS)); - if (m_mesh[layer]) { #if 0 // Usually 1-700 faces and 1-7 materials @@ -1308,19 +1301,6 @@ bool MapBlockMesh::animate(bool faraway, float time, int crack, return true; } -void MapBlockMesh::updateCameraOffset(v3s16 camera_offset) -{ - if (camera_offset != m_camera_offset) { - for (scene::IMesh *layer : m_mesh) { - translateMesh(layer, - intToFloat(m_camera_offset - camera_offset, BS)); - if (m_enable_vbo) - layer->setDirty(); - } - m_camera_offset = camera_offset; - } -} - video::SColor encode_light(u16 light, u8 emissive_light) { // Get components diff --git a/src/client/mapblock_mesh.h b/src/client/mapblock_mesh.h index 6a9c00ed5..0308b8161 100644 --- a/src/client/mapblock_mesh.h +++ b/src/client/mapblock_mesh.h @@ -160,9 +160,6 @@ private: // of sunlit vertices // Keys are pairs of (mesh index, buffer index in the mesh) std::map, std::map > m_daynight_diffs; - - // Camera offset info -> do we have to translate the mesh? - v3s16 m_camera_offset; }; /*! From af073438fd70833955a30bcbe1c22e6f344ec41c Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Thu, 10 Dec 2020 20:59:24 +0100 Subject: [PATCH 305/624] Various documentation fixes (#10692) set_sky: New feature, keep note about the old syntax get_us_time: Document overflow localplayer: Document "nil" behaviour before initialization collision_box: Safe limit of "1.45" --- doc/client_lua_api.txt | 1 + doc/lua_api.txt | 20 ++++++++++++++++++-- games/devtest/mods/testnodes/nodeboxes.lua | 9 +++++---- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/doc/client_lua_api.txt b/doc/client_lua_api.txt index 32be2fabf..36eeafcf1 100644 --- a/doc/client_lua_api.txt +++ b/doc/client_lua_api.txt @@ -1001,6 +1001,7 @@ Please do not try to access the reference until the camera is initialized, other ### LocalPlayer An interface to retrieve information about the player. +This object will only be available after the client is initialized. Earlier accesses will yield a `nil` value. Methods: diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 25a2b8f60..2fbbd4226 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -1247,6 +1247,9 @@ A box of a regular node would look like: {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, +To avoid collision issues, keep each value within the range of +/- 1.45. +This also applies to leveled nodeboxes, where the final height shall not +exceed this soft limit. @@ -3234,6 +3237,7 @@ Helper functions * returns true when the passed number represents NaN. * `minetest.get_us_time()` * returns time with microsecond precision. May not return wall time. + * This value might overflow on certain 32-bit systems! * `table.copy(table)`: returns a table * returns a deep copy of `table` * `table.indexof(list, val)`: returns the smallest numerical index containing @@ -6425,6 +6429,8 @@ object you are working with still exists. * `selected_mode` is the mode index to be selected after modes have been changed (0 is the first mode). * `set_sky(sky_parameters)` + * The presence of the function `set_sun`, `set_moon` or `set_stars` indicates + whether `set_sky` accepts this format. Check the legacy format otherwise. * `sky_parameters` is a table with the following optional fields: * `base_color`: ColorSpec, changes fog in "skybox" and "plain". * `type`: Available types: @@ -6466,6 +6472,15 @@ object you are working with still exists. abides by, `"custom"` uses `sun_tint` and `moon_tint`, while `"default"` uses the classic Minetest sun and moon tinting. Will use tonemaps, if set to `"default"`. (default: `"default"`) +* `set_sky(base_color, type, {texture names}, clouds)` + * Deprecated. Use `set_sky(sky_parameters)` + * `base_color`: ColorSpec, defaults to white + * `type`: Available types: + * `"regular"`: Uses 0 textures, `bgcolor` ignored + * `"skybox"`: Uses 6 textures, `bgcolor` used + * `"plain"`: Uses 0 textures, `bgcolor` used + * `clouds`: Boolean for whether clouds appear in front of `"skybox"` or + `"plain"` custom skyboxes (default: `true`) * `get_sky()`: returns base_color, type, table of textures, clouds. * `get_sky_color()`: returns a table with the `sky_color` parameters as in `set_sky`. @@ -7346,6 +7361,7 @@ Used by `minetest.register_node`. leveled_max = 127, -- Maximum value for `leveled` (0-127), enforced in -- `minetest.set_node_level` and `minetest.add_node_level`. + -- Values above 124 might causes collision detection issues. liquid_range = 8, -- Number of flowing nodes around source (max. 8) @@ -7373,6 +7389,7 @@ Used by `minetest.register_node`. type = "fixed", fixed = { {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, + -- Node box format: see [Node boxes] }, }, -- Custom selection box definition. Multiple boxes can be defined. @@ -7383,13 +7400,12 @@ Used by `minetest.register_node`. type = "fixed", fixed = { {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, + -- Node box format: see [Node boxes] }, }, -- Custom collision box definition. Multiple boxes can be defined. -- If "nodebox" drawtype is used and collision_box is nil, then node_box -- definition is used for the collision box. - -- Both of the boxes above are defined as: - -- {xmin, ymin, zmin, xmax, ymax, zmax} in nodes from node center. -- Support maps made in and before January 2012 legacy_facedir_simple = false, diff --git a/games/devtest/mods/testnodes/nodeboxes.lua b/games/devtest/mods/testnodes/nodeboxes.lua index ebd858337..7e966fdce 100644 --- a/games/devtest/mods/testnodes/nodeboxes.lua +++ b/games/devtest/mods/testnodes/nodeboxes.lua @@ -18,7 +18,7 @@ minetest.register_node("testnodes:nodebox_fixed", { -- 50% higher than a regular node minetest.register_node("testnodes:nodebox_overhigh", { - description = S("Overhigh Nodebox Test Node"), + description = S("+50% high Nodebox Test Node"), tiles = {"testnodes_nodebox.png"}, drawtype = "nodebox", paramtype = "light", @@ -30,15 +30,16 @@ minetest.register_node("testnodes:nodebox_overhigh", { groups = {dig_immediate=3}, }) --- 100% higher than a regular node +-- 95% higher than a regular node minetest.register_node("testnodes:nodebox_overhigh2", { - description = S("Double-height Nodebox Test Node"), + description = S("+95% high Nodebox Test Node"), tiles = {"testnodes_nodebox.png"}, drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}, + -- Y max: more is possible, but glitchy + fixed = {-0.5, -0.5, -0.5, 0.5, 1.45, 0.5}, }, groups = {dig_immediate=3}, From e18b6c5a21880125284d2a1e9dfb5471d5bc2bec Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Wed, 22 Jan 2020 20:23:40 +0100 Subject: [PATCH 306/624] GUIFormSpecMenu: Shift+Click listring workaround for MacOS event.MouseInput.Shift is not implemented for MacOS --- src/gui/guiFormSpecMenu.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 632b15992..74578111e 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -4075,6 +4075,9 @@ enum ButtonEventType : u8 bool GUIFormSpecMenu::OnEvent(const SEvent& event) { + // WORKAROUND: event.MouseInput.Shift is not implemented for MacOS + static thread_local bool is_shift_down = false; + if (event.EventType==EET_KEY_INPUT_EVENT) { KeyPress kp(event.KeyInput); if (event.KeyInput.PressedDown && ( @@ -4084,6 +4087,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) return true; } + is_shift_down = event.KeyInput.Shift; + if (m_client != NULL && event.KeyInput.PressedDown && (kp == getKeySetting("keymap_screenshot"))) { m_client->makeScreenshot(); @@ -4133,6 +4138,9 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) event.MouseInput.isRightPressed() && getItemAtPos(m_pointer).i != getItemAtPos(m_old_pointer).i))) { + // WORKAROUND: In case shift was pressed prior showing the formspec + is_shift_down |= event.MouseInput.Shift; + // Get selected item and hovered/clicked item (s) m_old_tooltip_id = -1; @@ -4263,7 +4271,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) else // left count = s_count; - if (!event.MouseInput.Shift) { + if (!is_shift_down) { // no shift: select item m_selected_amount = count; m_selected_dragging = button != BET_WHEEL_DOWN; From f2c8c6bf51e608ad6f71710032b8ae017b84fd3d Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 13 Dec 2020 18:25:13 +0100 Subject: [PATCH 307/624] Revert "GUIFormSpecMenu: Shift+Click listring workaround for MacOS" The commit caused Shift-Clicking issues on Linux due to another Irrlicht bug where KeyInput.Shift released keys do not trigger OnEvent() MacOS users should build using a recent Irrlicht 1.8 development version. See also: https://sourceforge.net/p/irrlicht/patches/321/ --- src/gui/guiFormSpecMenu.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 74578111e..632b15992 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -4075,9 +4075,6 @@ enum ButtonEventType : u8 bool GUIFormSpecMenu::OnEvent(const SEvent& event) { - // WORKAROUND: event.MouseInput.Shift is not implemented for MacOS - static thread_local bool is_shift_down = false; - if (event.EventType==EET_KEY_INPUT_EVENT) { KeyPress kp(event.KeyInput); if (event.KeyInput.PressedDown && ( @@ -4087,8 +4084,6 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) return true; } - is_shift_down = event.KeyInput.Shift; - if (m_client != NULL && event.KeyInput.PressedDown && (kp == getKeySetting("keymap_screenshot"))) { m_client->makeScreenshot(); @@ -4138,9 +4133,6 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) event.MouseInput.isRightPressed() && getItemAtPos(m_pointer).i != getItemAtPos(m_old_pointer).i))) { - // WORKAROUND: In case shift was pressed prior showing the formspec - is_shift_down |= event.MouseInput.Shift; - // Get selected item and hovered/clicked item (s) m_old_tooltip_id = -1; @@ -4271,7 +4263,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) else // left count = s_count; - if (!is_shift_down) { + if (!event.MouseInput.Shift) { // no shift: select item m_selected_amount = count; m_selected_dragging = button != BET_WHEEL_DOWN; From 4d41ed09750c7a2fbfeeeccb7a2c3452e3dd26dc Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Mon, 14 Dec 2020 23:49:30 +0100 Subject: [PATCH 308/624] Semi-transparent background for nametags (#10152) --- games/devtest/mods/testentities/visuals.lua | 29 +++++++++++++++++++++ src/client/camera.cpp | 27 ++++++++++++------- 2 files changed, 47 insertions(+), 9 deletions(-) diff --git a/games/devtest/mods/testentities/visuals.lua b/games/devtest/mods/testentities/visuals.lua index 8848ba49f..e3b758329 100644 --- a/games/devtest/mods/testentities/visuals.lua +++ b/games/devtest/mods/testentities/visuals.lua @@ -94,3 +94,32 @@ minetest.register_entity("testentities:upright_animated", { self.object:set_sprite({x=0, y=0}, 4, 1.0, false) end, }) + +minetest.register_entity("testentities:nametag", { + initial_properties = { + visual = "sprite", + textures = { "testentities_sprite.png" }, + }, + + on_activate = function(self, staticdata) + if staticdata ~= "" then + self.color = minetest.deserialize(staticdata).color + else + self.color = { + r = math.random(0, 255), + g = math.random(0, 255), + b = math.random(0, 255), + } + end + + assert(self.color) + self.object:set_properties({ + nametag = tostring(math.random(1000, 10000)), + nametag_color = self.color, + }) + end, + + get_staticdata = function(self) + return minetest.serialize({ color = self.color }) + end, +}) diff --git a/src/client/camera.cpp b/src/client/camera.cpp index 11f8a1c90..9a08254b4 100644 --- a/src/client/camera.cpp +++ b/src/client/camera.cpp @@ -691,10 +691,11 @@ void Camera::drawNametags() core::matrix4 trans = m_cameranode->getProjectionMatrix(); trans *= m_cameranode->getViewMatrix(); - for (std::list::const_iterator - i = m_nametags.begin(); - i != m_nametags.end(); ++i) { - Nametag *nametag = *i; + gui::IGUIFont *font = g_fontengine->getFont(); + video::IVideoDriver *driver = RenderingEngine::get_video_driver(); + v2u32 screensize = driver->getScreenSize(); + + for (const Nametag *nametag : m_nametags) { if (nametag->nametag_color.getAlpha() == 0) { // Enforce hiding nametag, // because if freetype is enabled, a grey @@ -707,21 +708,29 @@ void Camera::drawNametags() if (transformed_pos[3] > 0) { std::wstring nametag_colorless = unescape_translate(utf8_to_wide(nametag->nametag_text)); - core::dimension2d textsize = - g_fontengine->getFont()->getDimension( + core::dimension2d textsize = font->getDimension( nametag_colorless.c_str()); f32 zDiv = transformed_pos[3] == 0.0f ? 1.0f : core::reciprocal(transformed_pos[3]); - v2u32 screensize = RenderingEngine::get_video_driver()->getScreenSize(); v2s32 screen_pos; screen_pos.X = screensize.X * (0.5 * transformed_pos[0] * zDiv + 0.5) - textsize.Width / 2; screen_pos.Y = screensize.Y * (0.5 - transformed_pos[1] * zDiv * 0.5) - textsize.Height / 2; core::rect size(0, 0, textsize.Width, textsize.Height); - g_fontengine->getFont()->draw( + core::rect bg_size(-2, 0, textsize.Width+2, textsize.Height); + + video::SColor textColor = nametag->nametag_color; + + bool darkBackground = textColor.getLuminance() > 186; + video::SColor backgroundColor = darkBackground + ? video::SColor(50, 50, 50, 50) + : video::SColor(50, 255, 255, 255); + driver->draw2DRectangle(backgroundColor, bg_size + screen_pos); + + font->draw( translate_string(utf8_to_wide(nametag->nametag_text)).c_str(), - size + screen_pos, nametag->nametag_color); + size + screen_pos, textColor); } } } From 3ed940ff13fc2b4ef4b63f2c506ed9e5ab59f54f Mon Sep 17 00:00:00 2001 From: wsor4035 <24964441+wsor4035@users.noreply.github.com> Date: Tue, 15 Dec 2020 13:05:55 -0500 Subject: [PATCH 309/624] lua_api.txt: Add mod_orgin to node def (#10697) --- doc/lua_api.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 2fbbd4226..f5c07fe85 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -7612,6 +7612,13 @@ Used by `minetest.register_node`. -- intensity: 1.0 = mid range of regular TNT. -- If defined, called when an explosion touches the node, instead of -- removing the node. + + mod_origin = "modname", + -- stores which mod actually registered a node + -- if it can not find a source, returns "??" + -- useful for getting what mod truly registered something + -- example: if a node is registered as ":othermodname:nodename", + -- nodename will show "othermodname", but mod_orgin will say "modname" } Crafting recipes From d0a38f694d483fbd9c0554c8d7175a94097fd67e Mon Sep 17 00:00:00 2001 From: Thomas--S Date: Tue, 15 Dec 2020 19:06:36 +0100 Subject: [PATCH 310/624] Formspec: Allow to specify frame loop for model[] (#10679) Add the ability to specify an animation frame loop range for the model[] formspec element. --- doc/lua_api.txt | 6 +++++- src/gui/guiFormSpecMenu.cpp | 21 ++++++++++++++++----- src/gui/guiScene.cpp | 9 +++++++++ src/gui/guiScene.h | 1 + 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index f5c07fe85..ddb6d4e19 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2277,7 +2277,7 @@ Elements * `frame duration`: Milliseconds between each frame. `0` means the frames don't advance. * `frame start` (Optional): The index of the frame to start on. Default `1`. -### `model[,;,;;;;;;]` +### `model[,;,;;;;;;;]` * Show a mesh model. * `name`: Element name that can be used for styling @@ -2288,6 +2288,9 @@ Elements The axes are euler angles in degrees. * `continuous` (Optional): Whether the rotation is continuous. Default `false`. * `mouse control` (Optional): Whether the model can be controlled with the mouse. Default `true`. +* `frame loop range` (Optional): Range of the animation frames. + * Defaults to the full range of all available frames. + * Syntax: `,` ### `item_image[,;,;]` @@ -2789,6 +2792,7 @@ Some types may inherit styles from parent types. * image_button * item_image_button * label +* model * pwdfield, inherits from field * scrollbar * tabheader diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 632b15992..ed197d0d1 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -70,7 +70,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #define MY_CHECKPOS(a,b) \ if (v_pos.size() != 2) { \ - errorstream<< "Invalid pos for element " << a << "specified: \"" \ + errorstream<< "Invalid pos for element " << a << " specified: \"" \ << parts[b] << "\"" << std::endl; \ return; \ } @@ -78,7 +78,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #define MY_CHECKGEOM(a,b) \ if (v_geom.size() != 2) { \ errorstream<< "Invalid geometry for element " << a << \ - "specified: \"" << parts[b] << "\"" << std::endl; \ + " specified: \"" << parts[b] << "\"" << std::endl; \ return; \ } /* @@ -2725,7 +2725,7 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) { std::vector parts = split(element, ';'); - if (parts.size() < 5 || (parts.size() > 8 && + if (parts.size() < 5 || (parts.size() > 9 && m_formspec_version <= FORMSPEC_API_VERSION)) { errorstream << "Invalid model element (" << parts.size() << "): '" << element << "'" << std::endl; @@ -2733,8 +2733,8 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) } // Avoid length checks by resizing - if (parts.size() < 8) - parts.resize(8); + if (parts.size() < 9) + parts.resize(9); std::vector v_pos = split(parts[0], ','); std::vector v_geom = split(parts[1], ','); @@ -2744,6 +2744,7 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) std::vector vec_rot = split(parts[5], ','); bool inf_rotation = is_yes(parts[6]); bool mousectrl = is_yes(parts[7]) || parts[7].empty(); // default true + std::vector frame_loop = split(parts[8], ','); MY_CHECKPOS("model", 0); MY_CHECKGEOM("model", 1); @@ -2794,6 +2795,16 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) e->enableContinuousRotation(inf_rotation); e->enableMouseControl(mousectrl); + s32 frame_loop_begin = 0; + s32 frame_loop_end = 0x7FFFFFFF; + + if (frame_loop.size() == 2) { + frame_loop_begin = stoi(frame_loop[0]); + frame_loop_end = stoi(frame_loop[1]); + } + + e->setFrameLoop(frame_loop_begin, frame_loop_end); + auto style = getStyleForElement("model", spec.fname); e->setStyles(style); e->drop(); diff --git a/src/gui/guiScene.cpp b/src/gui/guiScene.cpp index 08f119e07..5f4c50b91 100644 --- a/src/gui/guiScene.cpp +++ b/src/gui/guiScene.cpp @@ -152,6 +152,15 @@ void GUIScene::setStyles(const std::array &sty setBackgroundColor(style.getColor(StyleSpec::BGCOLOR, m_bgcolor)); } +/** + * Sets the frame loop range for the mesh + */ +void GUIScene::setFrameLoop(s32 begin, s32 end) +{ + if (m_mesh->getStartFrame() != begin || m_mesh->getEndFrame() != end) + m_mesh->setFrameLoop(begin, end); +} + /* Camera control functions */ inline void GUIScene::calcOptimalDistance() diff --git a/src/gui/guiScene.h b/src/gui/guiScene.h index 707e6f66a..08eb7f350 100644 --- a/src/gui/guiScene.h +++ b/src/gui/guiScene.h @@ -36,6 +36,7 @@ public: scene::IAnimatedMeshSceneNode *setMesh(scene::IAnimatedMesh *mesh = nullptr); void setTexture(u32 idx, video::ITexture *texture); void setBackgroundColor(const video::SColor &color) noexcept { m_bgcolor = color; }; + void setFrameLoop(s32 begin, s32 end); void enableMouseControl(bool enable) noexcept { m_mouse_ctrl = enable; }; void setRotation(v2f rot) noexcept { m_custom_rot = rot; }; void enableContinuousRotation(bool enable) noexcept { m_inf_rot = enable; }; From e6380565236d6d963acf75538f1f8fec807190cc Mon Sep 17 00:00:00 2001 From: Lars Date: Wed, 9 Dec 2020 14:30:37 -0800 Subject: [PATCH 311/624] Allow configuring block disk and net compression. Change default disk level. --- builtin/settingtypes.txt | 14 ++++++++++++++ src/defaultsettings.cpp | 4 ++++ src/map.cpp | 8 +++++--- src/map.h | 3 ++- src/mapblock.cpp | 10 +++++----- src/mapblock.h | 2 +- src/mapgen/mg_schematic.cpp | 4 ++-- src/mapnode.cpp | 34 ++++++++++------------------------ src/mapnode.h | 4 ++-- src/server.cpp | 4 ++-- 10 files changed, 47 insertions(+), 40 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index c9f16578c..251b6d868 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -1048,6 +1048,13 @@ full_block_send_enable_min_time_from_building (Delay in sending blocks after bui # client number. max_packets_per_iteration (Max. packets per iteration) int 1024 +# ZLib compression level to use when sending mapblocks to the client. +# -1 - Zlib's default compression level +# 0 - no compresson, fastest +# 9 - best compression, slowest +# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method) +map_compression_level_net (Map Compression Level for Network Transfer) int -1 -1 9 + [*Game] # Default game when creating a new world. @@ -1240,6 +1247,13 @@ max_objects_per_block (Maximum objects per block) int 64 # See https://www.sqlite.org/pragma.html#pragma_synchronous sqlite_synchronous (Synchronous SQLite) enum 2 0,1,2 +# ZLib compression level to use when saving mapblocks to disk. +# -1 - Zlib's default compression level +# 0 - no compresson, fastest +# 9 - best compression, slowest +# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method) +map_compression_level_disk (Map Compression Level for Disk Storage) int 3 -1 9 + # Length of a server tick and the interval at which objects are generally updated over # network. dedicated_server_step (Dedicated server step) float 0.09 diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 177955589..e13977fe3 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -385,6 +385,8 @@ void set_default_settings(Settings *settings) settings->setDefault("chat_message_limit_per_10sec", "8.0"); settings->setDefault("chat_message_limit_trigger_kick", "50"); settings->setDefault("sqlite_synchronous", "2"); + settings->setDefault("map_compression_level_disk", "3"); + settings->setDefault("map_compression_level_net", "-1"); settings->setDefault("full_block_send_enable_min_time_from_building", "2.0"); settings->setDefault("dedicated_server_step", "0.09"); settings->setDefault("active_block_mgmt_interval", "2.0"); @@ -470,6 +472,8 @@ void set_default_settings(Settings *settings) settings->setDefault("fps_max_unfocused", "10"); settings->setDefault("max_objects_per_block", "20"); settings->setDefault("sqlite_synchronous", "1"); + settings->setDefault("map_compression_level_disk", "-1"); + settings->setDefault("map_compression_level_net", "3"); settings->setDefault("server_map_save_interval", "15"); settings->setDefault("client_mapblock_limit", "1000"); settings->setDefault("active_block_range", "2"); diff --git a/src/map.cpp b/src/map.cpp index 37b6e9b6b..6a7cadca5 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1235,6 +1235,8 @@ ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef, m_save_time_counter = mb->addCounter("minetest_core_map_save_time", "Map save time (in nanoseconds)"); + m_map_compression_level = rangelim(g_settings->getS16("map_compression_level_disk"), -1, 9); + try { // If directory exists, check contents and load if possible if (fs::PathExists(m_savedir)) { @@ -1863,10 +1865,10 @@ void ServerMap::endSave() bool ServerMap::saveBlock(MapBlock *block) { - return saveBlock(block, dbase); + return saveBlock(block, dbase, m_map_compression_level); } -bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db) +bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db, int compression_level) { v3s16 p3d = block->getPos(); @@ -1886,7 +1888,7 @@ bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db) */ std::ostringstream o(std::ios_base::binary); o.write((char*) &version, 1); - block->serialize(o, version, true); + block->serialize(o, version, true, compression_level); bool ret = db->saveBlock(p3d, o.str()); if (ret) { diff --git a/src/map.h b/src/map.h index 3bc30c482..c8bae9451 100644 --- a/src/map.h +++ b/src/map.h @@ -381,7 +381,7 @@ public: MapgenParams *getMapgenParams(); bool saveBlock(MapBlock *block); - static bool saveBlock(MapBlock *block, MapDatabase *db); + static bool saveBlock(MapBlock *block, MapDatabase *db, int compression_level = -1); MapBlock* loadBlock(v3s16 p); // Database version void loadBlock(std::string *blob, v3s16 p3d, MapSector *sector, bool save_after_load=false); @@ -416,6 +416,7 @@ private: std::string m_savedir; bool m_map_saving_enabled; + int m_map_compression_level; #if 0 // Chunk size in MapSectors // If 0, chunks are disabled. diff --git a/src/mapblock.cpp b/src/mapblock.cpp index 8bfecd755..0ca71e643 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -355,7 +355,7 @@ static void correctBlockNodeIds(const NameIdMapping *nimap, MapNode *nodes, } } -void MapBlock::serialize(std::ostream &os, u8 version, bool disk) +void MapBlock::serialize(std::ostream &os, u8 version, bool disk, int compression_level) { if(!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapBlock format not supported"); @@ -394,7 +394,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk) writeU8(os, content_width); writeU8(os, params_width); MapNode::serializeBulk(os, version, tmp_nodes, nodecount, - content_width, params_width, true); + content_width, params_width, compression_level); delete[] tmp_nodes; } else @@ -404,7 +404,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk) writeU8(os, content_width); writeU8(os, params_width); MapNode::serializeBulk(os, version, data, nodecount, - content_width, params_width, true); + content_width, params_width, compression_level); } /* @@ -412,7 +412,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk) */ std::ostringstream oss(std::ios_base::binary); m_node_metadata.serialize(oss, version, disk); - compressZlib(oss.str(), os); + compressZlib(oss.str(), os, compression_level); /* Data that goes to disk, but not the network @@ -485,7 +485,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version, bool disk) if(params_width != 2) throw SerializationError("MapBlock::deSerialize(): invalid params_width"); MapNode::deSerializeBulk(is, version, data, nodecount, - content_width, params_width, true); + content_width, params_width); /* NodeMetadata diff --git a/src/mapblock.h b/src/mapblock.h index 6b5015cab..641a1b69b 100644 --- a/src/mapblock.h +++ b/src/mapblock.h @@ -482,7 +482,7 @@ public: // These don't write or read version by itself // Set disk to true for on-disk format, false for over-the-network format // Precondition: version >= SER_FMT_VER_LOWEST_WRITE - void serialize(std::ostream &os, u8 version, bool disk); + void serialize(std::ostream &os, u8 version, bool disk, int compression_level); // If disk == true: In addition to doing other things, will add // unknown blocks from id-name mapping to wndef void deSerialize(std::istream &is, u8 version, bool disk); diff --git a/src/mapgen/mg_schematic.cpp b/src/mapgen/mg_schematic.cpp index dfd414709..e70e97e48 100644 --- a/src/mapgen/mg_schematic.cpp +++ b/src/mapgen/mg_schematic.cpp @@ -334,7 +334,7 @@ bool Schematic::deserializeFromMts(std::istream *is, schemdata = new MapNode[nodecount]; MapNode::deSerializeBulk(ss, SER_FMT_VER_HIGHEST_READ, schemdata, - nodecount, 2, 2, true); + nodecount, 2, 2); // Fix probability values for nodes that were ignore; removed in v2 if (version < 2) { @@ -376,7 +376,7 @@ bool Schematic::serializeToMts(std::ostream *os, // compressed bulk node data MapNode::serializeBulk(ss, SER_FMT_VER_HIGHEST_WRITE, - schemdata, size.X * size.Y * size.Z, 2, 2, true); + schemdata, size.X * size.Y * size.Z, 2, 2, -1); return true; } diff --git a/src/mapnode.cpp b/src/mapnode.cpp index dcf1f6d6e..0551f3b6f 100644 --- a/src/mapnode.cpp +++ b/src/mapnode.cpp @@ -706,7 +706,7 @@ void MapNode::deSerialize(u8 *source, u8 version) } void MapNode::serializeBulk(std::ostream &os, int version, const MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed) + u8 content_width, u8 params_width, int compression_level) { if (!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapNode format not supported"); @@ -737,10 +737,7 @@ void MapNode::serializeBulk(std::ostream &os, int version, Compress data to output stream */ - if (compressed) - compressZlib(databuf, databuf_size, os); - else - os.write((const char*) &databuf[0], databuf_size); + compressZlib(databuf, databuf_size, os, compression_level); delete [] databuf; } @@ -748,7 +745,7 @@ void MapNode::serializeBulk(std::ostream &os, int version, // Deserialize bulk node data void MapNode::deSerializeBulk(std::istream &is, int version, MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed) + u8 content_width, u8 params_width) { if(!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapNode format not supported"); @@ -760,24 +757,13 @@ void MapNode::deSerializeBulk(std::istream &is, int version, // Uncompress or read data u32 len = nodecount * (content_width + params_width); - SharedBuffer databuf(len); - if(compressed) - { - std::ostringstream os(std::ios_base::binary); - decompressZlib(is, os); - std::string s = os.str(); - if(s.size() != len) - throw SerializationError("deSerializeBulkNodes: " - "decompress resulted in invalid size"); - memcpy(&databuf[0], s.c_str(), len); - } - else - { - is.read((char*) &databuf[0], len); - if(is.eof() || is.fail()) - throw SerializationError("deSerializeBulkNodes: " - "failed to read bulk node data"); - } + std::ostringstream os(std::ios_base::binary); + decompressZlib(is, os); + std::string s = os.str(); + if(s.size() != len) + throw SerializationError("deSerializeBulkNodes: " + "decompress resulted in invalid size"); + const u8 *databuf = reinterpret_cast(s.c_str()); // Deserialize content if(content_width == 1) diff --git a/src/mapnode.h b/src/mapnode.h index 32ac1b4f6..a9ae63ba3 100644 --- a/src/mapnode.h +++ b/src/mapnode.h @@ -292,10 +292,10 @@ struct MapNode // compressed = true to zlib-compress output static void serializeBulk(std::ostream &os, int version, const MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed); + u8 content_width, u8 params_width, int compression_level); static void deSerializeBulk(std::istream &is, int version, MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed); + u8 content_width, u8 params_width); private: // Deprecated serialization methods diff --git a/src/server.cpp b/src/server.cpp index 8f6257afe..b5352749c 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2332,9 +2332,9 @@ void Server::SendBlockNoLock(session_t peer_id, MapBlock *block, u8 ver, /* Create a packet with the block in the right format */ - + thread_local const int net_compression_level = rangelim(g_settings->getS16("map_compression_level_net"), -1, 9); std::ostringstream os(std::ios_base::binary); - block->serialize(os, ver, false); + block->serialize(os, ver, false, net_compression_level); block->serializeNetworkSpecific(os); std::string s = os.str(); From 6f8a1c99d5a30de0021c2c03bb5f79eb8281f868 Mon Sep 17 00:00:00 2001 From: DS Date: Fri, 18 Dec 2020 19:38:07 +0100 Subject: [PATCH 312/624] Documentation for highest formspec_version[] and changelog (#10592) --- doc/lua_api.txt | 17 +++++++++++++++++ src/network/networkprotocol.h | 17 +---------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index ddb6d4e19..708d6b0bc 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2113,6 +2113,22 @@ Examples list[current_player;main;0,3.5;8,4;] list[current_player;craft;3,0;3,3;] list[current_player;craftpreview;7,1;1,1;] + +Version History +--------------- + +* FORMSPEC VERSION 1: + * (too much) +* FORMSPEC VERSION 2: + * Forced real coordinates + * background9[]: 9-slice scaling parameters +* FORMSPEC VERSION 3: + * Formspec elements are drawn in the order of definition + * bgcolor[]: use 3 parameters (bgcolor, formspec (now an enum), fbgcolor) + * box[] and image[] elements enable clipping by default + * new element: scroll_container[] +* FORMSPEC VERSION 4: + * Allow dropdown indexing events Elements -------- @@ -2125,6 +2141,7 @@ Elements * Clients older than this version can neither show newer elements nor display elements with new arguments correctly. * Available since feature `formspec_version_element`. +* See also: [Version History] ### `size[,,]` diff --git a/src/network/networkprotocol.h b/src/network/networkprotocol.h index 666e75e45..838bf0b2c 100644 --- a/src/network/networkprotocol.h +++ b/src/network/networkprotocol.h @@ -226,22 +226,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #define PASSWORD_SIZE 28 // Maximum password length. Allows for // base64-encoded SHA-1 (27+\0). -/* - Changes by FORMSPEC_API_VERSION: - - FORMSPEC VERSION 1: - (too much) - FORMSPEC VERSION 2: - Forced real coordinates - background9[]: 9-slice scaling parameters - FORMSPEC VERSION 3: - Formspec elements are drawn in the order of definition - bgcolor[]: use 3 parameters (bgcolor, formspec (now an enum), fbgcolor) - box[] and image[] elements enable clipping by default - new element: scroll_container[] - FORMSPEC VERSION 4: - Allow dropdown indexing events -*/ +// See also: Formspec Version History in doc/lua_api.txt #define FORMSPEC_API_VERSION 4 #define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-" From d5a481b4e610768480b1f57470a4724baa479e4b Mon Sep 17 00:00:00 2001 From: LoneWolfHT Date: Fri, 18 Dec 2020 10:38:27 -0800 Subject: [PATCH 313/624] Make installer create its own Minetest folder (#10445) This changes the installer to create its own Minetest folder instead of having the user create it themselves. This prevents spewing the contents of Minetest everywhere when users change the install directory and expect the installer to create a folder to put it in --- CMakeLists.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 31f548be7..78d551168 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -165,7 +165,7 @@ if(RUN_IN_PLACE) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/textures/texture_packs_here.txt" DESTINATION "${SHAREDIR}/textures") endif() -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minetest_game" DESTINATION "${SHAREDIR}/games/" +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minetest_game" DESTINATION "${SHAREDIR}/games/" COMPONENT "SUBGAME_MINETEST_GAME" OPTIONAL PATTERN ".git*" EXCLUDE ) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/devtest" DESTINATION "${SHAREDIR}/games/" COMPONENT "SUBGAME_MINIMAL" OPTIONAL PATTERN ".git*" EXCLUDE ) @@ -278,19 +278,20 @@ if(WIN32) set(CPACK_GENERATOR ZIP) else() - set(CPACK_GENERATOR WIX ZIP) + set(CPACK_GENERATOR WIX) set(CPACK_PACKAGE_NAME "${PROJECT_NAME_CAPITALIZED}") - set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME_CAPITALIZED}") + set(CPACK_PACKAGE_INSTALL_DIRECTORY ".") set(CPACK_PACKAGE_EXECUTABLES ${PROJECT_NAME} "${PROJECT_NAME_CAPITALIZED}") set(CPACK_CREATE_DESKTOP_LINKS ${PROJECT_NAME}) + set(CPACK_PACKAGING_INSTALL_PREFIX "/${PROJECT_NAME_CAPITALIZED}") set(CPACK_WIX_PRODUCT_ICON "${CMAKE_CURRENT_SOURCE_DIR}/misc/minetest-icon.ico") - # Supported languages can be found at + # Supported languages can be found at # http://wixtoolset.org/documentation/manual/v3/wixui/wixui_localization.html #set(CPACK_WIX_CULTURES "ar-SA,bg-BG,ca-ES,hr-HR,cs-CZ,da-DK,nl-NL,en-US,et-EE,fi-FI,fr-FR,de-DE") set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_BANNER.BMP") set(CPACK_WIX_UI_DIALOG "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_DIALOG.BMP") - + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/doc/lgpl-2.1.txt") # The correct way would be to include both x32 and x64 into one installer From 025035db5c87e9eaa9f83859f860539fc4fb4dc0 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 18 Dec 2020 19:38:39 +0100 Subject: [PATCH 314/624] DevTest: Add food item to test food replacement (#10642) --- games/devtest/mods/testfood/init.lua | 7 +++++++ .../mods/testfood/textures/testfood_replace.png | Bin 0 -> 135 bytes 2 files changed, 7 insertions(+) create mode 100644 games/devtest/mods/testfood/textures/testfood_replace.png diff --git a/games/devtest/mods/testfood/init.lua b/games/devtest/mods/testfood/init.lua index a6236ff68..39b121306 100644 --- a/games/devtest/mods/testfood/init.lua +++ b/games/devtest/mods/testfood/init.lua @@ -22,3 +22,10 @@ minetest.register_craftitem("testfood:bad5", { on_use = minetest.item_eat(-5), }) +minetest.register_craftitem("testfood:replace1", { + description = S("Replacing Food (+1)").."\n".. + S("Replaced with 'Good Food (+1)' when eaten"), + inventory_image = "testfood_replace.png", + on_use = minetest.item_eat(1, "testfood:good1"), +}) + diff --git a/games/devtest/mods/testfood/textures/testfood_replace.png b/games/devtest/mods/testfood/textures/testfood_replace.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef6876e5bbf794803a9282601a1836def754849 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`ex5FlAr*|t5;Gsz%PelRulP_e z67yMpwPL-4&;FG+o!SS~|M{*mZpZEf)hIr*f@dT^6ZjBwh h!bOagoEa6246|yNc^<#LY(LOs22WQ%mvv4FO#sNwDZu~$ literal 0 HcmV?d00001 From 664f5ce9605b580b9500547fff1e54eac553f295 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 19 Dec 2020 13:27:15 +0000 Subject: [PATCH 315/624] Add open user data button to main menu (#10579) --- .../net/minetest/minetest/GameActivity.java | 4 +-- builtin/mainmenu/tab_credits.lua | 20 +++++++++-- doc/menu_lua_api.txt | 7 ++++ src/porting.cpp | 35 ++++++++++++++----- src/porting.h | 20 ++++++++++- src/porting_android.cpp | 6 ++-- src/porting_android.h | 2 +- src/script/lua_api/l_mainmenu.cpp | 21 ++++++++++- src/script/lua_api/l_mainmenu.h | 4 +++ 9 files changed, 100 insertions(+), 19 deletions(-) diff --git a/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java b/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java index db126a2b9..38a388230 100644 --- a/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java +++ b/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java @@ -142,8 +142,8 @@ public class GameActivity extends NativeActivity { return getResources().getDisplayMetrics().widthPixels; } - public void openURL(String url) { - Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + public void openURI(String uri) { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); startActivity(browserIntent); } } diff --git a/builtin/mainmenu/tab_credits.lua b/builtin/mainmenu/tab_credits.lua index c2b7e503a..075274798 100644 --- a/builtin/mainmenu/tab_credits.lua +++ b/builtin/mainmenu/tab_credits.lua @@ -100,9 +100,10 @@ return { cbf_formspec = function(tabview, name, tabdata) local logofile = defaulttexturedir .. "logo.png" local version = core.get_version() - return "image[0.5,1;" .. core.formspec_escape(logofile) .. "]" .. - "label[0.5,2.8;" .. version.project .. " " .. version.string .. "]" .. - "button[0.5,3;2,2;homepage;minetest.net]" .. + local fs = "image[0.75,0.5;2.2,2.2;" .. core.formspec_escape(logofile) .. "]" .. + "style[label_button;border=false]" .. + "button[0.5,2;2.5,2;label_button;" .. version.project .. " " .. version.string .. "]" .. + "button[0.75,2.75;2,2;homepage;minetest.net]" .. "tablecolumns[color;text]" .. "tableoptions[background=#00000000;highlight=#00000000;border=false]" .. "table[3.5,-0.25;8.5,6.05;list_credits;" .. @@ -115,10 +116,23 @@ return { "#FFFF00," .. fgettext("Previous Contributors") .. ",," .. buildCreditList(previous_contributors) .. "," .. ";1]" + + if PLATFORM ~= "Android" then + fs = fs .. "tooltip[userdata;" .. + fgettext("Opens the directory that contains user-provided worlds, games, mods,\n" .. + "and texture packs in a file manager / explorer.") .. "]" + fs = fs .. "button[0,4.75;3.5,1;userdata;" .. fgettext("Open User Data Directory") .. "]" + end + + return fs end, cbf_button_handler = function(this, fields, name, tabdata) if fields.homepage then core.open_url("https://www.minetest.net") end + + if fields.userdata then + core.open_dir(core.get_user_path()) + end end, } diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt index 76bebe08b..8908552d5 100644 --- a/doc/menu_lua_api.txt +++ b/doc/menu_lua_api.txt @@ -43,10 +43,14 @@ core.get_max_supp_proto() core.open_url(url) ^ opens the URL in a web browser, returns false on failure. ^ Must begin with http:// or https:// +core.open_dir(path) +^ opens the path in the system file browser/explorer, returns false on failure. +^ Must be an existing directory. core.get_version() (possible in async calls) ^ returns current core version + Filesystem ---------- @@ -207,6 +211,9 @@ Content and Packages Content - an installed mod, modpack, game, or texture pack (txt) Package - content which is downloadable from the content db, may or may not be installed. +* core.get_user_path() (possible in async calls) + * returns path to global user data, + the directory that contains user-provided mods, worlds, games, and texture packs. * core.get_modpath() (possible in async calls) * returns path to global modpath * core.get_clientmodpath() (possible in async calls) diff --git a/src/porting.cpp b/src/porting.cpp index e7ed4e090..4c87bddee 100644 --- a/src/porting.cpp +++ b/src/porting.cpp @@ -719,29 +719,48 @@ int mt_snprintf(char *buf, const size_t buf_size, const char *fmt, ...) return c; } -bool openURL(const std::string &url) +static bool open_uri(const std::string &uri) { - if ((url.substr(0, 7) != "http://" && url.substr(0, 8) != "https://") || - url.find_first_of("\r\n") != std::string::npos) { - errorstream << "Invalid url: " << url << std::endl; + if (uri.find_first_of("\r\n") != std::string::npos) { + errorstream << "Unable to open URI as it is invalid, contains new line: " << uri << std::endl; return false; } #if defined(_WIN32) - return (intptr_t)ShellExecuteA(NULL, NULL, url.c_str(), NULL, NULL, SW_SHOWNORMAL) > 32; + return (intptr_t)ShellExecuteA(NULL, NULL, uri.c_str(), NULL, NULL, SW_SHOWNORMAL) > 32; #elif defined(__ANDROID__) - openURLAndroid(url); + openURIAndroid(uri); return true; #elif defined(__APPLE__) - const char *argv[] = {"open", url.c_str(), NULL}; + const char *argv[] = {"open", uri.c_str(), NULL}; return posix_spawnp(NULL, "open", NULL, NULL, (char**)argv, (*_NSGetEnviron())) == 0; #else - const char *argv[] = {"xdg-open", url.c_str(), NULL}; + const char *argv[] = {"xdg-open", uri.c_str(), NULL}; return posix_spawnp(NULL, "xdg-open", NULL, NULL, (char**)argv, environ) == 0; #endif } +bool open_url(const std::string &url) +{ + if (url.substr(0, 7) != "http://" && url.substr(0, 8) != "https://") { + errorstream << "Unable to open browser as URL is missing schema: " << url << std::endl; + return false; + } + + return open_uri(url); +} + +bool open_directory(const std::string &path) +{ + if (!fs::IsDir(path)) { + errorstream << "Unable to open directory as it does not exist: " << path << std::endl; + return false; + } + + return open_uri(path); +} + // Load performance counter frequency only once at startup #ifdef _WIN32 diff --git a/src/porting.h b/src/porting.h index c7adf12a2..e4ebe36fd 100644 --- a/src/porting.h +++ b/src/porting.h @@ -332,7 +332,25 @@ void attachOrCreateConsole(); int mt_snprintf(char *buf, const size_t buf_size, const char *fmt, ...); -bool openURL(const std::string &url); +/** + * Opens URL in default web browser + * + * Must begin with http:// or https://, and not contain any new lines + * + * @param url The URL + * @return true on success, false on failure + */ +bool open_url(const std::string &url); + +/** + * Opens a directory in the default file manager + * + * The directory must exist. + * + * @param path Path to directory + * @return true on success, false on failure + */ +bool open_directory(const std::string &path); } // namespace porting diff --git a/src/porting_android.cpp b/src/porting_android.cpp index 41b521ec2..f5870c174 100644 --- a/src/porting_android.cpp +++ b/src/porting_android.cpp @@ -213,13 +213,13 @@ void showInputDialog(const std::string &acceptButton, const std::string &hint, jacceptButton, jhint, jcurrent, jeditType); } -void openURLAndroid(const std::string &url) +void openURIAndroid(const std::string &url) { - jmethodID url_open = jnienv->GetMethodID(nativeActivity, "openURL", + jmethodID url_open = jnienv->GetMethodID(nativeActivity, "openURI", "(Ljava/lang/String;)V"); FATAL_ERROR_IF(url_open == nullptr, - "porting::openURLAndroid unable to find java openURL method"); + "porting::openURIAndroid unable to find java openURI method"); jstring jurl = jnienv->NewStringUTF(url.c_str()); jnienv->CallVoidMethod(app_global->activity->clazz, url_open, jurl); diff --git a/src/porting_android.h b/src/porting_android.h index 6eb054041..239815922 100644 --- a/src/porting_android.h +++ b/src/porting_android.h @@ -58,7 +58,7 @@ void initializePathsAndroid(); void showInputDialog(const std::string &acceptButton, const std::string &hint, const std::string ¤t, int editType); -void openURLAndroid(const std::string &url); +void openURIAndroid(const std::string &url); /** * WORKAROUND for not working callbacks from java -> c++ diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 0aa2760e9..0b0b2de3b 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -686,6 +686,14 @@ int ModApiMainMenu::l_get_mapgen_names(lua_State *L) } +/******************************************************************************/ +int ModApiMainMenu::l_get_user_path(lua_State *L) +{ + std::string path = fs::RemoveRelativePathComponents(porting::path_user); + lua_pushstring(L, path.c_str()); + return 1; +} + /******************************************************************************/ int ModApiMainMenu::l_get_modpath(lua_State *L) { @@ -1067,7 +1075,15 @@ int ModApiMainMenu::l_get_max_supp_proto(lua_State *L) int ModApiMainMenu::l_open_url(lua_State *L) { std::string url = luaL_checkstring(L, 1); - lua_pushboolean(L, porting::openURL(url)); + lua_pushboolean(L, porting::open_url(url)); + return 1; +} + +/******************************************************************************/ +int ModApiMainMenu::l_open_dir(lua_State *L) +{ + std::string path = luaL_checkstring(L, 1); + lua_pushboolean(L, porting::open_directory(path)); return 1; } @@ -1113,6 +1129,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(set_background); API_FCT(set_topleft_text); API_FCT(get_mapgen_names); + API_FCT(get_user_path); API_FCT(get_modpath); API_FCT(get_clientmodpath); API_FCT(get_gamepath); @@ -1134,6 +1151,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(get_min_supp_proto); API_FCT(get_max_supp_proto); API_FCT(open_url); + API_FCT(open_dir); API_FCT(do_async_callback); } @@ -1144,6 +1162,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top) API_FCT(get_games); API_FCT(get_favorites); API_FCT(get_mapgen_names); + API_FCT(get_user_path); API_FCT(get_modpath); API_FCT(get_clientmodpath); API_FCT(get_gamepath); diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index 5a16b3bfe..faa2bf273 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -112,6 +112,8 @@ private: static int l_get_mainmenu_path(lua_State *L); + static int l_get_user_path(lua_State *L); + static int l_get_modpath(lua_State *L); static int l_get_clientmodpath(lua_State *L); @@ -148,6 +150,8 @@ private: // other static int l_open_url(lua_State *L); + static int l_open_dir(lua_State *L); + // async static int l_do_async_callback(lua_State *L); From ccbf8029ea6bfc5bb5d4af340bd4c2c0d58fe0ff Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Sat, 19 Dec 2020 22:57:10 +0300 Subject: [PATCH 316/624] Cleanup shader generation code (#10663) Shader generation is a mess. This commit cleans some parts up, including dropping remains of HLSL support which was never actually implemented. --- .../shaders/nodes_shader/opengl_fragment.glsl | 4 +- .../object_shader/opengl_fragment.glsl | 4 +- src/client/clientenvironment.cpp | 6 +- src/client/game.cpp | 6 +- src/client/hud.cpp | 2 +- src/client/minimap.cpp | 2 +- src/client/render/interlaced.cpp | 2 +- src/client/shader.cpp | 479 +++++------------- src/client/shader.h | 21 +- src/client/sky.cpp | 2 +- src/nodedef.cpp | 6 +- 11 files changed, 157 insertions(+), 377 deletions(-) diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl index b0f6d45d0..b5d85da64 100644 --- a/client/shaders/nodes_shader/opengl_fragment.glsl +++ b/client/shaders/nodes_shader/opengl_fragment.glsl @@ -22,7 +22,7 @@ varying vec3 eyeVec; const float fogStart = FOG_START; const float fogShadingParameter = 1.0 / ( 1.0 - fogStart); -#ifdef ENABLE_TONE_MAPPING +#if ENABLE_TONE_MAPPING /* Hable's UC2 Tone mapping parameters A = 0.22; @@ -73,7 +73,7 @@ void main(void) vec4 col = vec4(color.rgb * varColor.rgb, 1.0); -#ifdef ENABLE_TONE_MAPPING +#if ENABLE_TONE_MAPPING col = applyToneMapping(col); #endif diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl index bf18c1499..12cc54ae7 100644 --- a/client/shaders/object_shader/opengl_fragment.glsl +++ b/client/shaders/object_shader/opengl_fragment.glsl @@ -19,7 +19,7 @@ const float BS = 10.0; const float fogStart = FOG_START; const float fogShadingParameter = 1.0 / (1.0 - fogStart); -#ifdef ENABLE_TONE_MAPPING +#if ENABLE_TONE_MAPPING /* Hable's UC2 Tone mapping parameters A = 0.22; @@ -75,7 +75,7 @@ void main(void) col.rgb *= emissiveColor.rgb * vIDiff; -#ifdef ENABLE_TONE_MAPPING +#if ENABLE_TONE_MAPPING col = applyToneMapping(col); #endif diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp index ea7be4200..da1e6e9c7 100644 --- a/src/client/clientenvironment.cpp +++ b/src/client/clientenvironment.cpp @@ -51,12 +51,8 @@ public: ~CAOShaderConstantSetter() override = default; - void onSetConstants(video::IMaterialRendererServices *services, - bool is_highlevel) override + void onSetConstants(video::IMaterialRendererServices *services) override { - if (!is_highlevel) - return; - // Ambient color video::SColorf emissive_color(m_emissive_color); diff --git a/src/client/game.cpp b/src/client/game.cpp index 575fd46ff..fd4d09394 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -475,12 +475,8 @@ public: g_settings->deregisterChangedCallback("enable_fog", settingsCallback, this); } - virtual void onSetConstants(video::IMaterialRendererServices *services, - bool is_highlevel) + void onSetConstants(video::IMaterialRendererServices *services) override { - if (!is_highlevel) - return; - // Background color video::SColor bgcolor = m_sky->getBgColor(); video::SColorf bgcolorf(bgcolor); diff --git a/src/client/hud.cpp b/src/client/hud.cpp index f6497fe25..8d8411ca1 100644 --- a/src/client/hud.cpp +++ b/src/client/hud.cpp @@ -100,7 +100,7 @@ Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player, if (g_settings->getBool("enable_shaders")) { IShaderSource *shdrsrc = client->getShaderSource(); u16 shader_id = shdrsrc->getShader( - m_mode == HIGHLIGHT_HALO ? "selection_shader" : "default_shader", 1, 1); + m_mode == HIGHLIGHT_HALO ? "selection_shader" : "default_shader", TILE_MATERIAL_ALPHA); m_selection_material.MaterialType = shdrsrc->getShaderInfo(shader_id).material; } else { m_selection_material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; diff --git a/src/client/minimap.cpp b/src/client/minimap.cpp index d068ad5f7..c6ccf86e8 100644 --- a/src/client/minimap.cpp +++ b/src/client/minimap.cpp @@ -612,7 +612,7 @@ void Minimap::drawMinimap(core::rect rect) { material.TextureLayer[1].Texture = data->heightmap_texture; if (m_enable_shaders && data->mode.type == MINIMAP_TYPE_SURFACE) { - u16 sid = m_shdrsrc->getShader("minimap_shader", 1, 1); + u16 sid = m_shdrsrc->getShader("minimap_shader", TILE_MATERIAL_ALPHA); material.MaterialType = m_shdrsrc->getShaderInfo(sid).material; } else { material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; diff --git a/src/client/render/interlaced.cpp b/src/client/render/interlaced.cpp index 2aadadc17..ce8e92f21 100644 --- a/src/client/render/interlaced.cpp +++ b/src/client/render/interlaced.cpp @@ -36,7 +36,7 @@ void RenderingCoreInterlaced::initMaterial() mat.UseMipMaps = false; mat.ZBuffer = false; mat.ZWriteEnable = false; - u32 shader = s->getShader("3d_interlaced_merge", TILE_MATERIAL_BASIC, 0); + u32 shader = s->getShader("3d_interlaced_merge", TILE_MATERIAL_BASIC); mat.MaterialType = s->getShaderInfo(shader).material; for (int k = 0; k < 3; ++k) { mat.TextureLayer[k].AnisotropicFilter = false; diff --git a/src/client/shader.cpp b/src/client/shader.cpp index 1cec20d2c..b3e4911f4 100644 --- a/src/client/shader.cpp +++ b/src/client/shader.cpp @@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "shader.h" #include "irrlichttypes_extrabloated.h" +#include "irr_ptr.h" #include "debug.h" #include "filesys.h" #include "util/container.h" @@ -189,19 +190,14 @@ private: class ShaderCallback : public video::IShaderConstantSetCallBack { - std::vector m_setters; + std::vector> m_setters; public: - ShaderCallback(const std::vector &factories) + template + ShaderCallback(const Factories &factories) { - for (IShaderConstantSetterFactory *factory : factories) - m_setters.push_back(factory->create()); - } - - ~ShaderCallback() - { - for (IShaderConstantSetter *setter : m_setters) - delete setter; + for (auto &&factory : factories) + m_setters.push_back(std::unique_ptr(factory->create())); } virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData) override @@ -209,15 +205,13 @@ public: video::IVideoDriver *driver = services->getVideoDriver(); sanity_check(driver != NULL); - bool is_highlevel = userData; - - for (IShaderConstantSetter *setter : m_setters) - setter->onSetConstants(services, is_highlevel); + for (auto &&setter : m_setters) + setter->onSetConstants(services); } virtual void OnSetMaterial(const video::SMaterial& material) override { - for (IShaderConstantSetter *setter : m_setters) + for (auto &&setter : m_setters) setter->onSetMaterial(material); } }; @@ -252,47 +246,39 @@ public: {} ~MainShaderConstantSetter() = default; - virtual void onSetConstants(video::IMaterialRendererServices *services, - bool is_highlevel) + virtual void onSetConstants(video::IMaterialRendererServices *services) override { video::IVideoDriver *driver = services->getVideoDriver(); sanity_check(driver); // Set world matrix core::matrix4 world = driver->getTransform(video::ETS_WORLD); - if (is_highlevel) - m_world.set(*reinterpret_cast(world.pointer()), services); - else - services->setVertexShaderConstant(world.pointer(), 4, 4); + m_world.set(*reinterpret_cast(world.pointer()), services); // Set clip matrix core::matrix4 worldView; worldView = driver->getTransform(video::ETS_VIEW); worldView *= world; + core::matrix4 worldViewProj; worldViewProj = driver->getTransform(video::ETS_PROJECTION); worldViewProj *= worldView; - if (is_highlevel) - m_world_view_proj.set(*reinterpret_cast(worldViewProj.pointer()), services); - else - services->setVertexShaderConstant(worldViewProj.pointer(), 0, 4); + m_world_view_proj.set(*reinterpret_cast(worldViewProj.pointer()), services); #if ENABLE_GLES - if (is_highlevel) { - core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0); - m_world_view.set(*reinterpret_cast(worldView.pointer()), services); - m_texture.set(*reinterpret_cast(texture.pointer()), services); + core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0); + m_world_view.set(*reinterpret_cast(worldView.pointer()), services); + m_texture.set(*reinterpret_cast(texture.pointer()), services); - core::matrix4 normal; - worldView.getTransposed(normal); - sanity_check(normal.makeInverse()); - float m[9] = { - normal[0], normal[1], normal[2], - normal[4], normal[5], normal[6], - normal[8], normal[9], normal[10], - }; - m_normal.set(m, services); - } + core::matrix4 normal; + worldView.getTransposed(normal); + sanity_check(normal.makeInverse()); + float m[9] = { + normal[0], normal[1], normal[2], + normal[4], normal[5], normal[6], + normal[8], normal[9], normal[10], + }; + m_normal.set(m, services); #endif } }; @@ -314,7 +300,6 @@ class ShaderSource : public IWritableShaderSource { public: ShaderSource(); - ~ShaderSource(); /* - If shader material specified by name is found from cache, @@ -324,7 +309,7 @@ public: The id 0 points to a null shader. Its material is EMT_SOLID. */ u32 getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype); + MaterialType material_type, NodeDrawType drawtype) override; /* If shader specified by the name pointed by the id doesn't @@ -336,26 +321,26 @@ public: */ u32 getShader(const std::string &name, - const u8 material_type, const u8 drawtype); + MaterialType material_type, NodeDrawType drawtype) override; - ShaderInfo getShaderInfo(u32 id); + ShaderInfo getShaderInfo(u32 id) override; // Processes queued shader requests from other threads. // Shall be called from the main thread. - void processQueue(); + void processQueue() override; // Insert a shader program into the cache without touching the // filesystem. Shall be called from the main thread. void insertSourceShader(const std::string &name_of_shader, - const std::string &filename, const std::string &program); + const std::string &filename, const std::string &program) override; // Rebuild shaders from the current set of source shaders // Shall be called from the main thread. - void rebuildShaders(); + void rebuildShaders() override; - void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) + void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) override { - m_setter_factories.push_back(setter); + m_setter_factories.push_back(std::unique_ptr(setter)); } private: @@ -377,10 +362,11 @@ private: RequestQueue m_get_shader_queue; // Global constant setter factories - std::vector m_setter_factories; + std::vector> m_setter_factories; - // Shader callbacks - std::vector m_callbacks; + // Generate shader given the shader name. + ShaderInfo generateShader(const std::string &name, + MaterialType material_type, NodeDrawType drawtype); }; IWritableShaderSource *createShaderSource() @@ -388,22 +374,6 @@ IWritableShaderSource *createShaderSource() return new ShaderSource(); } -/* - Generate shader given the shader name. -*/ -ShaderInfo generate_shader(const std::string &name, - u8 material_type, u8 drawtype, std::vector &callbacks, - const std::vector &setter_factories, - SourceShaderCache *sourcecache); - -/* - Load shader programs -*/ -void load_shaders(const std::string &name, SourceShaderCache *sourcecache, - video::E_DRIVER_TYPE drivertype, bool enable_shaders, - std::string &vertex_program, std::string &pixel_program, - std::string &geometry_program, bool &is_highlevel); - ShaderSource::ShaderSource() { m_main_thread = std::this_thread::get_id(); @@ -415,18 +385,8 @@ ShaderSource::ShaderSource() addShaderConstantSetterFactory(new MainShaderConstantSetterFactory()); } -ShaderSource::~ShaderSource() -{ - for (ShaderCallback *callback : m_callbacks) { - delete callback; - } - for (IShaderConstantSetterFactory *setter_factorie : m_setter_factories) { - delete setter_factorie; - } -} - u32 ShaderSource::getShader(const std::string &name, - const u8 material_type, const u8 drawtype) + MaterialType material_type, NodeDrawType drawtype) { /* Get shader @@ -468,7 +428,7 @@ u32 ShaderSource::getShader(const std::string &name, This method generates all the shaders */ u32 ShaderSource::getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype) + MaterialType material_type, NodeDrawType drawtype) { //infostream<<"getShaderIdDirect(): name=\""<name.empty()) { - *info = generate_shader(info->name, info->material_type, - info->drawtype, m_callbacks, - m_setter_factories, &m_sourcecache); + *info = generateShader(info->name, info->material_type, info->drawtype); } } } -ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtype, - std::vector &callbacks, - const std::vector &setter_factories, - SourceShaderCache *sourcecache) +ShaderInfo ShaderSource::generateShader(const std::string &name, + MaterialType material_type, NodeDrawType drawtype) { ShaderInfo shaderinfo; shaderinfo.name = name; @@ -604,64 +559,27 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp return shaderinfo; video::IVideoDriver *driver = RenderingEngine::get_video_driver(); - + if (!driver->queryFeature(video::EVDF_ARB_GLSL)) { + errorstream << "Shaders are enabled but GLSL is not supported by the driver\n"; + return shaderinfo; + } video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices(); - if(!gpu){ - errorstream<<"generate_shader(): " - "failed to generate \""<getDriverType(), - enable_shaders, vertex_program, pixel_program, - geometry_program, is_highlevel); - // Check hardware/driver support - if (!vertex_program.empty() && - !driver->queryFeature(video::EVDF_VERTEX_SHADER_1_1) && - !driver->queryFeature(video::EVDF_ARB_VERTEX_PROGRAM_1)){ - infostream<<"generate_shader(): vertex shaders disabled " - "because of missing driver/hardware support." - <queryFeature(video::EVDF_PIXEL_SHADER_1_1) && - !driver->queryFeature(video::EVDF_ARB_FRAGMENT_PROGRAM_1)){ - infostream<<"generate_shader(): pixel shaders disabled " - "because of missing driver/hardware support." - <queryFeature(video::EVDF_GEOMETRY_SHADER)){ - infostream<<"generate_shader(): geometry shaders disabled " - "because of missing driver/hardware support." - <getDriverType() == video::EDT_OGLES2; #endif - std::string shaders_header, vertex_header, pixel_header; // geometry shaders aren’t supported in GLES<3 + std::stringstream shaders_header; + shaders_header + << std::noboolalpha + << std::showpoint // for GLSL ES + ; + std::string vertex_header, fragment_header, geometry_header; if (use_gles) { - shaders_header = - "#version 100\n" - ; + shaders_header << R"( + #version 100 + )"; vertex_header = R"( uniform highp mat4 mWorldView; uniform highp mat4 mWorldViewProj; @@ -675,11 +593,11 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp attribute mediump vec4 inVertexTangent; attribute mediump vec4 inVertexBinormal; )"; - pixel_header = R"( + fragment_header = R"( precision mediump float; )"; } else { - shaders_header = R"( + shaders_header << R"( #version 120 #define lowp #define mediump @@ -708,224 +626,97 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp use_discard = true; #endif if (use_discard && shaderinfo.base_material != video::EMT_SOLID) - shaders_header += "#define USE_DISCARD\n"; + shaders_header << "#define USE_DISCARD 1\n"; - static const char* drawTypes[] = { - "NDT_NORMAL", - "NDT_AIRLIKE", - "NDT_LIQUID", - "NDT_FLOWINGLIQUID", - "NDT_GLASSLIKE", - "NDT_ALLFACES", - "NDT_ALLFACES_OPTIONAL", - "NDT_TORCHLIKE", - "NDT_SIGNLIKE", - "NDT_PLANTLIKE", - "NDT_FENCELIKE", - "NDT_RAILLIKE", - "NDT_NODEBOX", - "NDT_GLASSLIKE_FRAMED", - "NDT_FIRELIKE", - "NDT_GLASSLIKE_FRAMED_OPTIONAL", - "NDT_PLANTLIKE_ROOTED", - }; +#define PROVIDE(constant) shaders_header << "#define " #constant " " << (int)constant << "\n" - for (int i = 0; i < 14; i++){ - shaders_header += "#define "; - shaders_header += drawTypes[i]; - shaders_header += " "; - shaders_header += itos(i); - shaders_header += "\n"; + PROVIDE(NDT_NORMAL); + PROVIDE(NDT_AIRLIKE); + PROVIDE(NDT_LIQUID); + PROVIDE(NDT_FLOWINGLIQUID); + PROVIDE(NDT_GLASSLIKE); + PROVIDE(NDT_ALLFACES); + PROVIDE(NDT_ALLFACES_OPTIONAL); + PROVIDE(NDT_TORCHLIKE); + PROVIDE(NDT_SIGNLIKE); + PROVIDE(NDT_PLANTLIKE); + PROVIDE(NDT_FENCELIKE); + PROVIDE(NDT_RAILLIKE); + PROVIDE(NDT_NODEBOX); + PROVIDE(NDT_GLASSLIKE_FRAMED); + PROVIDE(NDT_FIRELIKE); + PROVIDE(NDT_GLASSLIKE_FRAMED_OPTIONAL); + PROVIDE(NDT_PLANTLIKE_ROOTED); + + PROVIDE(TILE_MATERIAL_BASIC); + PROVIDE(TILE_MATERIAL_ALPHA); + PROVIDE(TILE_MATERIAL_LIQUID_TRANSPARENT); + PROVIDE(TILE_MATERIAL_LIQUID_OPAQUE); + PROVIDE(TILE_MATERIAL_WAVING_LEAVES); + PROVIDE(TILE_MATERIAL_WAVING_PLANTS); + PROVIDE(TILE_MATERIAL_OPAQUE); + PROVIDE(TILE_MATERIAL_WAVING_LIQUID_BASIC); + PROVIDE(TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT); + PROVIDE(TILE_MATERIAL_WAVING_LIQUID_OPAQUE); + PROVIDE(TILE_MATERIAL_PLAIN); + PROVIDE(TILE_MATERIAL_PLAIN_ALPHA); + +#undef PROVIDE + + shaders_header << "#define MATERIAL_TYPE " << (int)material_type << "\n"; + shaders_header << "#define DRAW_TYPE " << (int)drawtype << "\n"; + + bool enable_waving_water = g_settings->getBool("enable_waving_water"); + shaders_header << "#define ENABLE_WAVING_WATER " << enable_waving_water << "\n"; + if (enable_waving_water) { + shaders_header << "#define WATER_WAVE_HEIGHT " << g_settings->getFloat("water_wave_height") << "\n"; + shaders_header << "#define WATER_WAVE_LENGTH " << g_settings->getFloat("water_wave_length") << "\n"; + shaders_header << "#define WATER_WAVE_SPEED " << g_settings->getFloat("water_wave_speed") << "\n"; } - static const char* materialTypes[] = { - "TILE_MATERIAL_BASIC", - "TILE_MATERIAL_ALPHA", - "TILE_MATERIAL_LIQUID_TRANSPARENT", - "TILE_MATERIAL_LIQUID_OPAQUE", - "TILE_MATERIAL_WAVING_LEAVES", - "TILE_MATERIAL_WAVING_PLANTS", - "TILE_MATERIAL_OPAQUE", - "TILE_MATERIAL_WAVING_LIQUID_BASIC", - "TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT", - "TILE_MATERIAL_WAVING_LIQUID_OPAQUE", - "TILE_MATERIAL_PLAIN", - "TILE_MATERIAL_PLAIN_ALPHA", - }; + shaders_header << "#define ENABLE_WAVING_LEAVES " << g_settings->getBool("enable_waving_leaves") << "\n"; + shaders_header << "#define ENABLE_WAVING_PLANTS " << g_settings->getBool("enable_waving_plants") << "\n"; + shaders_header << "#define ENABLE_TONE_MAPPING " << g_settings->getBool("tone_mapping") << "\n"; - for (int i = 0; i < 12; i++){ - shaders_header += "#define "; - shaders_header += materialTypes[i]; - shaders_header += " "; - shaders_header += itos(i); - shaders_header += "\n"; + shaders_header << "#define FOG_START " << core::clamp(g_settings->getFloat("fog_start"), 0.0f, 0.99f) << "\n"; + + std::string common_header = shaders_header.str(); + + std::string vertex_shader = m_sourcecache.getOrLoad(name, "opengl_vertex.glsl"); + std::string fragment_shader = m_sourcecache.getOrLoad(name, "opengl_fragment.glsl"); + std::string geometry_shader = m_sourcecache.getOrLoad(name, "opengl_geometry.glsl"); + + vertex_shader = common_header + vertex_header + vertex_shader; + fragment_shader = common_header + fragment_header + fragment_shader; + const char *geometry_shader_ptr = nullptr; // optional + if (!geometry_shader.empty()) { + geometry_shader = common_header + geometry_header + geometry_shader; + geometry_shader_ptr = geometry_shader.c_str(); } - shaders_header += "#define MATERIAL_TYPE "; - shaders_header += itos(material_type); - shaders_header += "\n"; - shaders_header += "#define DRAW_TYPE "; - shaders_header += itos(drawtype); - shaders_header += "\n"; - - if (g_settings->getBool("enable_waving_water")){ - shaders_header += "#define ENABLE_WAVING_WATER 1\n"; - shaders_header += "#define WATER_WAVE_HEIGHT "; - shaders_header += std::to_string(g_settings->getFloat("water_wave_height")); - shaders_header += "\n"; - shaders_header += "#define WATER_WAVE_LENGTH "; - shaders_header += std::to_string(g_settings->getFloat("water_wave_length")); - shaders_header += "\n"; - shaders_header += "#define WATER_WAVE_SPEED "; - shaders_header += std::to_string(g_settings->getFloat("water_wave_speed")); - shaders_header += "\n"; - } else{ - shaders_header += "#define ENABLE_WAVING_WATER 0\n"; + irr_ptr cb{new ShaderCallback(m_setter_factories)}; + infostream<<"Compiling high level shaders for "<addHighLevelShaderMaterial( + vertex_shader.c_str(), nullptr, video::EVST_VS_1_1, + fragment_shader.c_str(), nullptr, video::EPST_PS_1_1, + geometry_shader_ptr, nullptr, video::EGST_GS_4_0, scene::EPT_TRIANGLES, scene::EPT_TRIANGLES, 0, + cb.get(), shaderinfo.base_material, 1); + if (shadermat == -1) { + errorstream<<"generate_shader(): " + "failed to generate \""<getBool("enable_waving_leaves")) - shaders_header += "1\n"; - else - shaders_header += "0\n"; - - shaders_header += "#define ENABLE_WAVING_PLANTS "; - if (g_settings->getBool("enable_waving_plants")) - shaders_header += "1\n"; - else - shaders_header += "0\n"; - - if (g_settings->getBool("tone_mapping")) - shaders_header += "#define ENABLE_TONE_MAPPING\n"; - - shaders_header += "#define FOG_START "; - shaders_header += std::to_string(rangelim(g_settings->getFloat("fog_start"), 0.0f, 0.99f)); - shaders_header += "\n"; - - // Call addHighLevelShaderMaterial() or addShaderMaterial() - const c8* vertex_program_ptr = 0; - const c8* pixel_program_ptr = 0; - const c8* geometry_program_ptr = 0; - if (!vertex_program.empty()) { - vertex_program = shaders_header + vertex_header + vertex_program; - vertex_program_ptr = vertex_program.c_str(); - } - if (!pixel_program.empty()) { - pixel_program = shaders_header + pixel_header + pixel_program; - pixel_program_ptr = pixel_program.c_str(); - } - if (!geometry_program.empty()) { - geometry_program = shaders_header + geometry_program; - geometry_program_ptr = geometry_program.c_str(); - } - ShaderCallback *cb = new ShaderCallback(setter_factories); - s32 shadermat = -1; - if(is_highlevel){ - infostream<<"Compiling high level shaders for "<addHighLevelShaderMaterial( - vertex_program_ptr, // Vertex shader program - "vertexMain", // Vertex shader entry point - video::EVST_VS_1_1, // Vertex shader version - pixel_program_ptr, // Pixel shader program - "pixelMain", // Pixel shader entry point - video::EPST_PS_1_2, // Pixel shader version - geometry_program_ptr, // Geometry shader program - "geometryMain", // Geometry shader entry point - video::EGST_GS_4_0, // Geometry shader version - scene::EPT_TRIANGLES, // Geometry shader input - scene::EPT_TRIANGLE_STRIP, // Geometry shader output - 0, // Support maximum number of vertices - cb, // Set-constant callback - shaderinfo.base_material, // Base material - 1 // Userdata passed to callback - ); - if(shadermat == -1){ - errorstream<<"generate_shader(): " - "failed to generate \""<addShaderMaterial( - vertex_program_ptr, // Vertex shader program - pixel_program_ptr, // Pixel shader program - cb, // Set-constant callback - shaderinfo.base_material, // Base material - 0 // Userdata passed to callback - ); - - if(shadermat == -1){ - errorstream<<"generate_shader(): " - "failed to generate \""<getMaterialRenderer(shadermat)->grab(); - // Apply the newly created material type shaderinfo.material = (video::E_MATERIAL_TYPE) shadermat; return shaderinfo; } -void load_shaders(const std::string &name, SourceShaderCache *sourcecache, - video::E_DRIVER_TYPE drivertype, bool enable_shaders, - std::string &vertex_program, std::string &pixel_program, - std::string &geometry_program, bool &is_highlevel) -{ - vertex_program = ""; - pixel_program = ""; - geometry_program = ""; - is_highlevel = false; - - if (!enable_shaders) - return; - - // Look for high level shaders - switch (drivertype) { - case video::EDT_DIRECT3D9: - // Direct3D 9: HLSL - // (All shaders in one file) - vertex_program = sourcecache->getOrLoad(name, "d3d9.hlsl"); - pixel_program = vertex_program; - geometry_program = vertex_program; - break; - - case video::EDT_OPENGL: -#if ENABLE_GLES - case video::EDT_OGLES2: -#endif - // OpenGL: GLSL - vertex_program = sourcecache->getOrLoad(name, "opengl_vertex.glsl"); - pixel_program = sourcecache->getOrLoad(name, "opengl_fragment.glsl"); - geometry_program = sourcecache->getOrLoad(name, "opengl_geometry.glsl"); - break; - - default: - // e.g. OpenGL ES 1 (with no shader support) - break; - } - if (!vertex_program.empty() || !pixel_program.empty() || !geometry_program.empty()){ - is_highlevel = true; - return; - } -} - void dumpShaderProgram(std::ostream &output_stream, const std::string &program_type, const std::string &program) { diff --git a/src/client/shader.h b/src/client/shader.h index 109d39336..d99182693 100644 --- a/src/client/shader.h +++ b/src/client/shader.h @@ -23,6 +23,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "irrlichttypes_bloated.h" #include +#include "tile.h" +#include "nodedef.h" class IGameDef; @@ -46,8 +48,8 @@ struct ShaderInfo { std::string name = ""; video::E_MATERIAL_TYPE base_material = video::EMT_SOLID; video::E_MATERIAL_TYPE material = video::EMT_SOLID; - u8 drawtype = 0; - u8 material_type = 0; + NodeDrawType drawtype = NDT_NORMAL; + MaterialType material_type = TILE_MATERIAL_BASIC; ShaderInfo() = default; virtual ~ShaderInfo() = default; @@ -65,8 +67,7 @@ namespace irr { namespace video { class IShaderConstantSetter { public: virtual ~IShaderConstantSetter() = default; - virtual void onSetConstants(video::IMaterialRendererServices *services, - bool is_highlevel) = 0; + virtual void onSetConstants(video::IMaterialRendererServices *services) = 0; virtual void onSetMaterial(const video::SMaterial& material) { } }; @@ -128,10 +129,10 @@ public: virtual ~IShaderSource() = default; virtual u32 getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} + MaterialType material_type, NodeDrawType drawtype = NDT_NORMAL){return 0;} virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();} virtual u32 getShader(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} + MaterialType material_type, NodeDrawType drawtype = NDT_NORMAL){return 0;} }; class IWritableShaderSource : public IShaderSource { @@ -139,16 +140,12 @@ public: IWritableShaderSource() = default; virtual ~IWritableShaderSource() = default; - virtual u32 getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} - virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();} - virtual u32 getShader(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} - virtual void processQueue()=0; virtual void insertSourceShader(const std::string &name_of_shader, const std::string &filename, const std::string &program)=0; virtual void rebuildShaders()=0; + + /// @note Takes ownership of @p setter. virtual void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) = 0; }; diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 9a2614eda..3a40321dd 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -65,7 +65,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc) : // Create materials m_materials[0] = baseMaterial(); - m_materials[0].MaterialType = ssrc->getShaderInfo(ssrc->getShader("stars_shader", TILE_MATERIAL_ALPHA, 0)).material; + m_materials[0].MaterialType = ssrc->getShaderInfo(ssrc->getShader("stars_shader", TILE_MATERIAL_ALPHA)).material; m_materials[0].Lighting = true; m_materials[0].ColorMaterial = video::ECM_NONE; diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 5c2e5cd09..80013192d 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -774,7 +774,7 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc bool is_liquid = false; - u8 material_type = (alpha == 255) ? + MaterialType material_type = (alpha == 255) ? TILE_MATERIAL_BASIC : TILE_MATERIAL_ALPHA; switch (drawtype) { @@ -892,7 +892,7 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc u32 tile_shader = shdsrc->getShader("nodes_shader", material_type, drawtype); - u8 overlay_material = material_type; + MaterialType overlay_material = material_type; if (overlay_material == TILE_MATERIAL_OPAQUE) overlay_material = TILE_MATERIAL_BASIC; else if (overlay_material == TILE_MATERIAL_LIQUID_OPAQUE) @@ -913,7 +913,7 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc tdef[j].backface_culling, tsettings); } - u8 special_material = material_type; + MaterialType special_material = material_type; if (drawtype == NDT_PLANTLIKE_ROOTED) { if (waving == 1) special_material = TILE_MATERIAL_WAVING_PLANTS; From 5066fe75830b98f592717b593099a757337c952d Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 20 Dec 2020 00:00:20 +0300 Subject: [PATCH 317/624] MainMenu: Add clear button and icon for search input (#10363) --- LICENSE.txt | 2 ++ builtin/mainmenu/dlg_contentstore.lua | 11 +++++++++-- builtin/mainmenu/tab_online.lua | 9 ++++++++- textures/base/pack/clear.png | Bin 0 -> 708 bytes textures/base/pack/search.png | Bin 0 -> 1908 bytes 5 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 textures/base/pack/clear.png create mode 100644 textures/base/pack/search.png diff --git a/LICENSE.txt b/LICENSE.txt index f5c51833b..9fbd23723 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -23,6 +23,8 @@ paramat: textures/base/pack/menu_header.png textures/base/pack/next_icon.png textures/base/pack/prev_icon.png + textures/base/pack/clear.png + textures/base/pack/search.png rubenwardy, paramat: textures/base/pack/start_icon.png diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua index 6525f6013..7a96df2a5 100644 --- a/builtin/mainmenu/dlg_contentstore.lua +++ b/builtin/mainmenu/dlg_contentstore.lua @@ -340,7 +340,6 @@ function store.get_formspec(dlgdata) local W = 15.75 local H = 9.5 - local formspec if #store.packages_full > 0 then formspec = { @@ -353,7 +352,8 @@ function store.get_formspec(dlgdata) "container[0.375,0.375]", "field[0,0;7.225,0.8;search_string;;", core.formspec_escape(search_string), "]", "field_close_on_enter[search_string;false]", - "button[7.225,0;2,0.8;search;", fgettext("Search"), "]", + "image_button[7.3,0;0.8,0.8;", core.formspec_escape(defaulttexturedir .. "search.png"), ";search;]", + "image_button[8.125,0;0.8,0.8;", core.formspec_escape(defaulttexturedir .. "clear.png"), ";clear;]", "dropdown[9.6,0;2.4,0.8;type;", table.concat(filter_types_titles, ","), ";", filter_type, "]", "container_end[]", @@ -504,6 +504,13 @@ function store.handle_submit(this, fields) return true end + if fields.clear then + search_string = "" + cur_page = 1 + store.filter_packages("") + return true + end + if fields.back then this:delete() return true diff --git a/builtin/mainmenu/tab_online.lua b/builtin/mainmenu/tab_online.lua index 7985fd84a..8f1341161 100644 --- a/builtin/mainmenu/tab_online.lua +++ b/builtin/mainmenu/tab_online.lua @@ -34,7 +34,8 @@ local function get_formspec(tabview, name, tabdata) local retval = -- Search "field[0.15,0.075;5.91,1;te_search;;" .. core.formspec_escape(tabdata.search_for) .. "]" .. - "button[5.62,-0.25;1.5,1;btn_mp_search;" .. fgettext("Search") .. "]" .. + "image_button[5.63,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "search.png") .. ";btn_mp_search;]" .. + "image_button[6.3,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "clear.png") .. ";btn_mp_clear;]" .. "image_button[6.97,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "refresh.png") .. ";btn_mp_refresh;]" .. @@ -243,6 +244,12 @@ local function main_button_handler(tabview, fields, name, tabdata) return true end + if fields.btn_mp_clear then + tabdata.search_for = "" + menudata.search_result = nil + return true + end + if fields.btn_mp_search or fields.key_enter_field == "te_search" then tabdata.fav_selected = 1 local input = fields.te_search:lower() diff --git a/textures/base/pack/clear.png b/textures/base/pack/clear.png new file mode 100644 index 0000000000000000000000000000000000000000..9244264adcf8a710ff13a2d684f148f997f1522f GIT binary patch literal 708 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 literal 0 HcmV?d00001 From af22dd86e3867a35e9e5ab911faa6e1e7671729d Mon Sep 17 00:00:00 2001 From: Markus Date: Sat, 19 Dec 2020 22:01:05 +0100 Subject: [PATCH 318/624] Fix some more joystick issues (#10624) --- builtin/settingtypes.txt | 3 ++ minetest.conf.example | 3 ++ src/client/game.cpp | 4 +-- src/client/inputhandler.h | 2 +- src/client/joystick_controller.cpp | 50 ++++++++++++++++-------------- src/client/joystick_controller.h | 42 ++++++++++++------------- src/defaultsettings.cpp | 1 + 7 files changed, 55 insertions(+), 50 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 251b6d868..7060a0b6e 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -152,6 +152,9 @@ joystick_type (Joystick type) enum auto auto,generic,xbox # when holding down a joystick button combination. repeat_joystick_button_time (Joystick button repetition interval) float 0.17 0.001 +# The deadzone of the joystick +joystick_deadzone (Joystick deadzone) int 2048 + # The sensitivity of the joystick axes for moving the # ingame view frustum around. joystick_frustum_sensitivity (Joystick frustum sensitivity) float 170 diff --git a/minetest.conf.example b/minetest.conf.example index 6b315b6ea..086339037 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -129,6 +129,9 @@ # type: float min: 0.001 # repeat_joystick_button_time = 0.17 +# The deadzone of the joystick +# joystick_deadzone = 2048 + # The sensitivity of the joystick axes for moving the # ingame view frustum around. # type: float diff --git a/src/client/game.cpp b/src/client/game.cpp index fd4d09394..6151d2aa6 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -3139,8 +3139,8 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) wasKeyDown(KeyType::DIG); wasKeyDown(KeyType::PLACE); - input->joystick.clearWasKeyDown(KeyType::DIG); - input->joystick.clearWasKeyDown(KeyType::PLACE); + input->joystick.clearWasKeyPressed(KeyType::DIG); + input->joystick.clearWasKeyPressed(KeyType::PLACE); input->joystick.clearWasKeyReleased(KeyType::DIG); input->joystick.clearWasKeyReleased(KeyType::PLACE); diff --git a/src/client/inputhandler.h b/src/client/inputhandler.h index def147a82..7487bbdc7 100644 --- a/src/client/inputhandler.h +++ b/src/client/inputhandler.h @@ -279,7 +279,7 @@ public: } virtual bool wasKeyPressed(GameKeyType k) { - return m_receiver->WasKeyPressed(keycache.key[k]) || joystick.wasKeyReleased(k); + return m_receiver->WasKeyPressed(keycache.key[k]) || joystick.wasKeyPressed(k); } virtual bool wasKeyReleased(GameKeyType k) { diff --git a/src/client/joystick_controller.cpp b/src/client/joystick_controller.cpp index 742115046..f61ae4ae6 100644 --- a/src/client/joystick_controller.cpp +++ b/src/client/joystick_controller.cpp @@ -37,7 +37,7 @@ bool JoystickAxisCmb::isTriggered(const irr::SEvent::SJoystickEvent &ev) const { s16 ax_val = ev.Axis[axis_to_compare]; - return (ax_val * direction < 0) && (thresh * direction > ax_val * direction); + return (ax_val * direction < -thresh); } // spares many characters @@ -48,7 +48,7 @@ JoystickLayout create_default_layout() { JoystickLayout jlo; - jlo.axes_dead_border = 1024; + jlo.axes_deadzone = g_settings->getU16("joystick_deadzone"); const JoystickAxisLayout axes[JA_COUNT] = { {0, 1}, // JA_SIDEWARD_MOVE @@ -93,14 +93,14 @@ JoystickLayout create_default_layout() // Now about the buttons simulated by the axes // Movement buttons, important for vessels - JLO_A_PB(KeyType::FORWARD, 1, 1, 1024); - JLO_A_PB(KeyType::BACKWARD, 1, -1, 1024); - JLO_A_PB(KeyType::LEFT, 0, 1, 1024); - JLO_A_PB(KeyType::RIGHT, 0, -1, 1024); + JLO_A_PB(KeyType::FORWARD, 1, 1, jlo.axes_deadzone); + JLO_A_PB(KeyType::BACKWARD, 1, -1, jlo.axes_deadzone); + JLO_A_PB(KeyType::LEFT, 0, 1, jlo.axes_deadzone); + JLO_A_PB(KeyType::RIGHT, 0, -1, jlo.axes_deadzone); // Scroll buttons - JLO_A_PB(KeyType::HOTBAR_PREV, 2, -1, 1024); - JLO_A_PB(KeyType::HOTBAR_NEXT, 5, -1, 1024); + JLO_A_PB(KeyType::HOTBAR_PREV, 2, -1, jlo.axes_deadzone); + JLO_A_PB(KeyType::HOTBAR_NEXT, 5, -1, jlo.axes_deadzone); return jlo; } @@ -109,7 +109,7 @@ JoystickLayout create_xbox_layout() { JoystickLayout jlo; - jlo.axes_dead_border = 7000; + jlo.axes_deadzone = 7000; const JoystickAxisLayout axes[JA_COUNT] = { {0, 1}, // JA_SIDEWARD_MOVE @@ -146,10 +146,10 @@ JoystickLayout create_xbox_layout() JLO_B_PB(KeyType::FREEMOVE, 1 << 16, 1 << 16); // down // Movement buttons, important for vessels - JLO_A_PB(KeyType::FORWARD, 1, 1, 1024); - JLO_A_PB(KeyType::BACKWARD, 1, -1, 1024); - JLO_A_PB(KeyType::LEFT, 0, 1, 1024); - JLO_A_PB(KeyType::RIGHT, 0, -1, 1024); + JLO_A_PB(KeyType::FORWARD, 1, 1, jlo.axes_deadzone); + JLO_A_PB(KeyType::BACKWARD, 1, -1, jlo.axes_deadzone); + JLO_A_PB(KeyType::LEFT, 0, 1, jlo.axes_deadzone); + JLO_A_PB(KeyType::RIGHT, 0, -1, jlo.axes_deadzone); return jlo; } @@ -219,16 +219,19 @@ bool JoystickController::handleEvent(const irr::SEvent::SJoystickEvent &ev) for (size_t i = 0; i < KeyType::INTERNAL_ENUM_COUNT; i++) { if (keys_pressed[i]) { - if (!m_past_pressed_keys[i] && + if (!m_past_keys_pressed[i] && m_past_pressed_time[i] < m_internal_time - doubling_dtime) { - m_past_pressed_keys[i] = true; + m_past_keys_pressed[i] = true; m_past_pressed_time[i] = m_internal_time; } - } else if (m_pressed_keys[i]) { - m_past_released_keys[i] = true; + } else if (m_keys_down[i]) { + m_keys_released[i] = true; } - m_pressed_keys[i] = keys_pressed[i]; + if (keys_pressed[i] && !(m_keys_down[i])) + m_keys_pressed[i] = true; + + m_keys_down[i] = keys_pressed[i]; } for (size_t i = 0; i < JA_COUNT; i++) { @@ -236,23 +239,22 @@ bool JoystickController::handleEvent(const irr::SEvent::SJoystickEvent &ev) m_axes_vals[i] = ax_la.invert * ev.Axis[ax_la.axis_id]; } - return true; } void JoystickController::clear() { - m_pressed_keys.reset(); - m_past_pressed_keys.reset(); - m_past_released_keys.reset(); + m_keys_pressed.reset(); + m_keys_down.reset(); + m_past_keys_pressed.reset(); + m_keys_released.reset(); memset(m_axes_vals, 0, sizeof(m_axes_vals)); } s16 JoystickController::getAxisWithoutDead(JoystickAxis axis) { s16 v = m_axes_vals[axis]; - if (((v > 0) && (v < m_layout.axes_dead_border)) || - ((v < 0) && (v > -m_layout.axes_dead_border))) + if (abs(v) < m_layout.axes_deadzone) return 0; return v; } diff --git a/src/client/joystick_controller.h b/src/client/joystick_controller.h index 7baacd81b..3f361e4ef 100644 --- a/src/client/joystick_controller.h +++ b/src/client/joystick_controller.h @@ -96,7 +96,7 @@ struct JoystickLayout { std::vector button_keys; std::vector axis_keys; JoystickAxisLayout axes[JA_COUNT]; - s16 axes_dead_border; + s16 axes_deadzone; }; class JoystickController { @@ -111,37 +111,32 @@ public: bool wasKeyDown(GameKeyType b) { - bool r = m_past_pressed_keys[b]; - m_past_pressed_keys[b] = false; + bool r = m_past_keys_pressed[b]; + m_past_keys_pressed[b] = false; return r; } - bool getWasKeyDown(GameKeyType b) - { - return m_past_pressed_keys[b]; - } - void clearWasKeyDown(GameKeyType b) - { - m_past_pressed_keys[b] = false; - } bool wasKeyReleased(GameKeyType b) { - bool r = m_past_released_keys[b]; - m_past_released_keys[b] = false; - return r; - } - bool getWasKeyReleased(GameKeyType b) - { - return m_past_pressed_keys[b]; + return m_keys_released[b]; } void clearWasKeyReleased(GameKeyType b) { - m_past_pressed_keys[b] = false; + m_keys_released[b] = false; + } + + bool wasKeyPressed(GameKeyType b) + { + return m_keys_pressed[b]; + } + void clearWasKeyPressed(GameKeyType b) + { + m_keys_pressed[b] = false; } bool isKeyDown(GameKeyType b) { - return m_pressed_keys[b]; + return m_keys_down[b]; } s16 getAxis(JoystickAxis axis) @@ -162,12 +157,13 @@ private: u8 m_joystick_id = 0; - std::bitset m_pressed_keys; + std::bitset m_keys_down; + std::bitset m_keys_pressed; f32 m_internal_time; f32 m_past_pressed_time[KeyType::INTERNAL_ENUM_COUNT]; - std::bitset m_past_pressed_keys; - std::bitset m_past_released_keys; + std::bitset m_past_keys_pressed; + std::bitset m_keys_released; }; diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index e13977fe3..e8fb18e05 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -279,6 +279,7 @@ void set_default_settings(Settings *settings) settings->setDefault("joystick_type", ""); settings->setDefault("repeat_joystick_button_time", "0.17"); settings->setDefault("joystick_frustum_sensitivity", "170"); + settings->setDefault("joystick_deadzone", "2048"); // Main menu settings->setDefault("main_menu_path", ""); From 03540e7140fc5d54e7b8406415b53e708c7b0bea Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 22 Dec 2020 16:53:52 +0300 Subject: [PATCH 319/624] Fix GLES shader support after #9247 (#10727) --- client/shaders/nodes_shader/opengl_fragment.glsl | 6 +++++- client/shaders/nodes_shader/opengl_vertex.glsl | 6 +++++- client/shaders/object_shader/opengl_fragment.glsl | 6 +++++- client/shaders/object_shader/opengl_vertex.glsl | 6 +++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl index b5d85da64..b58095063 100644 --- a/client/shaders/nodes_shader/opengl_fragment.glsl +++ b/client/shaders/nodes_shader/opengl_fragment.glsl @@ -16,7 +16,11 @@ varying vec3 vPosition; // precision must be considered). varying vec3 worldPosition; varying lowp vec4 varColor; -centroid varying mediump vec2 varTexCoord; +#ifdef GL_ES +varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif varying vec3 eyeVec; const float fogStart = FOG_START; diff --git a/client/shaders/nodes_shader/opengl_vertex.glsl b/client/shaders/nodes_shader/opengl_vertex.glsl index 5742ec1d3..c68df4a8e 100644 --- a/client/shaders/nodes_shader/opengl_vertex.glsl +++ b/client/shaders/nodes_shader/opengl_vertex.glsl @@ -19,7 +19,11 @@ varying lowp vec4 varColor; // The centroid keyword ensures that after interpolation the texture coordinates // lie within the same bounds when MSAA is en- and disabled. // This fixes the stripes problem with nearest-neighbour textures and MSAA. -centroid varying mediump vec2 varTexCoord; +#ifdef GL_ES +varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif varying vec3 eyeVec; // Color of the light emitted by the light sources. diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl index 12cc54ae7..9a81d8185 100644 --- a/client/shaders/object_shader/opengl_fragment.glsl +++ b/client/shaders/object_shader/opengl_fragment.glsl @@ -9,7 +9,11 @@ varying vec3 vNormal; varying vec3 vPosition; varying vec3 worldPosition; varying lowp vec4 varColor; -centroid varying mediump vec2 varTexCoord; +#ifdef GL_ES +varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif varying vec3 eyeVec; varying float vIDiff; diff --git a/client/shaders/object_shader/opengl_vertex.glsl b/client/shaders/object_shader/opengl_vertex.glsl index f31b842ee..b4a4d0aaa 100644 --- a/client/shaders/object_shader/opengl_vertex.glsl +++ b/client/shaders/object_shader/opengl_vertex.glsl @@ -7,7 +7,11 @@ varying vec3 vNormal; varying vec3 vPosition; varying vec3 worldPosition; varying lowp vec4 varColor; -centroid varying mediump vec2 varTexCoord; +#ifdef GL_ES +varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif varying vec3 eyeVec; varying float vIDiff; From 535557cc2e972c555bc5a294b95f2c2974b81eea Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Tue, 22 Dec 2020 14:54:27 +0100 Subject: [PATCH 320/624] Fix fallnode rotation of wallmounted nodebox/mesh (#10643) --- builtin/game/falling.lua | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua index f489ea702..057d0d0ed 100644 --- a/builtin/game/falling.lua +++ b/builtin/game/falling.lua @@ -152,8 +152,8 @@ core.register_entity(":__builtin:falling_node", { else self.object:set_yaw(-math.pi*0.25) end - elseif (node.param2 ~= 0 and (def.wield_image == "" - or def.wield_image == nil)) + elseif ((node.param2 ~= 0 or def.drawtype == "nodebox" or def.drawtype == "mesh") + and (def.wield_image == "" or def.wield_image == nil)) or def.drawtype == "signlike" or def.drawtype == "mesh" or def.drawtype == "normal" @@ -168,16 +168,30 @@ core.register_entity(":__builtin:falling_node", { elseif (def.paramtype2 == "wallmounted" or def.paramtype2 == "colorwallmounted") then local rot = node.param2 % 8 local pitch, yaw, roll = 0, 0, 0 - if rot == 1 then - pitch, yaw = math.pi, math.pi - elseif rot == 2 then - pitch, yaw = math.pi/2, math.pi/2 - elseif rot == 3 then - pitch, yaw = math.pi/2, -math.pi/2 - elseif rot == 4 then - pitch, yaw = math.pi/2, math.pi - elseif rot == 5 then - pitch, yaw = math.pi/2, 0 + if def.drawtype == "nodebox" or def.drawtype == "mesh" then + if rot == 0 then + pitch, yaw = math.pi/2, 0 + elseif rot == 1 then + pitch, yaw = -math.pi/2, math.pi + elseif rot == 2 then + pitch, yaw = 0, math.pi/2 + elseif rot == 3 then + pitch, yaw = 0, -math.pi/2 + elseif rot == 4 then + pitch, yaw = 0, math.pi + end + else + if rot == 1 then + pitch, yaw = math.pi, math.pi + elseif rot == 2 then + pitch, yaw = math.pi/2, math.pi/2 + elseif rot == 3 then + pitch, yaw = math.pi/2, -math.pi/2 + elseif rot == 4 then + pitch, yaw = math.pi/2, math.pi + elseif rot == 5 then + pitch, yaw = math.pi/2, 0 + end end if def.drawtype == "signlike" then pitch = pitch - math.pi/2 @@ -186,7 +200,7 @@ core.register_entity(":__builtin:falling_node", { elseif rot == 1 then yaw = yaw - math.pi/2 end - elseif def.drawtype == "mesh" or def.drawtype == "normal" then + elseif def.drawtype == "mesh" or def.drawtype == "normal" or def.drawtype == "nodebox" then if rot >= 0 and rot <= 1 then roll = roll + math.pi else From d2bbf13dfe61c48c1051ab5bd8b2b0e97ad7599e Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 23 Dec 2020 14:42:18 +0000 Subject: [PATCH 321/624] Add dependency resolution to ContentDB (#9997) --- builtin/mainmenu/dlg_contentstore.lua | 301 +++++++++++++++++++++++++- builtin/mainmenu/dlg_create_world.lua | 2 +- builtin/mainmenu/init.lua | 1 + builtin/settingtypes.txt | 1 + 4 files changed, 300 insertions(+), 5 deletions(-) diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua index 7a96df2a5..548bae67e 100644 --- a/builtin/mainmenu/dlg_contentstore.lua +++ b/builtin/mainmenu/dlg_contentstore.lua @@ -159,6 +159,290 @@ local function queue_download(package) end end +local function get_raw_dependencies(package) + if package.raw_deps then + return package.raw_deps + end + + local url_fmt = "/api/packages/%s/dependencies/?only_hard=1&protocol_version=%s&engine_version=%s" + local version = core.get_version() + local base_url = core.settings:get("contentdb_url") + local url = base_url .. url_fmt:format(package.id, core.get_max_supp_proto(), version.string) + + local response = http.fetch_sync({ url = url }) + if not response.succeeded then + return + end + + local data = core.parse_json(response.data) or {} + + local content_lookup = {} + for _, pkg in pairs(store.packages_full) do + content_lookup[pkg.id] = pkg + end + + for id, raw_deps in pairs(data) do + local package2 = content_lookup[id:lower()] + if package2 and not package2.raw_deps then + package2.raw_deps = raw_deps + + for _, dep in pairs(raw_deps) do + local packages = {} + for i=1, #dep.packages do + packages[#packages + 1] = content_lookup[dep.packages[i]:lower()] + end + dep.packages = packages + end + end + end + + return package.raw_deps +end + +local function has_hard_deps(raw_deps) + for i=1, #raw_deps do + if not raw_deps[i].is_optional then + return true + end + end + + return false +end + +-- Recursively resolve dependencies, given the installed mods +local function resolve_dependencies_2(raw_deps, installed_mods, out) + local function resolve_dep(dep) + -- Check whether it's already installed + if installed_mods[dep.name] then + return { + is_optional = dep.is_optional, + name = dep.name, + installed = true, + } + end + + -- Find exact name matches + local fallback + for _, package in pairs(dep.packages) do + if package.type ~= "game" then + if package.name == dep.name then + return { + is_optional = dep.is_optional, + name = dep.name, + installed = false, + package = package, + } + elseif not fallback then + fallback = package + end + end + end + + -- Otherwise, find the first mod that fulfils it + if fallback then + return { + is_optional = dep.is_optional, + name = dep.name, + installed = false, + package = fallback, + } + end + + return { + is_optional = dep.is_optional, + name = dep.name, + installed = false, + } + end + + for _, dep in pairs(raw_deps) do + if not dep.is_optional and not out[dep.name] then + local result = resolve_dep(dep) + out[dep.name] = result + if result and result.package and not result.installed then + local raw_deps2 = get_raw_dependencies(result.package) + if raw_deps2 then + resolve_dependencies_2(raw_deps2, installed_mods, out) + end + end + end + end + + return true +end + +-- Resolve dependencies for a package, calls the recursive version. +local function resolve_dependencies(raw_deps, game) + assert(game) + + local installed_mods = {} + + local mods = {} + pkgmgr.get_game_mods(game, mods) + for _, mod in pairs(mods) do + installed_mods[mod.name] = true + end + + for _, mod in pairs(pkgmgr.global_mods:get_list()) do + installed_mods[mod.name] = true + end + + local out = {} + if not resolve_dependencies_2(raw_deps, installed_mods, out) then + return nil + end + + local retval = {} + for _, dep in pairs(out) do + retval[#retval + 1] = dep + end + + table.sort(retval, function(a, b) + return a.name < b.name + end) + + return retval +end + +local install_dialog = {} +function install_dialog.get_formspec() + local package = install_dialog.package + local raw_deps = install_dialog.raw_deps + local will_install_deps = install_dialog.will_install_deps + + local selected_game_idx = 1 + local selected_gameid = core.settings:get("menu_last_game") + local games = table.copy(pkgmgr.games) + for i=1, #games do + if selected_gameid and games[i].id == selected_gameid then + selected_game_idx = i + end + + games[i] = minetest.formspec_escape(games[i].name) + end + + local selected_game = pkgmgr.games[selected_game_idx] + local deps_to_install = 0 + local deps_not_found = 0 + + install_dialog.dependencies = resolve_dependencies(raw_deps, selected_game) + local formatted_deps = {} + for _, dep in pairs(install_dialog.dependencies) do + formatted_deps[#formatted_deps + 1] = "#fff" + formatted_deps[#formatted_deps + 1] = minetest.formspec_escape(dep.name) + if dep.installed then + formatted_deps[#formatted_deps + 1] = "#ccf" + formatted_deps[#formatted_deps + 1] = fgettext("Already installed") + elseif dep.package then + formatted_deps[#formatted_deps + 1] = "#cfc" + formatted_deps[#formatted_deps + 1] = fgettext("$1 by $2", dep.package.title, dep.package.author) + deps_to_install = deps_to_install + 1 + else + formatted_deps[#formatted_deps + 1] = "#f00" + formatted_deps[#formatted_deps + 1] = fgettext("Not found") + deps_not_found = deps_not_found + 1 + end + end + + local message_bg = "#3333" + local message + if will_install_deps then + message = fgettext("$1 and $2 dependencies will be installed.", package.title, deps_to_install) + else + message = fgettext("$1 will be installed, and $2 dependencies will be skipped.", package.title, deps_to_install) + end + if deps_not_found > 0 then + message = fgettext("$1 required dependencies could not be found.", deps_not_found) .. + " " .. fgettext("Please check that the base game is correct.", deps_not_found) .. + "\n" .. message + message_bg = mt_color_orange + end + + local formspec = { + "formspec_version[3]", + "size[7,7.85]", + "style[title;border=false]", + "box[0,0;7,0.5;#3333]", + "button[0,0;7,0.5;title;", fgettext("Install $1", package.title) , "]", + + "container[0.375,0.70]", + + "label[0,0.25;", fgettext("Base Game:"), "]", + "dropdown[2,0;4.25,0.5;gameid;", table.concat(games, ","), ";", selected_game_idx, "]", + + "label[0,0.8;", fgettext("Dependencies:"), "]", + + "tablecolumns[color;text;color;text]", + "table[0,1.1;6.25,3;packages;", table.concat(formatted_deps, ","), "]", + + "container_end[]", + + "checkbox[0.375,5.1;will_install_deps;", + fgettext("Install missing dependencies"), ";", + will_install_deps and "true" or "false", "]", + + "box[0,5.4;7,1.2;", message_bg, "]", + "textarea[0.375,5.5;6.25,1;;;", message, "]", + + "container[1.375,6.85]", + "button[0,0;2,0.8;install_all;", fgettext("Install"), "]", + "button[2.25,0;2,0.8;cancel;", fgettext("Cancel"), "]", + "container_end[]", + } + + return table.concat(formspec, "") +end + +function install_dialog.handle_submit(this, fields) + if fields.cancel then + this:delete() + return true + end + + if fields.will_install_deps ~= nil then + install_dialog.will_install_deps = minetest.is_yes(fields.will_install_deps) + return true + end + + if fields.install_all then + queue_download(install_dialog.package) + + if install_dialog.will_install_deps then + for _, dep in pairs(install_dialog.dependencies) do + if not dep.is_optional and not dep.installed and dep.package then + queue_download(dep.package) + end + end + end + + this:delete() + return true + end + + if fields.gameid then + for _, game in pairs(pkgmgr.games) do + if game.name == fields.gameid then + core.settings:set("menu_last_game", game.id) + break + end + end + return true + end + + return false +end + +function install_dialog.create(package, raw_deps) + install_dialog.dependencies = nil + install_dialog.package = package + install_dialog.raw_deps = raw_deps + install_dialog.will_install_deps = true + return dialog_create("package_view", + install_dialog.get_formspec, + install_dialog.handle_submit, + nil) +end + local function get_file_extension(path) local parts = path:split(".") return parts[#parts] @@ -570,15 +854,24 @@ function store.handle_submit(this, fields) assert(package) if fields["install_" .. i] then - queue_download(package) + local deps = get_raw_dependencies(package) + if deps and has_hard_deps(deps) then + local dlg = install_dialog.create(package, deps) + dlg:set_parent(this) + this:hide() + dlg:show() + else + queue_download(package) + end + return true end if fields["uninstall_" .. i] then - local dlg_delmod = create_delete_content_dlg(package) - dlg_delmod:set_parent(this) + local dlg = create_delete_content_dlg(package) + dlg:set_parent(this) this:hide() - dlg_delmod:show() + dlg:show() return true end diff --git a/builtin/mainmenu/dlg_create_world.lua b/builtin/mainmenu/dlg_create_world.lua index 7566d2409..5931496c1 100644 --- a/builtin/mainmenu/dlg_create_world.lua +++ b/builtin/mainmenu/dlg_create_world.lua @@ -98,7 +98,7 @@ local function create_world_formspec(dialogdata) -- Error out when no games found if #pkgmgr.games == 0 then return "size[12.25,3,true]" .. - "box[0,0;12,2;#ff8800]" .. + "box[0,0;12,2;" .. mt_color_orange .. "]" .. "textarea[0.3,0;11.7,2;;;".. fgettext("You have no games installed.") .. "\n" .. fgettext("Download one from minetest.net") .. "]" .. diff --git a/builtin/mainmenu/init.lua b/builtin/mainmenu/init.lua index 96d02d06c..2fc0ae64c 100644 --- a/builtin/mainmenu/init.lua +++ b/builtin/mainmenu/init.lua @@ -19,6 +19,7 @@ mt_color_grey = "#AAAAAA" mt_color_blue = "#6389FF" mt_color_green = "#72FF63" mt_color_dark_green = "#25C191" +mt_color_orange = "#FF8800" local menupath = core.get_mainmenu_path() local basepath = core.get_builtin_path() diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 7060a0b6e..7e23b5641 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -2205,4 +2205,5 @@ contentdb_url (ContentDB URL) string https://content.minetest.net contentdb_flag_blacklist (ContentDB Flag Blacklist) string nonfree, desktop_default # Maximum number of concurrent downloads. Downloads exceeding this limit will be queued. +# This should be lower than curl_parallel_limit. contentdb_max_concurrent_downloads (ContentDB Max Concurrent Downloads) int 3 From 2bdf4955c8427dd5a9ad1287344e416643b397a4 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 23 Dec 2020 21:24:27 +0100 Subject: [PATCH 322/624] CI: fix build --- .github/workflows/build.yml | 25 +++++++++---------------- util/ci/common.sh | 6 +----- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 71fdf3652..a3cc92a8e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,9 +33,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install g++-6 gcc-6 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps g++-6 - name: Build run: | @@ -55,9 +54,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install g++-8 gcc-8 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps g++-8 - name: Build run: | @@ -77,9 +75,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-3.9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps clang-3.9 - name: Build run: | @@ -99,11 +96,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-9 valgrind -qyy source ./util/ci/common.sh - install_linux_deps - env: - WITH_LUAJIT: 1 + install_linux_deps clang-9 valgrind libluajit-5.1-dev - name: Build run: | @@ -111,6 +105,7 @@ jobs: env: CC: clang-9 CXX: clang++-9 + CMAKE_FLAGS: "-DREQUIRE_LUAJIT=1" - name: Test run: | @@ -128,9 +123,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps clang-9 - name: Build prometheus-cpp run: | @@ -156,9 +150,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps clang-9 - name: Build run: | @@ -188,7 +181,7 @@ jobs: - uses: actions/checkout@v2 - name: Install compiler run: | - sudo apt-get install gettext -qyy + sudo apt-get update -q && sudo apt-get install gettext -qyy wget http://minetest.kitsunemimi.pw/mingw-w64-i686_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr @@ -206,7 +199,7 @@ jobs: - uses: actions/checkout@v2 - name: Install compiler run: | - sudo apt-get install gettext -qyy + sudo apt-get update -q && sudo apt-get install gettext -qyy wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr diff --git a/util/ci/common.sh b/util/ci/common.sh index a2e4beac9..7523fa7ff 100644 --- a/util/ci/common.sh +++ b/util/ci/common.sh @@ -7,13 +7,9 @@ install_linux_deps() { libhiredis-dev libogg-dev libgmp-dev libvorbis-dev libopenal-dev \ gettext libpq-dev postgresql-server-dev-all libleveldb-dev \ libcurl4-openssl-dev) - # for better coverage, build some jobs with luajit - if [ -n "$WITH_LUAJIT" ]; then - pkgs+=(libluajit-5.1-dev) - fi sudo apt-get update - sudo apt-get install -y --no-install-recommends ${pkgs[@]} + sudo apt-get install -y --no-install-recommends ${pkgs[@]} "$@" } # Mac OSX build only From 2c3593b51eef193eb543a08eb1e83c37e2fafe72 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 23 Dec 2020 16:39:29 +0000 Subject: [PATCH 323/624] Fix unsafe cast in l_object --- src/script/lua_api/l_object.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index bc59bd55c..4d7a1bc41 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -1409,7 +1409,7 @@ int ObjectRef::l_set_physics_override(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *playersao = (PlayerSAO *) getobject(ref); + PlayerSAO *playersao = getplayersao(ref); if (playersao == nullptr) return 0; @@ -1449,7 +1449,7 @@ int ObjectRef::l_get_physics_override(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *playersao = (PlayerSAO *)getobject(ref); + PlayerSAO *playersao = getplayersao(ref); if (playersao == nullptr) return 0; From 289425f6bd6cfe1f66218918d9d5bd1b9f89aa7c Mon Sep 17 00:00:00 2001 From: Lars Date: Sun, 20 Dec 2020 19:22:04 -0800 Subject: [PATCH 324/624] Minor profiler fixes. --- src/client/clientmap.cpp | 3 +++ src/profiler.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index fa47df3f4..b9e0cc2ce 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -290,6 +290,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) */ u32 vertex_count = 0; + u32 drawcall_count = 0; // For limiting number of mesh animations per frame u32 mesh_animate_count = 0; @@ -391,6 +392,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) } driver->setMaterial(list.m); + drawcall_count += list.bufs.size(); for (auto &pair : list.bufs) { scene::IMeshBuffer *buf = pair.second; @@ -411,6 +413,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) } g_profiler->avg(prefix + "vertices drawn [#]", vertex_count); + g_profiler->avg(prefix + "drawcalls [#]", drawcall_count); } static bool getVisibleBrightness(Map *map, const v3f &p0, v3f dir, float step, diff --git a/src/profiler.cpp b/src/profiler.cpp index be8be591e..d05b7abfe 100644 --- a/src/profiler.cpp +++ b/src/profiler.cpp @@ -38,7 +38,7 @@ ScopeProfiler::~ScopeProfiler() return; float duration_ms = m_timer->stop(true); - float duration = duration_ms / 1000.0; + float duration = duration_ms; if (m_profiler) { switch (m_type) { case SPT_ADD: From 74762470b2aa11a5271b846549ff14b86c1705d2 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 23 Dec 2020 22:03:49 +0100 Subject: [PATCH 325/624] Fix some minor code issues all over the place --- CMakeLists.txt | 8 +------ lib/lua/CMakeLists.txt | 13 ++--------- src/CMakeLists.txt | 23 ------------------ src/client/content_cao.cpp | 4 ++-- src/client/game.cpp | 36 ++++------------------------- src/client/hud.cpp | 6 ++--- src/client/mapblock_mesh.cpp | 4 ++-- src/client/tile.cpp | 7 ++++++ src/filesys.cpp | 22 +++++++----------- src/gui/touchscreengui.cpp | 3 +-- src/irrlicht_changes/CGUITTFont.h | 2 +- src/irrlicht_changes/irrUString.h | 4 ++-- src/mapgen/mapgen_v7.cpp | 2 +- src/mapgen/treegen.cpp | 3 ++- src/network/serverpackethandler.cpp | 2 +- src/nodedef.cpp | 2 +- src/script/cpp_api/s_security.cpp | 7 +++--- src/util/srp.cpp | 4 ++-- src/util/string.cpp | 2 +- 19 files changed, 45 insertions(+), 109 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 78d551168..1d53fcffd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,15 +1,9 @@ -cmake_minimum_required(VERSION 2.6) - -if(${CMAKE_VERSION} STREQUAL "2.8.2") - # Bug http://vtk.org/Bug/view.php?id=11020 - message(WARNING "CMake/CPack version 2.8.2 will not create working .deb packages!") -endif() +cmake_minimum_required(VERSION 3.5) # This can be read from ${PROJECT_NAME} after project() is called project(minetest) set(PROJECT_NAME_CAPITALIZED "Minetest") -# Works only for cmake 3.1 and greater set(CMAKE_CXX_STANDARD 11) set(GCC_MINIMUM_VERSION "4.8") set(CLANG_MINIMUM_VERSION "3.4") diff --git a/lib/lua/CMakeLists.txt b/lib/lua/CMakeLists.txt index 119dd6302..5d0dc0f70 100644 --- a/lib/lua/CMakeLists.txt +++ b/lib/lua/CMakeLists.txt @@ -1,5 +1,3 @@ -cmake_minimum_required(VERSION 2.4 FATAL_ERROR) - project(lua C) set(LUA_VERSION_MAJOR 5) @@ -15,9 +13,8 @@ set(LIBS) if(APPLE) set(DEFAULT_POSIX TRUE) - set(DEFAULT_DLOPEN ON) - # use this on Mac OS X 10.3- - option(LUA_USE_MACOSX "Mac OS X 10.3-" OFF) + set(DEFAULT_DLOPEN OFF) + set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX") elseif(UNIX OR CYGWIN) set(DEFAULT_POSIX TRUE) elseif(WIN32) @@ -32,12 +29,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") set(DEFAULT_DLOPEN ON) endif() -# For "Mac OS X 10.3-" -if(LUA_USE_MACOSX) - set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX") - set(LUA_USE_DLOPEN FALSE) -endif(LUA_USE_MACOSX) - option(LUA_USE_DLOPEN "Enable dlopen support." ${DEFAULT_DLOPEN}) mark_as_advanced(LUA_USE_DLOPEN) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b8ce69f1d..b6bba6e8d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,3 @@ -cmake_minimum_required(VERSION 2.6) - project(minetest) INCLUDE(CheckIncludeFiles) @@ -124,27 +122,6 @@ option(ENABLE_FREETYPE "Enable FreeType2 (TrueType fonts and basic unicode suppo set(USE_FREETYPE FALSE) if(ENABLE_FREETYPE) -## -## Note: FindFreetype.cmake seems to have been fixed in recent versions of -## CMake. If issues persist, re-enable this workaround specificially for the -## failing platforms. -## -# if(UNIX) -# include(FindPkgConfig) -# if(PKG_CONFIG_FOUND) -# pkg_check_modules(FREETYPE QUIET freetype2) -# if(FREETYPE_FOUND) -# SET(FREETYPE_PKGCONFIG_FOUND TRUE) -# SET(FREETYPE_LIBRARY ${FREETYPE_LIBRARIES}) -# # Because CMake is idiotic -# string(REPLACE ";" " " FREETYPE_CFLAGS_STR ${FREETYPE_CFLAGS}) -# string(REPLACE ";" " " FREETYPE_LDFLAGS_STR ${FREETYPE_LDFLAGS}) -# endif(FREETYPE_FOUND) -# endif(PKG_CONFIG_FOUND) -# endif(UNIX) -# if(NOT FREETYPE_FOUND) -# find_package(Freetype) -# endif() find_package(Freetype) if(FREETYPE_FOUND) message(STATUS "Freetype enabled.") diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index c645900aa..c65977b44 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -1165,7 +1165,7 @@ void GenericCAO::step(float dtime, ClientEnvironment *env) } } - if (!getParent() && std::fabs(m_prop.automatic_rotate) > 0.001) { + if (!getParent() && node && fabs(m_prop.automatic_rotate) > 0.001f) { // This is the child node's rotation. It is only used for automatic_rotate. v3f local_rot = node->getRotation(); local_rot.Y = modulo360f(local_rot.Y - dtime * core::RADTODEG * @@ -1174,7 +1174,7 @@ void GenericCAO::step(float dtime, ClientEnvironment *env) } if (!getParent() && m_prop.automatic_face_movement_dir && - (fabs(m_velocity.Z) > 0.001 || fabs(m_velocity.X) > 0.001)) { + (fabs(m_velocity.Z) > 0.001f || fabs(m_velocity.X) > 0.001f)) { float target_yaw = atan2(m_velocity.Z, m_velocity.X) * 180 / M_PI + m_prop.automatic_face_movement_dir_offset; float max_rotation_per_sec = diff --git a/src/client/game.cpp b/src/client/game.cpp index 6151d2aa6..9e942f47a 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -186,7 +186,7 @@ struct LocalFormspecHandler : public TextDest return; } - if (m_client && m_client->modsLoaded()) + if (m_client->modsLoaded()) m_client->getScript()->on_formspec_input(m_formname, fields); } @@ -583,7 +583,7 @@ public: virtual IShaderConstantSetter* create() { - GameGlobalShaderConstantSetter *scs = new GameGlobalShaderConstantSetter( + auto *scs = new GameGlobalShaderConstantSetter( m_sky, m_force_fog_off, m_fog_range, m_client); if (!m_sky) created_nosky.push_back(scs); @@ -1338,7 +1338,7 @@ bool Game::createClient(const GameStartData &start_data) return false; } - GameGlobalShaderConstantSetterFactory *scsf = new GameGlobalShaderConstantSetterFactory( + auto *scsf = new GameGlobalShaderConstantSetterFactory( &m_flags.force_fog_off, &runData.fog_range, client); shader_src->addShaderConstantSetterFactory(scsf); @@ -1348,20 +1348,14 @@ bool Game::createClient(const GameStartData &start_data) /* Camera */ camera = new Camera(*draw_control, client); - if (!camera || !camera->successfullyCreated(*error_message)) + if (!camera->successfullyCreated(*error_message)) return false; client->setCamera(camera); /* Clouds */ - if (m_cache_enable_clouds) { + if (m_cache_enable_clouds) clouds = new Clouds(smgr, -1, time(0)); - if (!clouds) { - *error_message = "Memory allocation error (clouds)"; - errorstream << *error_message << std::endl; - return false; - } - } /* Skybox */ @@ -1369,12 +1363,6 @@ bool Game::createClient(const GameStartData &start_data) scsf->setSky(sky); skybox = NULL; // This is used/set later on in the main run loop - if (!sky) { - *error_message = "Memory allocation error sky"; - errorstream << *error_message << std::endl; - return false; - } - /* Pre-calculated values */ video::ITexture *t = texture_src->getTexture("crack_anylength.png"); @@ -1404,12 +1392,6 @@ bool Game::createClient(const GameStartData &start_data) hud = new Hud(guienv, client, player, &player->inventory); - if (!hud) { - *error_message = "Memory error: could not create HUD"; - errorstream << *error_message << std::endl; - return false; - } - mapper = client->getMinimap(); if (mapper && client->modsLoaded()) @@ -1431,11 +1413,6 @@ bool Game::initGui() // Chat backend and console gui_chat_console = new GUIChatConsole(guienv, guienv->getRootGUIElement(), -1, chat_backend, client, &g_menumgr); - if (!gui_chat_console) { - *error_message = "Could not allocate memory for chat console"; - errorstream << *error_message << std::endl; - return false; - } #ifdef HAVE_TOUCHSCREENGUI @@ -1492,9 +1469,6 @@ bool Game::connectToServer(const GameStartData &start_data, itemdef_manager, nodedef_manager, sound, eventmgr, connect_address.isIPv6(), m_game_ui.get()); - if (!client) - return false; - client->m_simple_singleplayer_mode = simple_singleplayer_mode; infostream << "Connecting to server at "; diff --git a/src/client/hud.cpp b/src/client/hud.cpp index 8d8411ca1..e956c2738 100644 --- a/src/client/hud.cpp +++ b/src/client/hud.cpp @@ -1055,9 +1055,9 @@ void drawItemStack( if (def.type == ITEM_TOOL && item.wear != 0) { // Draw a progressbar - float barheight = rect.getHeight() / 16; - float barpad_x = rect.getWidth() / 16; - float barpad_y = rect.getHeight() / 16; + float barheight = static_cast(rect.getHeight()) / 16; + float barpad_x = static_cast(rect.getWidth()) / 16; + float barpad_y = static_cast(rect.getHeight()) / 16; core::rect progressrect( rect.UpperLeftCorner.X + barpad_x, diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index dac25a066..4c43fcb61 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -1201,13 +1201,13 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): MapBlockMesh::~MapBlockMesh() { for (scene::IMesh *m : m_mesh) { - if (m_enable_vbo && m) + if (m_enable_vbo) { for (u32 i = 0; i < m->getMeshBufferCount(); i++) { scene::IMeshBuffer *buf = m->getMeshBuffer(i); RenderingEngine::get_video_driver()->removeHardwareBuffer(buf); } + } m->drop(); - m = NULL; } delete m_minimap_mapblock; } diff --git a/src/client/tile.cpp b/src/client/tile.cpp index d03588b2b..37836d0df 100644 --- a/src/client/tile.cpp +++ b/src/client/tile.cpp @@ -1633,6 +1633,13 @@ bool TextureSource::generateImagePart(std::string part_of_name, /* IMPORTANT: When changing this, getTextureForMesh() needs to be * updated too. */ + if (!baseimg) { + errorstream << "generateImagePart(): baseimg == NULL " + << "for part_of_name=\"" << part_of_name + << "\", cancelling." << std::endl; + return false; + } + // Apply the "clean transparent" filter, if configured. if (g_settings->getBool("texture_clean_transparent")) imageCleanTransparent(baseimg, 127); diff --git a/src/filesys.cpp b/src/filesys.cpp index 2470b1b64..28a33f4d0 100644 --- a/src/filesys.cpp +++ b/src/filesys.cpp @@ -295,31 +295,26 @@ bool RecursiveDelete(const std::string &path) infostream<<"Removing \""<(argv)); // Execv shouldn't return. Failed. _exit(1); @@ -331,7 +326,6 @@ bool RecursiveDelete(const std::string &path) pid_t tpid; do{ tpid = wait(&child_status); - //if(tpid != child_pid) process_terminated(tpid); }while(tpid != child_pid); return (child_status == 0); } diff --git a/src/gui/touchscreengui.cpp b/src/gui/touchscreengui.cpp index 0d64aa618..e1a971462 100644 --- a/src/gui/touchscreengui.cpp +++ b/src/gui/touchscreengui.cpp @@ -881,8 +881,7 @@ void TouchScreenGUI::translateEvent(const SEvent &event) s32 dyj = event.TouchInput.Y - m_screensize.Y + button_size * 5.0f / 2.0f; bool inside_joystick = (dxj * dxj + dyj * dyj <= button_size * button_size * 1.5 * 1.5); - if (m_joystick_has_really_moved || - (!m_joystick_has_really_moved && inside_joystick) || + if (m_joystick_has_really_moved || inside_joystick || (!m_fixed_joystick && distance_sq > m_touchscreen_threshold * m_touchscreen_threshold)) { m_joystick_has_really_moved = true; diff --git a/src/irrlicht_changes/CGUITTFont.h b/src/irrlicht_changes/CGUITTFont.h index cf64934a2..310f74f67 100644 --- a/src/irrlicht_changes/CGUITTFont.h +++ b/src/irrlicht_changes/CGUITTFont.h @@ -356,7 +356,7 @@ namespace gui load_flags = FT_LOAD_DEFAULT | FT_LOAD_RENDER; if (!useHinting()) load_flags |= FT_LOAD_NO_HINTING; if (!useAutoHinting()) load_flags |= FT_LOAD_NO_AUTOHINT; - if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO | FT_RENDER_MODE_MONO; + if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO; else load_flags |= FT_LOAD_TARGET_NORMAL; } u32 getWidthFromCharacter(wchar_t c) const; diff --git a/src/irrlicht_changes/irrUString.h b/src/irrlicht_changes/irrUString.h index b628c092c..09172ee6d 100644 --- a/src/irrlicht_changes/irrUString.h +++ b/src/irrlicht_changes/irrUString.h @@ -1331,7 +1331,7 @@ public: { u32 i; const uchar16_t* oa = other.c_str(); - for(i=0; array[i] && oa[i] && i < n; ++i) + for(i=0; i < n && array[i] && oa[i]; ++i) if (array[i] != oa[i]) return false; @@ -1350,7 +1350,7 @@ public: if (!str) return false; u32 i; - for(i=0; array[i] && str[i] && i < n; ++i) + for(i=0; i < n && array[i] && str[i]; ++i) if (array[i] != str[i]) return false; diff --git a/src/mapgen/mapgen_v7.cpp b/src/mapgen/mapgen_v7.cpp index cc5f5726d..91f004518 100644 --- a/src/mapgen/mapgen_v7.cpp +++ b/src/mapgen/mapgen_v7.cpp @@ -297,7 +297,7 @@ int MapgenV7::getSpawnLevelAtPoint(v2s16 p) int iters = 256; while (iters > 0 && y <= max_spawn_y) { if (!getMountainTerrainAtPoint(p.X, y + 1, p.Y)) { - if (y <= water_level || y > max_spawn_y) + if (y <= water_level) return MAX_MAP_GENERATION_LIMIT; // Unsuitable spawn point // y + 1 due to biome 'dust' diff --git a/src/mapgen/treegen.cpp b/src/mapgen/treegen.cpp index e633d800a..ec7771439 100644 --- a/src/mapgen/treegen.cpp +++ b/src/mapgen/treegen.cpp @@ -406,7 +406,8 @@ treegen::error make_ltree(MMVManip &vmanip, v3s16 p0, v3f(position.X, position.Y, position.Z - 1), tree_definition ); - } if (!stack_orientation.empty()) { + } + if (!stack_orientation.empty()) { s16 size = 1; for (x = -size; x <= size; x++) for (y = -size; y <= size; y++) diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index 3db4eb286..c636d01e1 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -316,7 +316,7 @@ void Server::handleCommand_Init2(NetworkPacket* pkt) // Send active objects { PlayerSAO *sao = getPlayerSAO(peer_id); - if (client && sao) + if (sao) SendActiveObjectRemoveAdd(client, sao); } diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 80013192d..f9d15a9f6 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -617,7 +617,7 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer, bool has_scale = tiledef.scale > 0; bool use_autoscale = tsettings.autoscale_mode == AUTOSCALE_FORCE || (tsettings.autoscale_mode == AUTOSCALE_ENABLE && !has_scale); - if (use_autoscale && layer->texture) { + if (use_autoscale) { auto texture_size = layer->texture->getOriginalSize(); float base_size = tsettings.node_texture_size; float size = std::fmin(texture_size.Width, texture_size.Height); diff --git a/src/script/cpp_api/s_security.cpp b/src/script/cpp_api/s_security.cpp index 01333b941..63058d7c3 100644 --- a/src/script/cpp_api/s_security.cpp +++ b/src/script/cpp_api/s_security.cpp @@ -398,10 +398,9 @@ bool ScriptApiSecurity::safeLoadFile(lua_State *L, const char *path, const char lua_pushfstring(L, "%s: %s", path, strerror(errno)); return false; } - chunk_name = new char[strlen(display_name) + 2]; - chunk_name[0] = '@'; - chunk_name[1] = '\0'; - strcat(chunk_name, display_name); + size_t len = strlen(display_name) + 2; + chunk_name = new char[len]; + snprintf(chunk_name, len, "@%s", display_name); } size_t start = 0; diff --git a/src/util/srp.cpp b/src/util/srp.cpp index f4d369d68..ceb2fef9e 100644 --- a/src/util/srp.cpp +++ b/src/util/srp.cpp @@ -1015,10 +1015,10 @@ void srp_user_process_challenge(struct SRPUser *usr, goto cleanup_and_exit; *bytes_M = usr->M; - if (len_M) *len_M = hash_length(usr->hash_alg); + *len_M = hash_length(usr->hash_alg); } else { *bytes_M = NULL; - if (len_M) *len_M = 0; + *len_M = 0; } cleanup_and_exit: diff --git a/src/util/string.cpp b/src/util/string.cpp index 8381a29c5..3ac3b8cf0 100644 --- a/src/util/string.cpp +++ b/src/util/string.cpp @@ -633,7 +633,7 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color color_name = value; } - color_name = lowercase(value); + color_name = lowercase(color_name); std::map::const_iterator it; it = named_colors.colors.find(color_name); From 8f72d4b2940f0bd5486e38bd58127d14a1762be8 Mon Sep 17 00:00:00 2001 From: Lars Mueller Date: Thu, 24 Dec 2020 14:48:05 +0100 Subject: [PATCH 326/624] Fix minetest.is_nan --- builtin/common/misc_helpers.lua | 4 ++++ src/script/lua_api/l_util.cpp | 11 ----------- src/script/lua_api/l_util.h | 3 --- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/builtin/common/misc_helpers.lua b/builtin/common/misc_helpers.lua index e29a9f422..0f3897f47 100644 --- a/builtin/common/misc_helpers.lua +++ b/builtin/common/misc_helpers.lua @@ -697,3 +697,7 @@ function core.privs_to_string(privs, delim) end return table.concat(list, delim) end + +function core.is_nan(number) + return number ~= number +end diff --git a/src/script/lua_api/l_util.cpp b/src/script/lua_api/l_util.cpp index cd63e20c2..6490eb578 100644 --- a/src/script/lua_api/l_util.cpp +++ b/src/script/lua_api/l_util.cpp @@ -239,15 +239,6 @@ int ModApiUtil::l_is_yes(lua_State *L) return 1; } -// is_nan(arg) -int ModApiUtil::l_is_nan(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - - lua_pushboolean(L, isNaN(L, 1)); - return 1; -} - // get_builtin_path() int ModApiUtil::l_get_builtin_path(lua_State *L) { @@ -493,7 +484,6 @@ void ModApiUtil::Initialize(lua_State *L, int top) API_FCT(get_password_hash); API_FCT(is_yes); - API_FCT(is_nan); API_FCT(get_builtin_path); @@ -526,7 +516,6 @@ void ModApiUtil::InitializeClient(lua_State *L, int top) API_FCT(write_json); API_FCT(is_yes); - API_FCT(is_nan); API_FCT(compress); API_FCT(decompress); diff --git a/src/script/lua_api/l_util.h b/src/script/lua_api/l_util.h index 9ff91bb53..b6c1b58af 100644 --- a/src/script/lua_api/l_util.h +++ b/src/script/lua_api/l_util.h @@ -65,9 +65,6 @@ private: // is_yes(arg) static int l_is_yes(lua_State *L); - // is_nan(arg) - static int l_is_nan(lua_State *L); - // get_builtin_path() static int l_get_builtin_path(lua_State *L); From 55dba1bc6d90c90ddd77d60f4760e34e28a6382f Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Mon, 28 Dec 2020 12:56:58 +0000 Subject: [PATCH 327/624] Display Minetest header when menu_last_game value isn't available anymore (#10751) --- builtin/mainmenu/init.lua | 10 ++++++++++ builtin/mainmenu/tab_local.lua | 1 + 2 files changed, 11 insertions(+) diff --git a/builtin/mainmenu/init.lua b/builtin/mainmenu/init.lua index 2fc0ae64c..656d1d149 100644 --- a/builtin/mainmenu/init.lua +++ b/builtin/mainmenu/init.lua @@ -106,6 +106,16 @@ local function init_globals() if last_tab and tv_main.current_tab ~= last_tab then tv_main:set_tab(last_tab) end + + -- In case the folder of the last selected game has been deleted, + -- display "Minetest" as a header + if tv_main.current_tab == "local" then + local game = pkgmgr.find_by_gameid(core.settings:get("menu_last_game")) + if game == nil then + mm_texture.reset() + end + end + ui.set_default("maintab") tv_main:show() diff --git a/builtin/mainmenu/tab_local.lua b/builtin/mainmenu/tab_local.lua index 1aee246fc..2eb4752bc 100644 --- a/builtin/mainmenu/tab_local.lua +++ b/builtin/mainmenu/tab_local.lua @@ -18,6 +18,7 @@ local enable_gamebar = PLATFORM ~= "Android" local current_game, singleplayer_refresh_gamebar + if enable_gamebar then function current_game() local last_game_id = core.settings:get("menu_last_game") From 09d7fbd645888aac32d089ff528ac1d1eb87e72d Mon Sep 17 00:00:00 2001 From: Lars Mueller Date: Thu, 24 Dec 2020 14:26:42 +0100 Subject: [PATCH 328/624] Fix item tooltip background color not working --- src/gui/guiFormSpecMenu.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index ed197d0d1..61112b570 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -3718,7 +3718,8 @@ void GUIFormSpecMenu::showTooltip(const std::wstring &text, { EnrichedString ntext(text); ntext.setDefaultColor(color); - ntext.setBackground(bgcolor); + if (!ntext.hasBackground()) + ntext.setBackground(bgcolor); setStaticText(m_tooltip_element, ntext); From 9250b5205a6c627dfa18b7870b454d74f8d9dae6 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein <54945686+EliasFleckenstein03@users.noreply.github.com> Date: Tue, 29 Dec 2020 16:50:09 +0100 Subject: [PATCH 329/624] Add minetest.get_objects_in_area (#10668) --- doc/lua_api.txt | 3 +++ src/script/lua_api/l_env.cpp | 26 ++++++++++++++++++++++++++ src/script/lua_api/l_env.h | 3 +++ src/server/activeobjectmgr.cpp | 15 +++++++++++++++ src/server/activeobjectmgr.h | 3 +++ src/serverenvironment.h | 7 +++++++ 6 files changed, 57 insertions(+) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 708d6b0bc..800fc0c24 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -4891,6 +4891,9 @@ Environment access * `minetest.get_objects_inside_radius(pos, radius)`: returns a list of ObjectRefs. * `radius`: using an euclidean metric +* `minetest.get_objects_in_area(pos1, pos2)`: returns a list of + ObjectRefs. + * `pos1` and `pos2` are the min and max positions of the area to search. * `minetest.set_timeofday(val)` * `val` is between `0` and `1`; `0` for midnight, `0.5` for midday * `minetest.get_timeofday()` diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index 021ef2ea7..c75fc8dc7 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -743,6 +743,31 @@ int ModApiEnvMod::l_get_objects_inside_radius(lua_State *L) return 1; } +// get_objects_in_area(pos, minp, maxp) +int ModApiEnvMod::l_get_objects_in_area(lua_State *L) +{ + GET_ENV_PTR; + ScriptApiBase *script = getScriptApiBase(L); + + v3f minp = read_v3f(L, 1) * BS; + v3f maxp = read_v3f(L, 2) * BS; + aabb3f box(minp, maxp); + box.repair(); + std::vector objs; + + auto include_obj_cb = [](ServerActiveObject *obj){ return !obj->isGone(); }; + env->getObjectsInArea(objs, box, include_obj_cb); + + int i = 0; + lua_createtable(L, objs.size(), 0); + for (const auto obj : objs) { + // Insert object reference into table + script->objectrefGetOrCreate(L, obj); + lua_rawseti(L, -2, ++i); + } + return 1; +} + // set_timeofday(val) // val = 0...1 int ModApiEnvMod::l_set_timeofday(lua_State *L) @@ -1413,6 +1438,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top) API_FCT(get_node_timer); API_FCT(get_connected_players); API_FCT(get_player_by_name); + API_FCT(get_objects_in_area); API_FCT(get_objects_inside_radius); API_FCT(set_timeofday); API_FCT(get_timeofday); diff --git a/src/script/lua_api/l_env.h b/src/script/lua_api/l_env.h index 7f212b5fc..42c2d64f8 100644 --- a/src/script/lua_api/l_env.h +++ b/src/script/lua_api/l_env.h @@ -114,6 +114,9 @@ private: // get_objects_inside_radius(pos, radius) static int l_get_objects_inside_radius(lua_State *L); + + // get_objects_in_area(pos, minp, maxp) + static int l_get_objects_in_area(lua_State *L); // set_timeofday(val) // val = 0...1 diff --git a/src/server/activeobjectmgr.cpp b/src/server/activeobjectmgr.cpp index 1b8e31409..acd6611f4 100644 --- a/src/server/activeobjectmgr.cpp +++ b/src/server/activeobjectmgr.cpp @@ -127,6 +127,21 @@ void ActiveObjectMgr::getObjectsInsideRadius(const v3f &pos, float radius, } } +void ActiveObjectMgr::getObjectsInArea(const aabb3f &box, + std::vector &result, + std::function include_obj_cb) +{ + for (auto &activeObject : m_active_objects) { + ServerActiveObject *obj = activeObject.second; + const v3f &objectpos = obj->getBasePosition(); + if (!box.isPointInside(objectpos)) + continue; + + if (!include_obj_cb || include_obj_cb(obj)) + result.push_back(obj); + } +} + void ActiveObjectMgr::getAddedActiveObjectsAroundPos(const v3f &player_pos, f32 radius, f32 player_radius, std::set ¤t_objects, std::queue &added_objects) diff --git a/src/server/activeobjectmgr.h b/src/server/activeobjectmgr.h index bc2085499..d43f5643c 100644 --- a/src/server/activeobjectmgr.h +++ b/src/server/activeobjectmgr.h @@ -38,6 +38,9 @@ public: void getObjectsInsideRadius(const v3f &pos, float radius, std::vector &result, std::function include_obj_cb); + void getObjectsInArea(const aabb3f &box, + std::vector &result, + std::function include_obj_cb); void getAddedActiveObjectsAroundPos(const v3f &player_pos, f32 radius, f32 player_radius, std::set ¤t_objects, diff --git a/src/serverenvironment.h b/src/serverenvironment.h index cfd5b8f3e..c76d34a37 100644 --- a/src/serverenvironment.h +++ b/src/serverenvironment.h @@ -331,6 +331,13 @@ public: { return m_ao_manager.getObjectsInsideRadius(pos, radius, objects, include_obj_cb); } + + // Find all active objects inside a box + void getObjectsInArea(std::vector &objects, const aabb3f &box, + std::function include_obj_cb) + { + return m_ao_manager.getObjectsInArea(box, objects, include_obj_cb); + } // Clear objects, loading and going through every MapBlock void clearObjects(ClearObjectsMode mode); From ff921f6989cc6e8e0be6bf9ac196e90331bb3eb4 Mon Sep 17 00:00:00 2001 From: Jean-Patrick Guerrero Date: Fri, 1 Jan 2021 17:03:34 +0100 Subject: [PATCH 330/624] Formspecs: Fix broken texture escaping with model[] --- src/gui/guiFormSpecMenu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 61112b570..973fc60a8 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -2787,7 +2787,7 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) auto meshnode = e->setMesh(mesh); for (u32 i = 0; i < textures.size() && i < meshnode->getMaterialCount(); ++i) - e->setTexture(i, m_tsrc->getTexture(textures[i])); + e->setTexture(i, m_tsrc->getTexture(unescape_string(textures[i]))); if (vec_rot.size() >= 2) e->setRotation(v2f(stof(vec_rot[0]), stof(vec_rot[1]))); From 92aac69b36d37ace8d2e06721cfa5e488427dcdf Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Sat, 2 Jan 2021 15:13:02 +0100 Subject: [PATCH 331/624] "Browse online content" formspec improvement (#10756) --- LICENSE.txt | 11 ++++ builtin/mainmenu/dlg_contentstore.lua | 68 +++++++++++++------------ textures/base/pack/cdb_add.png | Bin 0 -> 147 bytes textures/base/pack/cdb_clear.png | Bin 0 -> 182 bytes textures/base/pack/cdb_downloading.png | Bin 0 -> 201 bytes textures/base/pack/cdb_queued.png | Bin 0 -> 210 bytes textures/base/pack/cdb_update.png | Bin 0 -> 173 bytes textures/base/pack/cdb_viewonline.png | Bin 0 -> 191 bytes 8 files changed, 47 insertions(+), 32 deletions(-) create mode 100644 textures/base/pack/cdb_add.png create mode 100644 textures/base/pack/cdb_clear.png create mode 100644 textures/base/pack/cdb_downloading.png create mode 100644 textures/base/pack/cdb_queued.png create mode 100644 textures/base/pack/cdb_update.png create mode 100644 textures/base/pack/cdb_viewonline.png diff --git a/LICENSE.txt b/LICENSE.txt index 9fbd23723..9b8ee851a 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -11,6 +11,9 @@ http://creativecommons.org/licenses/by-sa/3.0/ textures/base/pack/refresh.png is under the Apache 2 license https://www.apache.org/licenses/LICENSE-2.0.html +Textures by Zughy are under CC BY-SA 4.0 +https://creativecommons.org/licenses/by-sa/4.0/ + Authors of media files ----------------------- Everything not listed in here: @@ -47,6 +50,14 @@ srifqi textures/base/pack/joystick_off.png textures/base/pack/minimap_btn.png +Zughy: + textures/base/pack/cdb_add.png + textures/base/pack/cdb_clear.png + textures/base/pack/cdb_downloading.png + textures/base/pack/cdb_queued.png + textures/base/pack/cdb_update.png + textures/base/pack/cdb_viewonline.png + License of Minetest source code ------------------------------- diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua index 548bae67e..7f6b4b7e4 100644 --- a/builtin/mainmenu/dlg_contentstore.lua +++ b/builtin/mainmenu/dlg_contentstore.lua @@ -631,7 +631,7 @@ function store.get_formspec(dlgdata) "size[15.75,9.5]", "position[0.5,0.55]", - "style[status;border=false]", + "style[status,downloading,queued;border=false]", "container[0.375,0.375]", "field[0,0;7.225,0.8;search_string;;", core.formspec_escape(search_string), "]", @@ -658,7 +658,7 @@ function store.get_formspec(dlgdata) } if number_downloading > 0 then - formspec[#formspec + 1] = "button[12.75,0.375;2.625,0.8;status;" + formspec[#formspec + 1] = "button[12.75,0.375;2.625,0.8;downloading;" if #download_queue > 0 then formspec[#formspec + 1] = fgettext("$1 downloading,\n$2 queued", number_downloading, #download_queue) else @@ -702,11 +702,17 @@ function store.get_formspec(dlgdata) } end + -- download/queued tooltips always have the same message + local tooltip_colors = ";#dff6f5;#302c2e]" + formspec[#formspec + 1] = "tooltip[downloading;" .. fgettext("Downloading...") .. tooltip_colors + formspec[#formspec + 1] = "tooltip[queued;" .. fgettext("Queued") .. tooltip_colors + local start_idx = (cur_page - 1) * num_per_page + 1 for i=start_idx, math.min(#store.packages, start_idx+num_per_page-1) do local package = store.packages[i] + local container_y = (i - start_idx) * 1.375 + (2*0.375 + 0.8) formspec[#formspec + 1] = "container[0.375," - formspec[#formspec + 1] = (i - start_idx) * 1.375 + (2*0.375 + 0.8) + formspec[#formspec + 1] = container_y formspec[#formspec + 1] = "]" -- image @@ -722,52 +728,50 @@ function store.get_formspec(dlgdata) formspec[#formspec + 1] = "]" -- buttons - local description_width = W - 0.375*5 - 1 - 2*1.5 + local left_base = "image_button[-1.55,0;0.7,0.7;" .. core.formspec_escape(defaulttexturedir) formspec[#formspec + 1] = "container[" formspec[#formspec + 1] = W - 0.375*2 formspec[#formspec + 1] = ",0.1]" if package.downloading then - formspec[#formspec + 1] = "button[-3.5,0;2,0.8;status;" - formspec[#formspec + 1] = fgettext("Downloading...") - formspec[#formspec + 1] = "]" + formspec[#formspec + 1] = "animated_image[-1.7,-0.15;1,1;downloading;" + formspec[#formspec + 1] = core.formspec_escape(defaulttexturedir) + formspec[#formspec + 1] = "cdb_downloading.png;3;400;]" elseif package.queued then - formspec[#formspec + 1] = "button[-3.5,0;2,0.8;status;" - formspec[#formspec + 1] = fgettext("Queued") - formspec[#formspec + 1] = "]" + formspec[#formspec + 1] = left_base + formspec[#formspec + 1] = core.formspec_escape(defaulttexturedir) + formspec[#formspec + 1] = "cdb_queued.png;queued]" elseif not package.path then - formspec[#formspec + 1] = "button[-3,0;1.5,0.8;install_" - formspec[#formspec + 1] = tostring(i) - formspec[#formspec + 1] = ";" - formspec[#formspec + 1] = fgettext("Install") - formspec[#formspec + 1] = "]" + local elem_name = "install_" .. i .. ";" + formspec[#formspec + 1] = "style[" .. elem_name .. "bgcolor=#71aa34]" + formspec[#formspec + 1] = left_base .. "cdb_add.png;" .. elem_name .. "]" + formspec[#formspec + 1] = "tooltip[" .. elem_name .. fgettext("Install") .. tooltip_colors else if package.installed_release < package.release then - description_width = description_width - 1.5 -- The install_ action also handles updating - formspec[#formspec + 1] = "button[-4.5,0;1.5,0.8;install_" - formspec[#formspec + 1] = tostring(i) - formspec[#formspec + 1] = ";" - formspec[#formspec + 1] = fgettext("Update") - formspec[#formspec + 1] = "]" - end + local elem_name = "install_" .. i .. ";" + formspec[#formspec + 1] = "style[" .. elem_name .. "bgcolor=#28ccdf]" + formspec[#formspec + 1] = left_base .. "cdb_update.png;" .. elem_name .. "]" + formspec[#formspec + 1] = "tooltip[" .. elem_name .. fgettext("Update") .. tooltip_colors + else - formspec[#formspec + 1] = "button[-3,0;1.5,0.8;uninstall_" - formspec[#formspec + 1] = tostring(i) - formspec[#formspec + 1] = ";" - formspec[#formspec + 1] = fgettext("Uninstall") - formspec[#formspec + 1] = "]" + local elem_name = "uninstall_" .. i .. ";" + formspec[#formspec + 1] = "style[" .. elem_name .. "bgcolor=#a93b3b]" + formspec[#formspec + 1] = left_base .. "cdb_clear.png;" .. elem_name .. "]" + formspec[#formspec + 1] = "tooltip[" .. elem_name .. fgettext("Uninstall") .. tooltip_colors + end end - formspec[#formspec + 1] = "button[-1.5,0;1.5,0.8;view_" - formspec[#formspec + 1] = tostring(i) - formspec[#formspec + 1] = ";" - formspec[#formspec + 1] = fgettext("View") - formspec[#formspec + 1] = "]" + local web_elem_name = "view_" .. i .. ";" + formspec[#formspec + 1] = "image_button[-0.7,0;0.7,0.7;" .. + core.formspec_escape(defaulttexturedir) .. "cdb_viewonline.png;" .. web_elem_name .. "]" + formspec[#formspec + 1] = "tooltip[" .. web_elem_name .. + fgettext("View more information in a web browser") .. tooltip_colors formspec[#formspec + 1] = "container_end[]" -- description + local description_width = W - 0.375*5 - 0.85 - 2*0.7 formspec[#formspec + 1] = "textarea[1.855,0.3;" formspec[#formspec + 1] = tostring(description_width) formspec[#formspec + 1] = ",0.8;;;" diff --git a/textures/base/pack/cdb_add.png b/textures/base/pack/cdb_add.png new file mode 100644 index 0000000000000000000000000000000000000000..3e3d067e33b98a39c1e07e17a611fa88eeb23281 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@o&cW^S0KIZs!ic46U%BBo0DHI z0{M(3L4Lsu4$p3+0Xe3gE{-7;w~`YU$UTT^IQPJ(!6<^cz%Z<>Ev-?~+u3<>fMmhS q|M8FiKQ>~|V_o+4kG#frVTP$m0*-x0uSx?AVDNPHb6Mw<&;$S-YA!PX literal 0 HcmV?d00001 diff --git a/textures/base/pack/cdb_clear.png b/textures/base/pack/cdb_clear.png new file mode 100644 index 0000000000000000000000000000000000000000..4490d41cbc082cc9f2271daf2a3a52ca46dba680 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@o&cW^S0Me&LvN+Eb)1>=HJOB2 zKt5whkY6x^!?PP{Ku(0Gi(^Q|t>lCSb`O#gA{f##ObymH7%)XB@|+g9C}YrUZnA~p zOadRTEyKk!Q<+uqCM>5ocv~;@EL_MZFnRHOC*QbaR?|vm`If}ehDzQU2hSh)&{$Q+ Z$PoNa@QjJ(e~`-lg(ETw3ETp)z4*}Q$iB}B>zE{ literal 0 HcmV?d00001 diff --git a/textures/base/pack/cdb_queued.png b/textures/base/pack/cdb_queued.png new file mode 100644 index 0000000000000000000000000000000000000000..6972f7fb8328503589abfdb65cec902640e5f816 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@o&cW^S0Mf6%)`lH5~`<4|e%426_ z0Qrn1L4Lsu4$p3+0XhDjE{-7;w~`YUNEjTF@ RIDtkpc)I$ztaD0e0sxzGGnoJY literal 0 HcmV?d00001 diff --git a/textures/base/pack/cdb_viewonline.png b/textures/base/pack/cdb_viewonline.png new file mode 100644 index 0000000000000000000000000000000000000000..ae2a146b855715506dcaacd5ec0fb55713762df2 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv{s5m4S0Eh~9NbheWx?dW>-Vm$ z-@z#j6k;q1@(X5gcy=QV$cgiGaSW-rm7E|E(%|Xo$v9PiNr%#+6&g7jDlJPKJOXY6 z1Ozf}ZgpxuS3das?*KDHmN@U5yct51fi^LCy85}Sb4q9e08d;#XaE2J literal 0 HcmV?d00001 From ad58fb22064c7db223cb825596c12f93f2a75a26 Mon Sep 17 00:00:00 2001 From: OgelGames Date: Sun, 3 Jan 2021 01:13:53 +1100 Subject: [PATCH 332/624] Clarify documentation of minetest.get_modpath and minetest.get_modnames (#10771) --- doc/lua_api.txt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 800fc0c24..8bf6ade69 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -4327,11 +4327,14 @@ Utilities * `minetest.get_current_modname()`: returns the currently loading mod's name, when loading a mod. -* `minetest.get_modpath(modname)`: returns e.g. - `"/home/user/.minetest/usermods/modname"`. - * Useful for loading additional `.lua` modules or static data from mod -* `minetest.get_modnames()`: returns a list of installed mods - * Return a list of installed mods, sorted alphabetically +* `minetest.get_modpath(modname)`: returns the directory path for a mod, + e.g. `"/home/user/.minetest/usermods/modname"`. + * Returns nil if the mod is not enabled or does not exist (not installed). + * Works regardless of whether the mod has been loaded yet. + * Useful for loading additional `.lua` modules or static data from a mod, + or checking if a mod is enabled. +* `minetest.get_modnames()`: returns a list of enabled mods, sorted alphabetically. + * Does not include disabled mods, even if they are installed. * `minetest.get_worldpath()`: returns e.g. `"/home/user/.minetest/world"` * Useful for storing custom data * `minetest.is_singleplayer()` From dd5a732fa90550066bb96305b64b6648903cc822 Mon Sep 17 00:00:00 2001 From: hecks <42101236+hecktest@users.noreply.github.com> Date: Sat, 2 Jan 2021 15:14:29 +0100 Subject: [PATCH 333/624] Add on_deactivate callback for luaentities (#10723) --- builtin/profiler/instrumentation.lua | 1 + doc/lua_api.txt | 2 + games/devtest/mods/testentities/callbacks.lua | 3 ++ src/script/cpp_api/s_entity.cpp | 26 ++++++++++ src/script/cpp_api/s_entity.h | 1 + src/script/lua_api/l_object.cpp | 2 +- src/server/luaentity_sao.cpp | 13 ++++- src/server/luaentity_sao.h | 5 ++ src/server/player_sao.cpp | 2 +- src/server/serveractiveobject.cpp | 16 ++++++ src/server/serveractiveobject.h | 50 ++++++++++++------- src/serverenvironment.cpp | 12 +++-- 12 files changed, 106 insertions(+), 27 deletions(-) diff --git a/builtin/profiler/instrumentation.lua b/builtin/profiler/instrumentation.lua index 237f048fb..6b951a2c2 100644 --- a/builtin/profiler/instrumentation.lua +++ b/builtin/profiler/instrumentation.lua @@ -160,6 +160,7 @@ local function init() -- Simple iteration would ignore lookup via __index. local entity_instrumentation = { "on_activate", + "on_deactivate", "on_step", "on_punch", "on_rightclick", diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 8bf6ade69..47c2776e6 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -4207,6 +4207,8 @@ Callbacks: * Called when the object is instantiated. * `dtime_s` is the time passed since the object was unloaded, which can be used for updating the entity state. +* `on_deactivate(self) + * Called when the object is about to get removed or unloaded. * `on_step(self, dtime)` * Called on every server tick, after movement and collision processing. `dtime` is usually 0.1 seconds, as per the `dedicated_server_step` setting diff --git a/games/devtest/mods/testentities/callbacks.lua b/games/devtest/mods/testentities/callbacks.lua index 711079f87..320690b39 100644 --- a/games/devtest/mods/testentities/callbacks.lua +++ b/games/devtest/mods/testentities/callbacks.lua @@ -31,6 +31,9 @@ minetest.register_entity("testentities:callback", { on_activate = function(self, staticdata, dtime_s) message("Callback entity: on_activate! pos="..spos(self).."; dtime_s="..dtime_s) end, + on_deactivate = function(self) + message("Callback entity: on_deactivate! pos="..spos(self)) + end, on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir, damage) local name = get_object_name(puncher) message( diff --git a/src/script/cpp_api/s_entity.cpp b/src/script/cpp_api/s_entity.cpp index ea9320051..746f7013e 100644 --- a/src/script/cpp_api/s_entity.cpp +++ b/src/script/cpp_api/s_entity.cpp @@ -103,6 +103,32 @@ void ScriptApiEntity::luaentity_Activate(u16 id, lua_pop(L, 2); // Pop object and error handler } +void ScriptApiEntity::luaentity_Deactivate(u16 id) +{ + SCRIPTAPI_PRECHECKHEADER + + verbosestream << "scriptapi_luaentity_deactivate: id=" << id << std::endl; + + int error_handler = PUSH_ERROR_HANDLER(L); + + // Get the entity + luaentity_get(L, id); + int object = lua_gettop(L); + + // Get on_deactivate + lua_getfield(L, -1, "on_deactivate"); + if (!lua_isnil(L, -1)) { + luaL_checktype(L, -1, LUA_TFUNCTION); + lua_pushvalue(L, object); + + setOriginFromTable(object); + PCALL_RES(lua_pcall(L, 1, 0, error_handler)); + } else { + lua_pop(L, 1); + } + lua_pop(L, 2); // Pop object and error handler +} + void ScriptApiEntity::luaentity_Remove(u16 id) { SCRIPTAPI_PRECHECKHEADER diff --git a/src/script/cpp_api/s_entity.h b/src/script/cpp_api/s_entity.h index b5f7a6586..b52f6e447 100644 --- a/src/script/cpp_api/s_entity.h +++ b/src/script/cpp_api/s_entity.h @@ -33,6 +33,7 @@ public: bool luaentity_Add(u16 id, const char *name); void luaentity_Activate(u16 id, const std::string &staticdata, u32 dtime_s); + void luaentity_Deactivate(u16 id); void luaentity_Remove(u16 id); std::string luaentity_GetStaticdata(u16 id); void luaentity_GetProperties(u16 id, diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 4d7a1bc41..f52e4892e 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -110,7 +110,7 @@ int ObjectRef::l_remove(lua_State *L) sao->clearParentAttachment(); verbosestream << "ObjectRef::l_remove(): id=" << sao->getId() << std::endl; - sao->m_pending_removal = true; + sao->markForRemoval(); return 0; } diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp index b39797531..c7277491a 100644 --- a/src/server/luaentity_sao.cpp +++ b/src/server/luaentity_sao.cpp @@ -112,6 +112,15 @@ void LuaEntitySAO::addedToEnvironment(u32 dtime_s) } } +void LuaEntitySAO::dispatchScriptDeactivate() +{ + // Ensure that this is in fact a registered entity, + // and that it isn't already gone. + // The latter also prevents this from ever being called twice. + if (m_registered && !isGone()) + m_env->getScriptIface()->luaentity_Deactivate(m_id); +} + void LuaEntitySAO::step(float dtime, bool send_recommended) { if(!m_properties_sent) @@ -302,7 +311,7 @@ u16 LuaEntitySAO::punch(v3f dir, { if (!m_registered) { // Delete unknown LuaEntities when punched - m_pending_removal = true; + markForRemoval(); return 0; } @@ -335,7 +344,7 @@ u16 LuaEntitySAO::punch(v3f dir, clearParentAttachment(); clearChildAttachments(); m_env->getScriptIface()->luaentity_on_death(m_id, puncher); - m_pending_removal = true; + markForRemoval(); } actionstream << puncher->getDescription() << " (id=" << puncher->getId() << diff --git a/src/server/luaentity_sao.h b/src/server/luaentity_sao.h index e060aa06d..6883ae1b9 100644 --- a/src/server/luaentity_sao.h +++ b/src/server/luaentity_sao.h @@ -71,6 +71,11 @@ public: bool getSelectionBox(aabb3f *toset) const; bool collideWithObjects() const; +protected: + void dispatchScriptDeactivate(); + virtual void onMarkedForDeactivation() { dispatchScriptDeactivate(); } + virtual void onMarkedForRemoval() { dispatchScriptDeactivate(); } + private: std::string getPropertyPacket(); void sendPosition(bool do_interpolate, bool is_movement_end); diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index 62515d1c9..232c6a01d 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -531,7 +531,7 @@ bool PlayerSAO::setWieldedItem(const ItemStack &item) void PlayerSAO::disconnected() { m_peer_id = PEER_ID_INEXISTENT; - m_pending_removal = true; + markForRemoval(); } void PlayerSAO::unlinkPlayerSessionAndSave() diff --git a/src/server/serveractiveobject.cpp b/src/server/serveractiveobject.cpp index 8cb59b2d6..96b433d1d 100644 --- a/src/server/serveractiveobject.cpp +++ b/src/server/serveractiveobject.cpp @@ -73,3 +73,19 @@ void ServerActiveObject::dumpAOMessagesToQueue(std::queue & m_messages_out.pop(); } } + +void ServerActiveObject::markForRemoval() +{ + if (!m_pending_removal) { + onMarkedForRemoval(); + m_pending_removal = true; + } +} + +void ServerActiveObject::markForDeactivation() +{ + if (!m_pending_deactivation) { + onMarkedForDeactivation(); + m_pending_deactivation = true; + } +} diff --git a/src/server/serveractiveobject.h b/src/server/serveractiveobject.h index 2764d159e..25653a1ad 100644 --- a/src/server/serveractiveobject.h +++ b/src/server/serveractiveobject.h @@ -70,6 +70,10 @@ public: virtual bool environmentDeletes() const { return true; } + // Safely mark the object for removal or deactivation + void markForRemoval(); + void markForDeactivation(); + // Create a certain type of ServerActiveObject static ServerActiveObject* create(ActiveObjectType type, ServerEnvironment *env, u16 id, v3f pos, @@ -213,25 +217,6 @@ public: */ u16 m_known_by_count = 0; - /* - - Whether this object is to be removed when nobody knows about - it anymore. - - Removal is delayed to preserve the id for the time during which - it could be confused to some other object by some client. - - This is usually set to true by the step() method when the object wants - to be deleted but can be set by anything else too. - */ - bool m_pending_removal = false; - - /* - Same purpose as m_pending_removal but for deactivation. - deactvation = save static data in block, remove active object - - If this is set alongside with m_pending_removal, removal takes - priority. - */ - bool m_pending_deactivation = false; - /* A getter that unifies the above to answer the question: "Can the environment still interact with this object?" @@ -239,6 +224,9 @@ public: inline bool isGone() const { return m_pending_removal || m_pending_deactivation; } + inline bool isPendingRemoval() const + { return m_pending_removal; } + /* Whether the object's static data has been stored to a block */ @@ -250,6 +238,9 @@ public: v3s16 m_static_block = v3s16(1337,1337,1337); protected: + virtual void onMarkedForDeactivation() {} + virtual void onMarkedForRemoval() {} + virtual void onAttach(int parent_id) {} virtual void onDetach(int parent_id) {} @@ -257,6 +248,27 @@ protected: v3f m_base_position; std::unordered_set m_attached_particle_spawners; + /* + Same purpose as m_pending_removal but for deactivation. + deactvation = save static data in block, remove active object + + If this is set alongside with m_pending_removal, removal takes + priority. + Note: Do not assign this directly, use markForDeactivation() instead. + */ + bool m_pending_deactivation = false; + + /* + - Whether this object is to be removed when nobody knows about + it anymore. + - Removal is delayed to preserve the id for the time during which + it could be confused to some other object by some client. + - This is usually set to true by the step() method when the object wants + to be deleted but can be set by anything else too. + Note: Do not assign this directly, use markForRemoval() instead. + */ + bool m_pending_removal = false; + /* Queue of messages to be sent to the client */ diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp index d044b003d..56dbb0632 100644 --- a/src/serverenvironment.cpp +++ b/src/serverenvironment.cpp @@ -1164,7 +1164,7 @@ void ServerEnvironment::clearObjects(ClearObjectsMode mode) // If known by some client, don't delete immediately if (obj->m_known_by_count > 0) { - obj->m_pending_removal = true; + obj->markForRemoval(); return false; } @@ -1792,7 +1792,7 @@ void ServerEnvironment::removeRemovedObjects() /* Delete static data from block if removed */ - if (obj->m_pending_removal) + if (obj->isPendingRemoval()) deleteStaticFromBlock(obj, id, MOD_REASON_REMOVE_OBJECTS_REMOVE, false); // If still known by clients, don't actually remove. On some future @@ -1803,7 +1803,7 @@ void ServerEnvironment::removeRemovedObjects() /* Move static data from active to stored if deactivated */ - if (!obj->m_pending_removal && obj->m_static_exists) { + if (!obj->isPendingRemoval() && obj->m_static_exists) { MapBlock *block = m_map->emergeBlock(obj->m_static_block, false); if (block) { const auto i = block->m_static_objects.m_active.find(id); @@ -1991,6 +1991,7 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) if (!force_delete && obj->m_static_exists && !m_active_blocks.contains(obj->m_static_block) && m_active_blocks.contains(blockpos_o)) { + // Delete from block where object was located deleteStaticFromBlock(obj, id, MOD_REASON_STATIC_DATA_REMOVED, false); @@ -2068,6 +2069,10 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) force_delete = true; } + // Regardless of what happens to the object at this point, deactivate it first. + // This ensures that LuaEntity on_deactivate is always called. + obj->markForDeactivation(); + /* If known by some client, set pending deactivation. Otherwise delete it immediately. @@ -2077,7 +2082,6 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) << "object id=" << id << " is known by clients" << "; not deleting yet" << std::endl; - obj->m_pending_deactivation = true; return false; } From edd083601173c1b67a2e5cd88e23122f46b88bbf Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Mon, 4 Jan 2021 15:18:31 +0000 Subject: [PATCH 334/624] ContentDB: Add overwrite dialog when content is already installed (#10768) --- builtin/mainmenu/dlg_contentstore.lua | 74 +++++++++++++++++++++++++-- doc/menu_lua_api.txt | 2 + src/script/lua_api/l_mainmenu.cpp | 11 ++++ src/script/lua_api/l_mainmenu.h | 2 + 4 files changed, 84 insertions(+), 5 deletions(-) diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua index 7f6b4b7e4..b5f71e753 100644 --- a/builtin/mainmenu/dlg_contentstore.lua +++ b/builtin/mainmenu/dlg_contentstore.lua @@ -437,12 +437,53 @@ function install_dialog.create(package, raw_deps) install_dialog.package = package install_dialog.raw_deps = raw_deps install_dialog.will_install_deps = true - return dialog_create("package_view", + return dialog_create("install_dialog", install_dialog.get_formspec, install_dialog.handle_submit, nil) end + +local confirm_overwrite = {} +function confirm_overwrite.get_formspec() + local package = confirm_overwrite.package + + return "size[11.5,4.5,true]" .. + "label[2,2;" .. + fgettext("\"$1\" already exists. Would you like to overwrite it?", package.name) .. "]".. + "style[install;bgcolor=red]" .. + "button[3.25,3.5;2.5,0.5;install;" .. fgettext("Overwrite") .. "]" .. + "button[5.75,3.5;2.5,0.5;cancel;" .. fgettext("Cancel") .. "]" +end + +function confirm_overwrite.handle_submit(this, fields) + if fields.cancel then + this:delete() + return true + end + + if fields.install then + this:delete() + confirm_overwrite.callback() + return true + end + + return false +end + +function confirm_overwrite.create(package, callback) + assert(type(package) == "table") + assert(type(callback) == "function") + + confirm_overwrite.package = package + confirm_overwrite.callback = callback + return dialog_create("confirm_overwrite", + confirm_overwrite.get_formspec, + confirm_overwrite.handle_submit, + nil) +end + + local function get_file_extension(path) local parts = path:split(".") return parts[#parts] @@ -858,14 +899,37 @@ function store.handle_submit(this, fields) assert(package) if fields["install_" .. i] then - local deps = get_raw_dependencies(package) - if deps and has_hard_deps(deps) then - local dlg = install_dialog.create(package, deps) + local install_parent + if package.type == "mod" then + install_parent = core.get_modpath() + elseif package.type == "game" then + install_parent = core.get_gamepath() + elseif package.type == "txp" then + install_parent = core.get_texturepath() + else + error("Unknown package type: " .. package.type) + end + + + local function on_confirm() + local deps = get_raw_dependencies(package) + if deps and has_hard_deps(deps) then + local dlg = install_dialog.create(package, deps) + dlg:set_parent(this) + this:hide() + dlg:show() + else + queue_download(package) + end + end + + if not package.path and core.is_dir(install_parent .. DIR_DELIM .. package.name) then + local dlg = confirm_overwrite.create(package, on_confirm) dlg:set_parent(this) this:hide() dlg:show() else - queue_download(package) + on_confirm() end return true diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt index 8908552d5..1bcf697e9 100644 --- a/doc/menu_lua_api.txt +++ b/doc/menu_lua_api.txt @@ -67,6 +67,8 @@ core.copy_dir(source,destination,keep_soure) (possible in async calls) ^ destination folder ^ keep_source DEFAULT true --> if set to false source is deleted after copying ^ returns true/false +core.is_dir(path) (possible in async calls) +^ returns true if path is a valid dir core.extract_zip(zipfile,destination) [unzip within path required] ^ zipfile to extract ^ destination folder to extract to diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 0b0b2de3b..5070ec7d4 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -803,6 +803,15 @@ int ModApiMainMenu::l_copy_dir(lua_State *L) return 1; } +/******************************************************************************/ +int ModApiMainMenu::l_is_dir(lua_State *L) +{ + const char *path = luaL_checkstring(L, 1); + + lua_pushboolean(L, fs::IsDir(path)); + return 1; +} + /******************************************************************************/ int ModApiMainMenu::l_extract_zip(lua_State *L) { @@ -1139,6 +1148,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(create_dir); API_FCT(delete_dir); API_FCT(copy_dir); + API_FCT(is_dir); API_FCT(extract_zip); API_FCT(may_modify_path); API_FCT(get_mainmenu_path); @@ -1172,6 +1182,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top) API_FCT(create_dir); API_FCT(delete_dir); API_FCT(copy_dir); + API_FCT(is_dir); //API_FCT(extract_zip); //TODO remove dependency to GuiEngine API_FCT(may_modify_path); API_FCT(download_file); diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index faa2bf273..0b02ed892 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -132,6 +132,8 @@ private: static int l_copy_dir(lua_State *L); + static int l_is_dir(lua_State *L); + static int l_extract_zip(lua_State *L); static int l_may_modify_path(lua_State *L); From e663aecbae122e172322898a584b9440d3f7cd4c Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 2 Jan 2021 15:43:35 +0100 Subject: [PATCH 335/624] Update Gitlab-CI pipeline --- .gitlab-ci.yml | 131 ++++++++++++++++---------------------------- misc/debpkg-control | 4 +- 2 files changed, 49 insertions(+), 86 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c3e120375..0441aeaa1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,12 +18,12 @@ variables: - mkdir cmakebuild - mkdir -p artifact/minetest/usr/ - cd cmakebuild - - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DBUILD_SERVER=TRUE .. + - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DENABLE_SYSTEM_JSONCPP=TRUE -DBUILD_SERVER=TRUE .. - make -j2 - make install artifacts: when: on_success - expire_in: 2h + expire_in: 1h paths: - artifact/* @@ -34,15 +34,14 @@ variables: - apt-get install -y git - mkdir -p build/deb/minetest/DEBIAN/ - cp misc/debpkg-control build/deb/minetest/DEBIAN/control - - cp -Rp artifact/minetest/usr build/deb/minetest/ + - cp -a artifact/minetest/usr build/deb/minetest/ script: - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest_game - - rm -Rf build/deb/minetest/usr/share/minetest/games/minetest/.git + - rm -rf build/deb/minetest/usr/share/minetest/games/minetest/.git - sed -i 's/DATEPLACEHOLDER/'$(date +%y.%m.%d)'/g' build/deb/minetest/DEBIAN/control - sed -i 's/LEVELDB_PLACEHOLDER/'$LEVELDB_PKG'/g' build/deb/minetest/DEBIAN/control - cd build/deb/ && dpkg-deb -b minetest/ && mv minetest.deb ../../ artifacts: - when: on_success expire_in: 90 day paths: - ./*.deb @@ -51,44 +50,14 @@ variables: stage: deploy before_script: - apt-get update -y - - apt-get install -y libc6 libcurl3-gnutls libfreetype6 libirrlicht1.8 $LEVELDB_PKG liblua5.1-0 libluajit-5.1-2 libopenal1 libstdc++6 libvorbisfile3 libx11-6 zlib1g script: - - dpkg -i ./*.deb + - apt-get install -y ./*.deb + - minetest --version ## ## Debian ## -# Jessie - -build:debian-8: - extends: .build_template - image: debian:8 - before_script: - - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list - - apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F - - apt-get update -y - - apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev - variables: - CC: gcc-6 - CXX: g++-6 - -package:debian-8: - extends: .debpkg_template - image: debian:8 - dependencies: - - build:debian-8 - variables: - LEVELDB_PKG: libleveldb1 - -deploy:debian-8: - extends: .debpkg_install - image: debian:8 - dependencies: - - package:debian-8 - variables: - LEVELDB_PKG: libleveldb1 - # Stretch build:debian-9: @@ -101,7 +70,7 @@ build:debian-9: package:debian-9: extends: .debpkg_template image: debian:9 - dependencies: + needs: - build:debian-9 variables: LEVELDB_PKG: libleveldb1v5 @@ -109,12 +78,10 @@ package:debian-9: deploy:debian-9: extends: .debpkg_install image: debian:9 - dependencies: + needs: - package:debian-9 - variables: - LEVELDB_PKG: libleveldb1v5 -# Stretch +# Buster build:debian-10: extends: .build_template @@ -126,7 +93,7 @@ build:debian-10: package:debian-10: extends: .debpkg_template image: debian:10 - dependencies: + needs: - build:debian-10 variables: LEVELDB_PKG: libleveldb1d @@ -134,10 +101,9 @@ package:debian-10: deploy:debian-10: extends: .debpkg_install image: debian:10 - dependencies: + needs: - package:debian-10 - variables: - LEVELDB_PKG: libleveldb1d + ## ## Ubuntu ## @@ -154,7 +120,7 @@ build:ubuntu-16.04: package:ubuntu-16.04: extends: .debpkg_template image: ubuntu:xenial - dependencies: + needs: - build:ubuntu-16.04 variables: LEVELDB_PKG: libleveldb1v5 @@ -162,10 +128,8 @@ package:ubuntu-16.04: deploy:ubuntu-16.04: extends: .debpkg_install image: ubuntu:xenial - dependencies: + needs: - package:ubuntu-16.04 - variables: - LEVELDB_PKG: libleveldb1v5 # Bionic @@ -179,7 +143,7 @@ build:ubuntu-18.04: package:ubuntu-18.04: extends: .debpkg_template image: ubuntu:bionic - dependencies: + needs: - build:ubuntu-18.04 variables: LEVELDB_PKG: libleveldb1v5 @@ -187,25 +151,22 @@ package:ubuntu-18.04: deploy:ubuntu-18.04: extends: .debpkg_install image: ubuntu:bionic - dependencies: + needs: - package:ubuntu-18.04 - variables: - LEVELDB_PKG: libleveldb1v5 ## ## Fedora ## -# Do we need to support this old version ? -build:fedora-24: +# Fedora 28 <-> RHEL 8 +build:fedora-28: extends: .build_template - image: fedora:24 + image: fedora:28 before_script: - - dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel - + - dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel ## -## Mingw for Windows +## MinGW for Windows ## .generic_win_template: @@ -213,68 +174,63 @@ build:fedora-24: before_script: - apt-get update -y - apt-get install -y wget xz-utils unzip git cmake gettext - - wget -q http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz + - wget -nv http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz - tar -xaf mingw.tar.xz -C /usr .build_win_template: extends: .generic_win_template stage: build artifacts: - when: on_success - expire_in: 2h + expire_in: 1h paths: - - build/* + - build/minetest/_build/* .package_win_template: extends: .generic_win_template stage: package script: - - cd build/minetest/_build - - make package - - cd ../../../ - - mkdir minetest-win-${WIN_ARCH} - - unzip build/minetest/_build/minetest-*-win*.zip -d minetest-win-${WIN_ARCH} - - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin - - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin - - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin + - unzip build/minetest/_build/minetest-*.zip + - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-*-win*/bin/ + - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-*-win*/bin/ + - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-*-win*/bin/ artifacts: - when: on_success expire_in: 90 day paths: - - minetest-win-*/* + - minetest-*-win*/* build:win32: extends: .build_win_template script: - ./util/buildbot/buildwin32.sh build variables: - NO_PACKAGE: "1" WIN_ARCH: "i686" package:win32: extends: .package_win_template - dependencies: + needs: - build:win32 variables: - NO_PACKAGE: "1" WIN_ARCH: "i686" + build:win64: extends: .build_win_template script: - ./util/buildbot/buildwin64.sh build variables: - NO_PACKAGE: "1" WIN_ARCH: "x86_64" package:win64: extends: .package_win_template - dependencies: + needs: - build:win64 variables: - NO_PACKAGE: "1" WIN_ARCH: "x86_64" +## +## Docker +## + package:docker: stage: package image: docker:stable @@ -288,6 +244,10 @@ package:docker: - docker push ${CONTAINER_IMAGE}/server:$CI_COMMIT_REF_NAME - docker push ${CONTAINER_IMAGE}/server:latest +## +## Gitlab Pages (Lua API documentation) +## + pages: stage: deploy image: python:3.8 @@ -303,10 +263,14 @@ pages: only: - master +## +## AppImage +## + package:appimage-client: stage: package image: appimagecrafters/appimage-builder - dependencies: + needs: - build:ubuntu-18.04 before_script: - apt-get update -y @@ -315,16 +279,15 @@ package:appimage-client: - mkdir AppDir - cp -a artifact/minetest/usr/ AppDir/usr/ - rm AppDir/usr/bin/minetestserver - - cp -R clientmods AppDir/usr/share/minetest + - cp -a clientmods AppDir/usr/share/minetest script: - git clone $MINETEST_GAME_REPO AppDir/usr/share/minetest/games/minetest_game - - rm -Rf AppDir/usr/share/minetest/games/minetest/.git + - rm -rf AppDir/usr/share/minetest/games/minetest/.git - export VERSION=$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA # Remove PrefersNonDefaultGPU property due to validation errors - sed -i '/PrefersNonDefaultGPU/d' AppDir/usr/share/applications/net.minetest.minetest.desktop - appimage-builder --skip-test artifacts: - when: on_success expire_in: 90 day paths: - ./*.AppImage diff --git a/misc/debpkg-control b/misc/debpkg-control index b228f4c79..30dc94088 100644 --- a/misc/debpkg-control +++ b/misc/debpkg-control @@ -3,9 +3,9 @@ Priority: extra Standards-Version: 3.6.2 Package: minetest-staging Version: 0.4.15-DATEPLACEHOLDER -Depends: libc6, libcurl3-gnutls, libfreetype6, libirrlicht1.8, LEVELDB_PLACEHOLDER, liblua5.1-0, libluajit-5.1-2, libopenal1, libstdc++6, libvorbisfile3, libx11-6, zlib1g +Depends: libc6, libcurl3-gnutls, libfreetype6, libirrlicht1.8, libjsoncpp1, LEVELDB_PLACEHOLDER, liblua5.1-0, libluajit-5.1-2, libopenal1, libsqlite3-0, libstdc++6, libvorbisfile3, libx11-6, zlib1g Maintainer: Loic Blot -Homepage: http://minetest.net/ +Homepage: https://www.minetest.net/ Vcs-Git: https://github.com/minetest/minetest.git Vcs-Browser: https://github.com/minetest/minetest.git Architecture: amd64 From 58a709096ef8ff17644cf201f25b1831d9506514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Blot?= Date: Mon, 4 Jan 2021 20:19:20 +0100 Subject: [PATCH 336/624] refacto: factorize multiple code parts from guiEditbox childs (#10782) --- src/gui/CMakeLists.txt | 1 + src/gui/guiEditBox.cpp | 95 ++++++++++++ src/gui/guiEditBox.h | 103 +++++++++++++ src/gui/guiEditBoxWithScrollbar.cpp | 113 +-------------- src/gui/guiEditBoxWithScrollbar.h | 66 +-------- src/gui/intlGUIEditBox.cpp | 216 +++++++--------------------- src/gui/intlGUIEditBox.h | 63 +------- 7 files changed, 266 insertions(+), 391 deletions(-) create mode 100644 src/gui/guiEditBox.cpp create mode 100644 src/gui/guiEditBox.h diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 5305e7ad3..fdd36914a 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -7,6 +7,7 @@ set(gui_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/guiButtonItemImage.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiChatConsole.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiConfirmRegistration.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/guiEditBox.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiEditBoxWithScrollbar.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiEngine.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiFormSpecMenu.cpp diff --git a/src/gui/guiEditBox.cpp b/src/gui/guiEditBox.cpp new file mode 100644 index 000000000..159bd38ac --- /dev/null +++ b/src/gui/guiEditBox.cpp @@ -0,0 +1,95 @@ +/* +Minetest +Copyright (C) 2021 Minetest + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "guiEditBox.h" + +#include "IGUISkin.h" +#include "IGUIEnvironment.h" +#include "IGUIFont.h" + +GUIEditBox::~GUIEditBox() +{ + if (m_override_font) + m_override_font->drop(); +} + +void GUIEditBox::setOverrideFont(IGUIFont *font) +{ + if (m_override_font == font) + return; + + if (m_override_font) + m_override_font->drop(); + + m_override_font = font; + + if (m_override_font) + m_override_font->grab(); + + breakText(); +} + +//! Get the font which is used right now for drawing +IGUIFont *GUIEditBox::getActiveFont() const +{ + if (m_override_font) + return m_override_font; + IGUISkin *skin = Environment->getSkin(); + if (skin) + return skin->getFont(); + return 0; +} + +//! Sets another color for the text. +void GUIEditBox::setOverrideColor(video::SColor color) +{ + m_override_color = color; + m_override_color_enabled = true; +} + +video::SColor GUIEditBox::getOverrideColor() const +{ + return m_override_color; +} + +//! Sets if the text should use the overide color or the color in the gui skin. +void GUIEditBox::enableOverrideColor(bool enable) +{ + m_override_color_enabled = enable; +} + +//! Enables or disables word wrap +void GUIEditBox::setWordWrap(bool enable) +{ + m_word_wrap = enable; + breakText(); +} + +//! Enables or disables newlines. +void GUIEditBox::setMultiLine(bool enable) +{ + m_multiline = enable; +} + +//! Enables or disables automatic scrolling with cursor position +//! \param enable: If set to true, the text will move around with the cursor position +void GUIEditBox::setAutoScroll(bool enable) +{ + m_autoscroll = enable; +} diff --git a/src/gui/guiEditBox.h b/src/gui/guiEditBox.h new file mode 100644 index 000000000..c673f2f5f --- /dev/null +++ b/src/gui/guiEditBox.h @@ -0,0 +1,103 @@ +/* +Minetest +Copyright (C) 2021 Minetest + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#pragma once + +#include "IGUIEditBox.h" +#include "IOSOperator.h" +#include "guiScrollBar.h" + +using namespace irr; +using namespace irr::gui; + +class GUIEditBox : public IGUIEditBox +{ +public: + GUIEditBox(IGUIEnvironment *environment, IGUIElement *parent, s32 id, + core::rect rectangle) : + IGUIEditBox(environment, parent, id, rectangle) + { + } + + virtual ~GUIEditBox(); + + //! Sets another skin independent font. + virtual void setOverrideFont(IGUIFont *font = 0); + + virtual IGUIFont *getOverrideFont() const { return m_override_font; } + + //! Get the font which is used right now for drawing + /** Currently this is the override font when one is set and the + font of the active skin otherwise */ + virtual IGUIFont *getActiveFont() const; + + //! Sets another color for the text. + virtual void setOverrideColor(video::SColor color); + + //! Gets the override color + virtual video::SColor getOverrideColor() const; + + //! Sets if the text should use the overide color or the + //! color in the gui skin. + virtual void enableOverrideColor(bool enable); + + //! Checks if an override color is enabled + /** \return true if the override color is enabled, false otherwise */ + virtual bool isOverrideColorEnabled(void) const + { + return m_override_color_enabled; + } + + //! Enables or disables word wrap for using the edit box as multiline text editor. + virtual void setWordWrap(bool enable); + + //! Checks if word wrap is enabled + //! \return true if word wrap is enabled, false otherwise + virtual bool isWordWrapEnabled() const { return m_word_wrap; } + + //! Enables or disables newlines. + /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired, + instead a newline character will be inserted. */ + virtual void setMultiLine(bool enable); + + //! Checks if multi line editing is enabled + //! \return true if mult-line is enabled, false otherwise + virtual bool isMultiLineEnabled() const { return m_multiline; } + + //! Enables or disables automatic scrolling with cursor position + //! \param enable: If set to true, the text will move around with the cursor + //! position + virtual void setAutoScroll(bool enable); + + //! Checks to see if automatic scrolling is enabled + //! \return true if automatic scrolling is enabled, false if not + virtual bool isAutoScrollEnabled() const { return m_autoscroll; } + +protected: + virtual void breakText() = 0; + + gui::IGUIFont *m_override_font = nullptr; + + bool m_override_color_enabled = false; + bool m_word_wrap = false; + bool m_multiline = false; + bool m_autoscroll = true; + + video::SColor m_override_color = video::SColor(101, 255, 255, 255); +}; \ No newline at end of file diff --git a/src/gui/guiEditBoxWithScrollbar.cpp b/src/gui/guiEditBoxWithScrollbar.cpp index 169425a9a..7f9fdafd7 100644 --- a/src/gui/guiEditBoxWithScrollbar.cpp +++ b/src/gui/guiEditBoxWithScrollbar.cpp @@ -22,16 +22,14 @@ optional? dragging selected text numerical */ - //! constructor GUIEditBoxWithScrollBar::GUIEditBoxWithScrollBar(const wchar_t* text, bool border, IGUIEnvironment* environment, IGUIElement* parent, s32 id, const core::rect& rectangle, bool writable, bool has_vscrollbar) - : IGUIEditBox(environment, parent, id, rectangle), m_mouse_marking(false), - m_border(border), m_background(true), m_override_color_enabled(false), m_mark_begin(0), m_mark_end(0), - m_override_color(video::SColor(101, 255, 255, 255)), m_override_font(0), m_last_break_font(0), + : GUIEditBox(environment, parent, id, rectangle), m_mouse_marking(false), + m_border(border), m_background(true), m_mark_begin(0), m_mark_end(0), m_last_break_font(0), m_operator(0), m_blink_start_time(0), m_cursor_pos(0), m_hscroll_pos(0), m_vscroll_pos(0), m_max(0), - m_word_wrap(false), m_multiline(false), m_autoscroll(true), m_passwordbox(false), + m_passwordbox(false), m_passwordchar(L'*'), m_halign(EGUIA_UPPERLEFT), m_valign(EGUIA_CENTER), m_current_text_rect(0, 0, 1, 1), m_frame_rect(rectangle), m_scrollbar_width(0), m_vscrollbar(NULL), m_writable(writable), @@ -69,9 +67,6 @@ GUIEditBoxWithScrollBar::GUIEditBoxWithScrollBar(const wchar_t* text, bool borde //! destructor GUIEditBoxWithScrollBar::~GUIEditBoxWithScrollBar() { - if (m_override_font) - m_override_font->drop(); - if (m_operator) m_operator->drop(); @@ -80,54 +75,6 @@ GUIEditBoxWithScrollBar::~GUIEditBoxWithScrollBar() } -//! Sets another skin independent font. -void GUIEditBoxWithScrollBar::setOverrideFont(IGUIFont* font) -{ - if (m_override_font == font) - return; - - if (m_override_font) - m_override_font->drop(); - - m_override_font = font; - - if (m_override_font) - m_override_font->grab(); - - breakText(); -} - -//! Gets the override font (if any) -IGUIFont * GUIEditBoxWithScrollBar::getOverrideFont() const -{ - return m_override_font; -} - -//! Get the font which is used right now for drawing -IGUIFont* GUIEditBoxWithScrollBar::getActiveFont() const -{ - if (m_override_font) - return m_override_font; - IGUISkin* skin = Environment->getSkin(); - if (skin) - return skin->getFont(); - return 0; -} - -//! Sets another color for the text. -void GUIEditBoxWithScrollBar::setOverrideColor(video::SColor color) -{ - m_override_color = color; - m_override_color_enabled = true; -} - - -video::SColor GUIEditBoxWithScrollBar::getOverrideColor() const -{ - return m_override_color; -} - - //! Turns the border on or off void GUIEditBoxWithScrollBar::setDrawBorder(bool border) { @@ -140,24 +87,6 @@ void GUIEditBoxWithScrollBar::setDrawBackground(bool draw) m_background = draw; } -//! Sets if the text should use the overide color or the color in the gui skin. -void GUIEditBoxWithScrollBar::enableOverrideColor(bool enable) -{ - m_override_color_enabled = enable; -} - -bool GUIEditBoxWithScrollBar::isOverrideColorEnabled() const -{ - return m_override_color_enabled; -} - -//! Enables or disables word wrap -void GUIEditBoxWithScrollBar::setWordWrap(bool enable) -{ - m_word_wrap = enable; - breakText(); -} - void GUIEditBoxWithScrollBar::updateAbsolutePosition() { @@ -170,26 +99,6 @@ void GUIEditBoxWithScrollBar::updateAbsolutePosition() } } -//! Checks if word wrap is enabled -bool GUIEditBoxWithScrollBar::isWordWrapEnabled() const -{ - return m_word_wrap; -} - - -//! Enables or disables newlines. -void GUIEditBoxWithScrollBar::setMultiLine(bool enable) -{ - m_multiline = enable; -} - - -//! Checks if multi line editing is enabled -bool GUIEditBoxWithScrollBar::isMultiLineEnabled() const -{ - return m_multiline; -} - void GUIEditBoxWithScrollBar::setPasswordBox(bool password_box, wchar_t password_char) { @@ -850,22 +759,6 @@ void GUIEditBoxWithScrollBar::setText(const wchar_t* text) } -//! Enables or disables automatic scrolling with cursor position -//! \param enable: If set to true, the text will move around with the cursor position -void GUIEditBoxWithScrollBar::setAutoScroll(bool enable) -{ - m_autoscroll = enable; -} - - -//! Checks to see if automatic scrolling is enabled -//! \return true if automatic scrolling is enabled, false if not -bool GUIEditBoxWithScrollBar::isAutoScrollEnabled() const -{ - return m_autoscroll; -} - - //! Gets the area of the text in the edit box //! \return Returns the size in pixels of the text core::dimension2du GUIEditBoxWithScrollBar::getTextDimension() diff --git a/src/gui/guiEditBoxWithScrollbar.h b/src/gui/guiEditBoxWithScrollbar.h index 77538e2f7..5ae58b934 100644 --- a/src/gui/guiEditBoxWithScrollbar.h +++ b/src/gui/guiEditBoxWithScrollbar.h @@ -5,15 +5,10 @@ #ifndef GUIEDITBOXWITHSCROLLBAR_HEADER #define GUIEDITBOXWITHSCROLLBAR_HEADER -#include "IGUIEditBox.h" -#include "IOSOperator.h" -#include "guiScrollBar.h" +#include "guiEditBox.h" #include -using namespace irr; -using namespace irr::gui; - -class GUIEditBoxWithScrollBar : public IGUIEditBox +class GUIEditBoxWithScrollBar : public GUIEditBox { public: @@ -25,61 +20,13 @@ public: //! destructor virtual ~GUIEditBoxWithScrollBar(); - //! Sets another skin independent font. - virtual void setOverrideFont(IGUIFont* font = 0); - - //! Gets the override font (if any) - /** \return The override font (may be 0) */ - virtual IGUIFont* getOverrideFont() const; - - //! Get the font which is used right now for drawing - /** Currently this is the override font when one is set and the - font of the active skin otherwise */ - virtual IGUIFont* getActiveFont() const; - - //! Sets another color for the text. - virtual void setOverrideColor(video::SColor color); - - //! Gets the override color - virtual video::SColor getOverrideColor() const; - - //! Sets if the text should use the overide color or the - //! color in the gui skin. - virtual void enableOverrideColor(bool enable); - - //! Checks if an override color is enabled - /** \return true if the override color is enabled, false otherwise */ - virtual bool isOverrideColorEnabled(void) const; - //! Sets whether to draw the background virtual void setDrawBackground(bool draw); //! Turns the border on or off virtual void setDrawBorder(bool border); - //! Enables or disables word wrap for using the edit box as multiline text editor. - virtual void setWordWrap(bool enable); - //! Checks if word wrap is enabled - //! \return true if word wrap is enabled, false otherwise - virtual bool isWordWrapEnabled() const; - - //! Enables or disables newlines. - /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired, - instead a newline character will be inserted. */ - virtual void setMultiLine(bool enable); - - //! Checks if multi line editing is enabled - //! \return true if mult-line is enabled, false otherwise - virtual bool isMultiLineEnabled() const; - - //! Enables or disables automatic scrolling with cursor position - //! \param enable: If set to true, the text will move around with the cursor position - virtual void setAutoScroll(bool enable); - - //! Checks to see if automatic scrolling is enabled - //! \return true if automatic scrolling is enabled, false if not - virtual bool isAutoScrollEnabled() const; //! Gets the size area of the text in the edit box //! \return Returns the size in pixels of the text @@ -137,7 +84,7 @@ public: protected: //! Breaks the single text line. - void breakText(); + virtual void breakText(); //! sets the area of the given line void setTextRect(s32 line); //! returns the line number that the cursor is on @@ -164,12 +111,11 @@ protected: bool m_mouse_marking; bool m_border; bool m_background; - bool m_override_color_enabled; + s32 m_mark_begin; s32 m_mark_end; - video::SColor m_override_color; - gui::IGUIFont *m_override_font, *m_last_break_font; + gui::IGUIFont *m_last_break_font; IOSOperator* m_operator; u32 m_blink_start_time; @@ -177,7 +123,7 @@ protected: s32 m_hscroll_pos, m_vscroll_pos; // scroll position in characters u32 m_max; - bool m_word_wrap, m_multiline, m_autoscroll, m_passwordbox; + bool m_passwordbox; wchar_t m_passwordchar; EGUI_ALIGNMENT m_halign, m_valign; diff --git a/src/gui/intlGUIEditBox.cpp b/src/gui/intlGUIEditBox.cpp index 8be63fd6f..e917f73c1 100644 --- a/src/gui/intlGUIEditBox.cpp +++ b/src/gui/intlGUIEditBox.cpp @@ -59,7 +59,7 @@ namespace gui intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, IGUIEnvironment* environment, IGUIElement* parent, s32 id, const core::rect& rectangle, bool writable, bool has_vscrollbar) - : IGUIEditBox(environment, parent, id, rectangle), + : GUIEditBox(environment, parent, id, rectangle), Border(border), FrameRect(rectangle), m_scrollbar_width(0), m_vscrollbar(NULL), m_writable(writable) { @@ -108,9 +108,6 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, //! destructor intlGUIEditBox::~intlGUIEditBox() { - if (OverrideFont) - OverrideFont->drop(); - if (Operator) Operator->drop(); @@ -118,52 +115,6 @@ intlGUIEditBox::~intlGUIEditBox() m_vscrollbar->drop(); } - -//! Sets another skin independent font. -void intlGUIEditBox::setOverrideFont(IGUIFont* font) -{ - if (OverrideFont == font) - return; - - if (OverrideFont) - OverrideFont->drop(); - - OverrideFont = font; - - if (OverrideFont) - OverrideFont->grab(); - - breakText(); -} - -IGUIFont * intlGUIEditBox::getOverrideFont() const -{ - return OverrideFont; -} - -//! Get the font which is used right now for drawing -IGUIFont* intlGUIEditBox::getActiveFont() const -{ - if ( OverrideFont ) - return OverrideFont; - IGUISkin* skin = Environment->getSkin(); - if (skin) - return skin->getFont(); - return 0; -} - -//! Sets another color for the text. -void intlGUIEditBox::setOverrideColor(video::SColor color) -{ - OverrideColor = color; - OverrideColorEnabled = true; -} - -video::SColor intlGUIEditBox::getOverrideColor() const -{ - return OverrideColor; -} - //! Turns the border on or off void intlGUIEditBox::setDrawBorder(bool border) { @@ -175,25 +126,6 @@ void intlGUIEditBox::setDrawBackground(bool draw) { } -//! Sets if the text should use the overide color or the color in the gui skin. -void intlGUIEditBox::enableOverrideColor(bool enable) -{ - OverrideColorEnabled = enable; -} - -bool intlGUIEditBox::isOverrideColorEnabled() const -{ - return OverrideColorEnabled; -} - -//! Enables or disables word wrap -void intlGUIEditBox::setWordWrap(bool enable) -{ - WordWrap = enable; - breakText(); -} - - void intlGUIEditBox::updateAbsolutePosition() { core::rect oldAbsoluteRect(AbsoluteRect); @@ -204,28 +136,6 @@ void intlGUIEditBox::updateAbsolutePosition() } } - -//! Checks if word wrap is enabled -bool intlGUIEditBox::isWordWrapEnabled() const -{ - return WordWrap; -} - - -//! Enables or disables newlines. -void intlGUIEditBox::setMultiLine(bool enable) -{ - MultiLine = enable; -} - - -//! Checks if multi line editing is enabled -bool intlGUIEditBox::isMultiLineEnabled() const -{ - return MultiLine; -} - - void intlGUIEditBox::setPasswordBox(bool passwordBox, wchar_t passwordChar) { PasswordBox = passwordBox; @@ -464,7 +374,7 @@ bool intlGUIEditBox::processKey(const SEvent& event) case KEY_END: { s32 p = Text.size(); - if (WordWrap || MultiLine) + if (m_word_wrap || m_multiline) { p = getLineFromPos(CursorPos); p = BrokenTextPositions[p] + (s32)BrokenText[p].size(); @@ -492,7 +402,7 @@ bool intlGUIEditBox::processKey(const SEvent& event) { s32 p = 0; - if (WordWrap || MultiLine) + if (m_word_wrap || m_multiline) { p = getLineFromPos(CursorPos); p = BrokenTextPositions[p]; @@ -514,7 +424,7 @@ bool intlGUIEditBox::processKey(const SEvent& event) } break; case KEY_RETURN: - if (MultiLine) + if (m_multiline) { inputChar(L'\n'); return true; @@ -567,7 +477,7 @@ bool intlGUIEditBox::processKey(const SEvent& event) BlinkStartTime = porting::getTimeMs(); break; case KEY_UP: - if (MultiLine || (WordWrap && BrokenText.size() > 1) ) + if (m_multiline || (m_word_wrap && BrokenText.size() > 1) ) { s32 lineNo = getLineFromPos(CursorPos); s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin > MarkEnd ? MarkBegin : MarkEnd); @@ -598,7 +508,7 @@ bool intlGUIEditBox::processKey(const SEvent& event) } break; case KEY_DOWN: - if (MultiLine || (WordWrap && BrokenText.size() > 1) ) + if (m_multiline || (m_word_wrap && BrokenText.size() > 1) ) { s32 lineNo = getLineFromPos(CursorPos); s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin < MarkEnd ? MarkBegin : MarkEnd); @@ -791,8 +701,8 @@ void intlGUIEditBox::draw() // draw the text - IGUIFont* font = OverrideFont; - if (!OverrideFont) + IGUIFont* font = m_override_font; + if (!m_override_font) font = skin->getFont(); s32 cursorLine = 0; @@ -813,7 +723,7 @@ void intlGUIEditBox::draw() core::stringw s, s2; // get mark position - const bool ml = (!PasswordBox && (WordWrap || MultiLine)); + const bool ml = (!PasswordBox && (m_word_wrap || m_multiline)); const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; const s32 hlineStart = ml ? getLineFromPos(realmbgn) : 0; @@ -822,14 +732,14 @@ void intlGUIEditBox::draw() // Save the override color information. // Then, alter it if the edit box is disabled. - const bool prevOver = OverrideColorEnabled; - const video::SColor prevColor = OverrideColor; + const bool prevOver = m_override_color_enabled; + const video::SColor prevColor = m_override_color; if (!Text.empty()) { - if (!IsEnabled && !OverrideColorEnabled) + if (!IsEnabled && !m_override_color_enabled) { - OverrideColorEnabled = true; - OverrideColor = skin->getColor(EGDC_GRAY_TEXT); + m_override_color_enabled = true; + m_override_color = skin->getColor(EGDC_GRAY_TEXT); } for (s32 i=0; i < lineCount; ++i) @@ -870,7 +780,7 @@ void intlGUIEditBox::draw() // draw normal text font->draw(txtLine->c_str(), CurrentTextRect, - OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT), + m_override_color_enabled ? m_override_color : skin->getColor(EGDC_BUTTON_TEXT), false, true, &localClipRect); // draw mark and marked text @@ -914,20 +824,20 @@ void intlGUIEditBox::draw() if (!s.empty()) font->draw(s.c_str(), CurrentTextRect, - OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_HIGH_LIGHT_TEXT), + m_override_color_enabled ? m_override_color : skin->getColor(EGDC_HIGH_LIGHT_TEXT), false, true, &localClipRect); } } // Return the override color information to its previous settings. - OverrideColorEnabled = prevOver; - OverrideColor = prevColor; + m_override_color_enabled = prevOver; + m_override_color = prevColor; } // draw cursor - if (WordWrap || MultiLine) + if (m_word_wrap || m_multiline) { cursorLine = getLineFromPos(CursorPos); txtLine = &BrokenText[cursorLine]; @@ -943,7 +853,7 @@ void intlGUIEditBox::draw() CurrentTextRect.UpperLeftCorner.X += charcursorpos; font->draw(L"_", CurrentTextRect, - OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT), + m_override_color_enabled ? m_override_color : skin->getColor(EGDC_BUTTON_TEXT), false, true, &localClipRect); } } @@ -965,22 +875,6 @@ void intlGUIEditBox::setText(const wchar_t* text) } -//! Enables or disables automatic scrolling with cursor position -//! \param enable: If set to true, the text will move around with the cursor position -void intlGUIEditBox::setAutoScroll(bool enable) -{ - AutoScroll = enable; -} - - -//! Checks to see if automatic scrolling is enabled -//! \return true if automatic scrolling is enabled, false if not -bool intlGUIEditBox::isAutoScrollEnabled() const -{ - return AutoScroll; -} - - //! Gets the area of the text in the edit box //! \return Returns the size in pixels of the text core::dimension2du intlGUIEditBox::getTextDimension() @@ -1096,12 +990,12 @@ bool intlGUIEditBox::processMouse(const SEvent& event) s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) { - IGUIFont* font = OverrideFont; + IGUIFont* font = m_override_font; IGUISkin* skin = Environment->getSkin(); - if (!OverrideFont) + if (!m_override_font) font = skin->getFont(); - const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1; + const u32 lineCount = (m_word_wrap || m_multiline) ? BrokenText.size() : 1; core::stringw *txtLine = NULL; s32 startPos = 0; @@ -1118,8 +1012,8 @@ s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) // is it inside this region? if (y >= CurrentTextRect.UpperLeftCorner.Y && y <= CurrentTextRect.LowerRightCorner.Y) { // we've found the clicked line - txtLine = (WordWrap || MultiLine) ? &BrokenText[curr_line_idx] : &Text; - startPos = (WordWrap || MultiLine) ? BrokenTextPositions[curr_line_idx] : 0; + txtLine = (m_word_wrap || m_multiline) ? &BrokenText[curr_line_idx] : &Text; + startPos = (m_word_wrap || m_multiline) ? BrokenTextPositions[curr_line_idx] : 0; break; } } @@ -1144,14 +1038,14 @@ void intlGUIEditBox::breakText() { IGUISkin* skin = Environment->getSkin(); - if ((!WordWrap && !MultiLine) || !skin) + if ((!m_word_wrap && !m_multiline) || !skin) return; BrokenText.clear(); // need to reallocate :/ BrokenTextPositions.set_used(0); - IGUIFont* font = OverrideFont; - if (!OverrideFont) + IGUIFont* font = m_override_font; + if (!m_override_font) font = skin->getFont(); if (!font) @@ -1190,7 +1084,7 @@ void intlGUIEditBox::breakText() } // don't break if we're not a multi-line edit box - if (!MultiLine) + if (!m_multiline) lineBreak = false; if (c == L' ' || c == 0 || i == (size-1)) @@ -1201,7 +1095,7 @@ void intlGUIEditBox::breakText() s32 whitelgth = font->getDimension(whitespace.c_str()).Width; s32 worldlgth = font->getDimension(word.c_str()).Width; - if (WordWrap && length + worldlgth + whitelgth > elWidth) + if (m_word_wrap && length + worldlgth + whitelgth > elWidth) { // break to next line length = worldlgth; @@ -1260,14 +1154,14 @@ void intlGUIEditBox::setTextRect(s32 line) if (!skin) return; - IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont(); + IGUIFont* font = m_override_font ? m_override_font : skin->getFont(); if (!font) return; // get text dimension - const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1; - if (WordWrap || MultiLine) + const u32 lineCount = (m_word_wrap || m_multiline) ? BrokenText.size() : 1; + if (m_word_wrap || m_multiline) { d = font->getDimension(BrokenText[line].c_str()); } @@ -1328,7 +1222,7 @@ void intlGUIEditBox::setTextRect(s32 line) s32 intlGUIEditBox::getLineFromPos(s32 pos) { - if (!WordWrap && !MultiLine) + if (!m_word_wrap && !m_multiline) return 0; s32 i=0; @@ -1387,7 +1281,7 @@ void intlGUIEditBox::inputChar(wchar_t c) void intlGUIEditBox::calculateScrollPos() { - if (!AutoScroll) + if (!m_autoscroll) return; // calculate horizontal scroll position @@ -1395,18 +1289,18 @@ void intlGUIEditBox::calculateScrollPos() setTextRect(cursLine); // don't do horizontal scrolling when wordwrap is enabled. - if (!WordWrap) + if (!m_word_wrap) { // get cursor position IGUISkin* skin = Environment->getSkin(); if (!skin) return; - IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont(); + IGUIFont* font = m_override_font ? m_override_font : skin->getFont(); if (!font) return; - core::stringw *txtLine = MultiLine ? &BrokenText[cursLine] : &Text; - s32 cPos = MultiLine ? CursorPos - BrokenTextPositions[cursLine] : CursorPos; + core::stringw *txtLine = m_multiline ? &BrokenText[cursLine] : &Text; + s32 cPos = m_multiline ? CursorPos - BrokenTextPositions[cursLine] : CursorPos; s32 cStart = CurrentTextRect.UpperLeftCorner.X + HScrollPos + font->getDimension(txtLine->subString(0, cPos).c_str()).Width; @@ -1423,7 +1317,7 @@ void intlGUIEditBox::calculateScrollPos() // todo: adjust scrollbar } - if (!WordWrap && !MultiLine) + if (!m_word_wrap && !m_multiline) return; // vertical scroll position @@ -1468,8 +1362,8 @@ void intlGUIEditBox::createVScrollBar() { s32 fontHeight = 1; - if (OverrideFont) { - fontHeight = OverrideFont->getDimension(L"").Height; + if (m_override_font) { + fontHeight = m_override_font->getDimension(L"").Height; } else { if (IGUISkin* skin = Environment->getSkin()) { if (IGUIFont* font = skin->getFont()) { @@ -1520,7 +1414,7 @@ void intlGUIEditBox::updateVScrollBar() m_vscrollbar->setPageSize(s32(getTextDimension().Height)); } - if (!m_vscrollbar->isVisible() && MultiLine) { + if (!m_vscrollbar->isVisible() && m_multiline) { AbsoluteRect.LowerRightCorner.X -= m_scrollbar_width; m_vscrollbar->setVisible(true); @@ -1548,20 +1442,20 @@ void intlGUIEditBox::serializeAttributes(io::IAttributes* out, io::SAttributeRea { // IGUIEditBox::serializeAttributes(out,options); - out->addBool ("OverrideColorEnabled",OverrideColorEnabled ); - out->addColor ("OverrideColor", OverrideColor); - // out->addFont("OverrideFont",OverrideFont); - out->addInt ("MaxChars", Max); - out->addBool ("WordWrap", WordWrap); - out->addBool ("MultiLine", MultiLine); - out->addBool ("AutoScroll", AutoScroll); - out->addBool ("PasswordBox", PasswordBox); + out->addBool ("OverrideColorEnabled", m_override_color_enabled ); + out->addColor ("OverrideColor", m_override_color); + // out->addFont("OverrideFont",m_override_font); + out->addInt ("MaxChars", Max); + out->addBool ("WordWrap", m_word_wrap); + out->addBool ("MultiLine", m_multiline); + out->addBool ("AutoScroll", m_autoscroll); + out->addBool ("PasswordBox", PasswordBox); core::stringw ch = L" "; ch[0] = PasswordChar; - out->addString("PasswordChar", ch.c_str()); - out->addEnum ("HTextAlign", HAlign, GUIAlignmentNames); - out->addEnum ("VTextAlign", VAlign, GUIAlignmentNames); - out->addBool ("Writable", m_writable); + out->addString("PasswordChar", ch.c_str()); + out->addEnum ("HTextAlign", HAlign, GUIAlignmentNames); + out->addEnum ("VTextAlign", VAlign, GUIAlignmentNames); + out->addBool ("Writable", m_writable); IGUIEditBox::serializeAttributes(out,options); } diff --git a/src/gui/intlGUIEditBox.h b/src/gui/intlGUIEditBox.h index 9d643495e..a1e423aa2 100644 --- a/src/gui/intlGUIEditBox.h +++ b/src/gui/intlGUIEditBox.h @@ -7,16 +7,15 @@ #include "IrrCompileConfig.h" //#ifdef _IRR_COMPILE_WITH_GUI_ -#include +#include "guiEditBox.h" #include "irrArray.h" #include "IOSOperator.h" -#include "guiScrollBar.h" namespace irr { namespace gui { - class intlGUIEditBox : public IGUIEditBox + class intlGUIEditBox : public GUIEditBox { public: @@ -28,32 +27,6 @@ namespace gui //! destructor virtual ~intlGUIEditBox(); - //! Sets another skin independent font. - virtual void setOverrideFont(IGUIFont* font=0); - - //! Gets the override font (if any) - /** \return The override font (may be 0) */ - virtual IGUIFont* getOverrideFont() const; - - //! Get the font which is used right now for drawing - /** Currently this is the override font when one is set and the - font of the active skin otherwise */ - virtual IGUIFont* getActiveFont() const; - - //! Sets another color for the text. - virtual void setOverrideColor(video::SColor color); - - //! Gets the override color - virtual video::SColor getOverrideColor() const; - - //! Sets if the text should use the overide color or the - //! color in the gui skin. - virtual void enableOverrideColor(bool enable); - - //! Checks if an override color is enabled - /** \return true if the override color is enabled, false otherwise */ - virtual bool isOverrideColorEnabled(void) const; - //! Sets whether to draw the background virtual void setDrawBackground(bool draw); @@ -64,30 +37,6 @@ namespace gui virtual bool isDrawBorderEnabled() const { return Border; } - //! Enables or disables word wrap for using the edit box as multiline text editor. - virtual void setWordWrap(bool enable); - - //! Checks if word wrap is enabled - //! \return true if word wrap is enabled, false otherwise - virtual bool isWordWrapEnabled() const; - - //! Enables or disables newlines. - /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired, - instead a newline character will be inserted. */ - virtual void setMultiLine(bool enable); - - //! Checks if multi line editing is enabled - //! \return true if mult-line is enabled, false otherwise - virtual bool isMultiLineEnabled() const; - - //! Enables or disables automatic scrolling with cursor position - //! \param enable: If set to true, the text will move around with the cursor position - virtual void setAutoScroll(bool enable); - - //! Checks to see if automatic scrolling is enabled - //! \return true if automatic scrolling is enabled, false if not - virtual bool isAutoScrollEnabled() const; - //! Gets the size area of the text in the edit box //! \return Returns the size in pixels of the text virtual core::dimension2du getTextDimension(); @@ -143,7 +92,7 @@ namespace gui protected: //! Breaks the single text line. - void breakText(); + virtual void breakText(); //! sets the area of the given line void setTextRect(s32 line); //! returns the line number that the cursor is on @@ -169,12 +118,9 @@ namespace gui bool MouseMarking = false; bool Border; - bool OverrideColorEnabled = false; s32 MarkBegin = 0; s32 MarkEnd = 0; - video::SColor OverrideColor = video::SColor(101,255,255,255); - gui::IGUIFont *OverrideFont = nullptr; gui::IGUIFont *LastBreakFont = nullptr; IOSOperator *Operator = nullptr; @@ -184,9 +130,6 @@ namespace gui s32 VScrollPos = 0; // scroll position in characters u32 Max = 0; - bool WordWrap = false; - bool MultiLine = false; - bool AutoScroll = true; bool PasswordBox = false; wchar_t PasswordChar = L'*'; EGUI_ALIGNMENT HAlign = EGUIA_UPPERLEFT; From 5fcc78a1feeffbc1a4fdd1cfffb49451694786d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Blot?= Date: Thu, 7 Jan 2021 13:21:12 +0100 Subject: [PATCH 337/624] Refactor/gui editbox (#10787) --- src/gui/guiEditBox.cpp | 724 +++++++++++++++++++ src/gui/guiEditBox.h | 114 ++- src/gui/guiEditBoxWithScrollbar.cpp | 690 +----------------- src/gui/guiEditBoxWithScrollbar.h | 80 +-- src/gui/intlGUIEditBox.cpp | 1010 ++++----------------------- src/gui/intlGUIEditBox.h | 84 +-- 6 files changed, 964 insertions(+), 1738 deletions(-) diff --git a/src/gui/guiEditBox.cpp b/src/gui/guiEditBox.cpp index 159bd38ac..11d080be9 100644 --- a/src/gui/guiEditBox.cpp +++ b/src/gui/guiEditBox.cpp @@ -23,10 +23,18 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "IGUIEnvironment.h" #include "IGUIFont.h" +#include "porting.h" + GUIEditBox::~GUIEditBox() { if (m_override_font) m_override_font->drop(); + + if (m_operator) + m_operator->drop(); + + if (m_vscrollbar) + m_vscrollbar->drop(); } void GUIEditBox::setOverrideFont(IGUIFont *font) @@ -93,3 +101,719 @@ void GUIEditBox::setAutoScroll(bool enable) { m_autoscroll = enable; } + +void GUIEditBox::setPasswordBox(bool password_box, wchar_t password_char) +{ + m_passwordbox = password_box; + if (m_passwordbox) { + m_passwordchar = password_char; + setMultiLine(false); + setWordWrap(false); + m_broken_text.clear(); + } +} + +//! Sets text justification +void GUIEditBox::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical) +{ + m_halign = horizontal; + m_valign = vertical; +} + +//! Sets the new caption of this element. +void GUIEditBox::setText(const wchar_t *text) +{ + Text = text; + if (u32(m_cursor_pos) > Text.size()) + m_cursor_pos = Text.size(); + m_hscroll_pos = 0; + breakText(); +} + +//! Sets the maximum amount of characters which may be entered in the box. +//! \param max: Maximum amount of characters. If 0, the character amount is +//! infinity. +void GUIEditBox::setMax(u32 max) +{ + m_max = max; + + if (Text.size() > m_max && m_max != 0) + Text = Text.subString(0, m_max); +} + +//! Gets the area of the text in the edit box +//! \return Returns the size in pixels of the text +core::dimension2du GUIEditBox::getTextDimension() +{ + core::rect ret; + + setTextRect(0); + ret = m_current_text_rect; + + for (u32 i = 1; i < m_broken_text.size(); ++i) { + setTextRect(i); + ret.addInternalPoint(m_current_text_rect.UpperLeftCorner); + ret.addInternalPoint(m_current_text_rect.LowerRightCorner); + } + + return core::dimension2du(ret.getSize()); +} + +//! Turns the border on or off +void GUIEditBox::setDrawBorder(bool border) +{ + m_border = border; +} + +void GUIEditBox::setWritable(bool can_write_text) +{ + m_writable = can_write_text; +} + +//! set text markers +void GUIEditBox::setTextMarkers(s32 begin, s32 end) +{ + if (begin != m_mark_begin || end != m_mark_end) { + m_mark_begin = begin; + m_mark_end = end; + sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED); + } +} + +//! send some gui event to parent +void GUIEditBox::sendGuiEvent(EGUI_EVENT_TYPE type) +{ + if (Parent) { + SEvent e; + e.EventType = EET_GUI_EVENT; + e.GUIEvent.Caller = this; + e.GUIEvent.Element = 0; + e.GUIEvent.EventType = type; + + Parent->OnEvent(e); + } +} + +//! called if an event happened. +bool GUIEditBox::OnEvent(const SEvent &event) +{ + if (isEnabled()) { + + switch (event.EventType) { + case EET_GUI_EVENT: + if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) { + if (event.GUIEvent.Caller == this) { + m_mouse_marking = false; + setTextMarkers(0, 0); + } + } + break; + case EET_KEY_INPUT_EVENT: { +#if (defined(__linux__) || defined(__FreeBSD__)) || defined(__DragonFly__) + // ################################################################ + // ValkaTR: + // This part is the difference from the original intlGUIEditBox + // It converts UTF-8 character into a UCS-2 (wchar_t) + wchar_t wc = L'_'; + mbtowc(&wc, (char *)&event.KeyInput.Char, + sizeof(event.KeyInput.Char)); + + // printf( "char: %lc (%u) \r\n", wc, wc ); + + SEvent irrevent(event); + irrevent.KeyInput.Char = wc; + // ################################################################ + + if (processKey(irrevent)) + return true; +#else + if (processKey(event)) + return true; +#endif // defined(linux) + + break; + } + case EET_MOUSE_INPUT_EVENT: + if (processMouse(event)) + return true; + break; + default: + break; + } + } + + return IGUIElement::OnEvent(event); +} + +bool GUIEditBox::processKey(const SEvent &event) +{ + if (!m_writable) { + return false; + } + + if (!event.KeyInput.PressedDown) + return false; + + bool text_changed = false; + s32 new_mark_begin = m_mark_begin; + s32 new_mark_end = m_mark_end; + + // control shortcut handling + if (event.KeyInput.Control) { + + // german backlash '\' entered with control + '?' + if (event.KeyInput.Char == '\\') { + inputChar(event.KeyInput.Char); + return true; + } + + switch (event.KeyInput.Key) { + case KEY_KEY_A: + // select all + new_mark_begin = 0; + new_mark_end = Text.size(); + break; + case KEY_KEY_C: + onKeyControlC(event); + break; + case KEY_KEY_X: + text_changed = onKeyControlX(event, new_mark_begin, new_mark_end); + break; + case KEY_KEY_V: + text_changed = onKeyControlV(event, new_mark_begin, new_mark_end); + break; + case KEY_HOME: + // move/highlight to start of text + if (event.KeyInput.Shift) { + new_mark_end = m_cursor_pos; + new_mark_begin = 0; + m_cursor_pos = 0; + } else { + m_cursor_pos = 0; + new_mark_begin = 0; + new_mark_end = 0; + } + break; + case KEY_END: + // move/highlight to end of text + if (event.KeyInput.Shift) { + new_mark_begin = m_cursor_pos; + new_mark_end = Text.size(); + m_cursor_pos = 0; + } else { + m_cursor_pos = Text.size(); + new_mark_begin = 0; + new_mark_end = 0; + } + break; + default: + return false; + } + } else { + switch (event.KeyInput.Key) { + case KEY_END: { + s32 p = Text.size(); + if (m_word_wrap || m_multiline) { + p = getLineFromPos(m_cursor_pos); + p = m_broken_text_positions[p] + + (s32)m_broken_text[p].size(); + if (p > 0 && (Text[p - 1] == L'\r' || + Text[p - 1] == L'\n')) + p -= 1; + } + + if (event.KeyInput.Shift) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + + new_mark_end = p; + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + m_cursor_pos = p; + m_blink_start_time = porting::getTimeMs(); + } break; + case KEY_HOME: { + + s32 p = 0; + if (m_word_wrap || m_multiline) { + p = getLineFromPos(m_cursor_pos); + p = m_broken_text_positions[p]; + } + + if (event.KeyInput.Shift) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + new_mark_end = p; + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + m_cursor_pos = p; + m_blink_start_time = porting::getTimeMs(); + } break; + case KEY_RETURN: + if (m_multiline) { + inputChar(L'\n'); + } else { + calculateScrollPos(); + sendGuiEvent(EGET_EDITBOX_ENTER); + } + return true; + case KEY_LEFT: + if (event.KeyInput.Shift) { + if (m_cursor_pos > 0) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + + new_mark_end = m_cursor_pos - 1; + } + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + + if (m_cursor_pos > 0) + m_cursor_pos--; + m_blink_start_time = porting::getTimeMs(); + break; + case KEY_RIGHT: + if (event.KeyInput.Shift) { + if (Text.size() > (u32)m_cursor_pos) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + + new_mark_end = m_cursor_pos + 1; + } + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + + if (Text.size() > (u32)m_cursor_pos) + m_cursor_pos++; + m_blink_start_time = porting::getTimeMs(); + break; + case KEY_UP: + if (!onKeyUp(event, new_mark_begin, new_mark_end)) { + return false; + } + break; + case KEY_DOWN: + if (!onKeyDown(event, new_mark_begin, new_mark_end)) { + return false; + } + break; + case KEY_BACK: + text_changed = onKeyBack(event, new_mark_begin, new_mark_end); + break; + + case KEY_DELETE: + text_changed = onKeyDelete(event, new_mark_begin, new_mark_end); + break; + + case KEY_ESCAPE: + case KEY_TAB: + case KEY_SHIFT: + case KEY_F1: + case KEY_F2: + case KEY_F3: + case KEY_F4: + case KEY_F5: + case KEY_F6: + case KEY_F7: + case KEY_F8: + case KEY_F9: + case KEY_F10: + case KEY_F11: + case KEY_F12: + case KEY_F13: + case KEY_F14: + case KEY_F15: + case KEY_F16: + case KEY_F17: + case KEY_F18: + case KEY_F19: + case KEY_F20: + case KEY_F21: + case KEY_F22: + case KEY_F23: + case KEY_F24: + // ignore these keys + return false; + + default: + inputChar(event.KeyInput.Char); + return true; + } + } + + // Set new text markers + setTextMarkers(new_mark_begin, new_mark_end); + + // break the text if it has changed + if (text_changed) { + breakText(); + sendGuiEvent(EGET_EDITBOX_CHANGED); + } + + calculateScrollPos(); + + return true; +} + +bool GUIEditBox::onKeyUp(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + // clang-format off + if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { + s32 lineNo = getLineFromPos(m_cursor_pos); + s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : + (m_mark_begin > m_mark_end ? m_mark_begin : m_mark_end); + if (lineNo > 0) { + s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; + if ((s32)m_broken_text[lineNo - 1].size() < cp) { + m_cursor_pos = m_broken_text_positions[lineNo - 1] + + core::max_((u32)1, m_broken_text[lineNo - 1].size()) - 1; + } + else + m_cursor_pos = m_broken_text_positions[lineNo - 1] + cp; + } + + if (event.KeyInput.Shift) { + mark_begin = mb; + mark_end = m_cursor_pos; + } else { + mark_begin = 0; + mark_end = 0; + } + + return true; + } + + // clang-format on + return false; +} + +bool GUIEditBox::onKeyDown(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + // clang-format off + if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { + s32 lineNo = getLineFromPos(m_cursor_pos); + s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : + (m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end); + if (lineNo < (s32)m_broken_text.size() - 1) { + s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; + if ((s32)m_broken_text[lineNo + 1].size() < cp) { + m_cursor_pos = m_broken_text_positions[lineNo + 1] + + core::max_((u32)1, m_broken_text[lineNo + 1].size()) - 1; + } + else + m_cursor_pos = m_broken_text_positions[lineNo + 1] + cp; + } + + if (event.KeyInput.Shift) { + mark_begin = mb; + mark_end = m_cursor_pos; + } else { + mark_begin = 0; + mark_end = 0; + } + + return true; + } + + // clang-format on + return false; +} + +void GUIEditBox::onKeyControlC(const SEvent &event) +{ + // copy to clipboard + if (m_passwordbox || !m_operator || m_mark_begin == m_mark_end) + return; + + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + core::stringc s; + s = Text.subString(realmbgn, realmend - realmbgn).c_str(); + m_operator->copyToClipboard(s.c_str()); +} + +bool GUIEditBox::onKeyControlX(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + // First copy to clipboard + onKeyControlC(event); + + if (m_passwordbox || !m_operator || m_mark_begin == m_mark_end) + return false; + + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + // Now remove from box if enabled + if (isEnabled()) { + // delete + core::stringw s; + s = Text.subString(0, realmbgn); + s.append(Text.subString(realmend, Text.size() - realmend)); + Text = s; + + m_cursor_pos = realmbgn; + mark_begin = 0; + mark_end = 0; + return true; + } + + return false; +} + +bool GUIEditBox::onKeyControlV(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + if (!isEnabled()) + return false; + + // paste from the clipboard + if (!m_operator) + return false; + + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + // add new character + if (const c8 *p = m_operator->getTextFromClipboard()) { + if (m_mark_begin == m_mark_end) { + // insert text + core::stringw s = Text.subString(0, m_cursor_pos); + s.append(p); + s.append(Text.subString( + m_cursor_pos, Text.size() - m_cursor_pos)); + + if (!m_max || s.size() <= m_max) { + Text = s; + s = p; + m_cursor_pos += s.size(); + } + } else { + // replace text + + core::stringw s = Text.subString(0, realmbgn); + s.append(p); + s.append(Text.subString(realmend, Text.size() - realmend)); + + if (!m_max || s.size() <= m_max) { + Text = s; + s = p; + m_cursor_pos = realmbgn + s.size(); + } + } + } + + mark_begin = 0; + mark_end = 0; + return true; +} + +bool GUIEditBox::onKeyBack(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + if (!isEnabled() || Text.empty()) + return false; + + core::stringw s; + + if (m_mark_begin != m_mark_end) { + // delete marked text + const s32 realmbgn = + m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = + m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + s = Text.subString(0, realmbgn); + s.append(Text.subString(realmend, Text.size() - realmend)); + Text = s; + + m_cursor_pos = realmbgn; + } else { + // delete text behind cursor + if (m_cursor_pos > 0) + s = Text.subString(0, m_cursor_pos - 1); + else + s = L""; + s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos)); + Text = s; + --m_cursor_pos; + } + + if (m_cursor_pos < 0) + m_cursor_pos = 0; + m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); + mark_begin = 0; + mark_end = 0; + return true; +} + +bool GUIEditBox::onKeyDelete(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + if (!isEnabled() || Text.empty()) + return false; + + core::stringw s; + + if (m_mark_begin != m_mark_end) { + // delete marked text + const s32 realmbgn = + m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = + m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + s = Text.subString(0, realmbgn); + s.append(Text.subString(realmend, Text.size() - realmend)); + Text = s; + + m_cursor_pos = realmbgn; + } else { + // delete text before cursor + s = Text.subString(0, m_cursor_pos); + s.append(Text.subString( + m_cursor_pos + 1, Text.size() - m_cursor_pos - 1)); + Text = s; + } + + if (m_cursor_pos > (s32)Text.size()) + m_cursor_pos = (s32)Text.size(); + + m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); + mark_begin = 0; + mark_end = 0; + return true; +} + +bool GUIEditBox::processMouse(const SEvent &event) +{ + switch (event.MouseInput.Event) { + case irr::EMIE_LMOUSE_LEFT_UP: + if (Environment->hasFocus(this)) { + m_cursor_pos = getCursorPos( + event.MouseInput.X, event.MouseInput.Y); + if (m_mouse_marking) { + setTextMarkers(m_mark_begin, m_cursor_pos); + } + m_mouse_marking = false; + calculateScrollPos(); + return true; + } + break; + case irr::EMIE_MOUSE_MOVED: { + if (m_mouse_marking) { + m_cursor_pos = getCursorPos( + event.MouseInput.X, event.MouseInput.Y); + setTextMarkers(m_mark_begin, m_cursor_pos); + calculateScrollPos(); + return true; + } + } break; + case EMIE_LMOUSE_PRESSED_DOWN: + + if (!Environment->hasFocus(this)) { + m_blink_start_time = porting::getTimeMs(); + m_mouse_marking = true; + m_cursor_pos = getCursorPos( + event.MouseInput.X, event.MouseInput.Y); + setTextMarkers(m_cursor_pos, m_cursor_pos); + calculateScrollPos(); + return true; + } else { + if (!AbsoluteClippingRect.isPointInside(core::position2d( + event.MouseInput.X, event.MouseInput.Y))) { + return false; + } else { + // move cursor + m_cursor_pos = getCursorPos( + event.MouseInput.X, event.MouseInput.Y); + + s32 newMarkBegin = m_mark_begin; + if (!m_mouse_marking) + newMarkBegin = m_cursor_pos; + + m_mouse_marking = true; + setTextMarkers(newMarkBegin, m_cursor_pos); + calculateScrollPos(); + return true; + } + } + case EMIE_MOUSE_WHEEL: + if (m_vscrollbar && m_vscrollbar->isVisible()) { + s32 pos = m_vscrollbar->getPos(); + s32 step = m_vscrollbar->getSmallStep(); + m_vscrollbar->setPos(pos - event.MouseInput.Wheel * step); + } + break; + default: + break; + } + + return false; +} + +s32 GUIEditBox::getLineFromPos(s32 pos) +{ + if (!m_word_wrap && !m_multiline) + return 0; + + s32 i = 0; + while (i < (s32)m_broken_text_positions.size()) { + if (m_broken_text_positions[i] > pos) + return i - 1; + ++i; + } + return (s32)m_broken_text_positions.size() - 1; +} + +void GUIEditBox::updateVScrollBar() +{ + if (!m_vscrollbar) { + return; + } + + // OnScrollBarChanged(...) + if (m_vscrollbar->getPos() != m_vscroll_pos) { + s32 deltaScrollY = m_vscrollbar->getPos() - m_vscroll_pos; + m_current_text_rect.UpperLeftCorner.Y -= deltaScrollY; + m_current_text_rect.LowerRightCorner.Y -= deltaScrollY; + + s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight(); + if (scrollymax != m_vscrollbar->getMax()) { + // manage a newline or a deleted line + m_vscrollbar->setMax(scrollymax); + m_vscrollbar->setPageSize(s32(getTextDimension().Height)); + calculateScrollPos(); + } else { + // manage a newline or a deleted line + m_vscroll_pos = m_vscrollbar->getPos(); + } + } + + // check if a vertical scrollbar is needed ? + if (getTextDimension().Height > (u32)m_frame_rect.getHeight()) { + m_frame_rect.LowerRightCorner.X -= m_scrollbar_width; + + s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight(); + if (scrollymax != m_vscrollbar->getMax()) { + m_vscrollbar->setMax(scrollymax); + m_vscrollbar->setPageSize(s32(getTextDimension().Height)); + } + + if (!m_vscrollbar->isVisible()) { + m_vscrollbar->setVisible(true); + } + } else { + if (m_vscrollbar->isVisible()) { + m_vscrollbar->setVisible(false); + m_vscroll_pos = 0; + m_vscrollbar->setPos(0); + m_vscrollbar->setMax(1); + m_vscrollbar->setPageSize(s32(getTextDimension().Height)); + } + } +} diff --git a/src/gui/guiEditBox.h b/src/gui/guiEditBox.h index c673f2f5f..3e41c7e51 100644 --- a/src/gui/guiEditBox.h +++ b/src/gui/guiEditBox.h @@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "IGUIEditBox.h" #include "IOSOperator.h" #include "guiScrollBar.h" +#include using namespace irr; using namespace irr::gui; @@ -30,8 +31,9 @@ class GUIEditBox : public IGUIEditBox { public: GUIEditBox(IGUIEnvironment *environment, IGUIElement *parent, s32 id, - core::rect rectangle) : - IGUIEditBox(environment, parent, id, rectangle) + core::rect rectangle, bool border, bool writable) : + IGUIEditBox(environment, parent, id, rectangle), + m_border(border), m_writable(writable), m_frame_rect(rectangle) { } @@ -71,6 +73,11 @@ public: //! \return true if word wrap is enabled, false otherwise virtual bool isWordWrapEnabled() const { return m_word_wrap; } + //! Turns the border on or off + virtual void setDrawBorder(bool border); + + virtual bool isDrawBorderEnabled() const { return m_border; } + //! Enables or disables newlines. /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired, instead a newline character will be inserted. */ @@ -89,9 +96,65 @@ public: //! \return true if automatic scrolling is enabled, false if not virtual bool isAutoScrollEnabled() const { return m_autoscroll; } + //! Sets whether the edit box is a password box. Setting this to true will + /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x + \param passwordBox: true to enable password, false to disable + \param passwordChar: the character that is displayed instead of letters */ + virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*'); + + //! Returns true if the edit box is currently a password box. + virtual bool isPasswordBox() const { return m_passwordbox; } + + //! Sets text justification + virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical); + + //! Sets the new caption of this element. + virtual void setText(const wchar_t *text); + + //! Sets the maximum amount of characters which may be entered in the box. + //! \param max: Maximum amount of characters. If 0, the character amount is + //! infinity. + virtual void setMax(u32 max); + + //! Returns maximum amount of characters, previously set by setMax(); + virtual u32 getMax() const { return m_max; } + + //! Gets the size area of the text in the edit box + //! \return Returns the size in pixels of the text + virtual core::dimension2du getTextDimension(); + + //! set true if this EditBox is writable + virtual void setWritable(bool can_write_text); + + //! called if an event happened. + virtual bool OnEvent(const SEvent &event); + protected: virtual void breakText() = 0; + //! sets the area of the given line + virtual void setTextRect(s32 line) = 0; + + //! set text markers + void setTextMarkers(s32 begin, s32 end); + + //! send some gui event to parent + void sendGuiEvent(EGUI_EVENT_TYPE type); + + //! calculates the current scroll position + virtual void calculateScrollPos() = 0; + + virtual s32 getCursorPos(s32 x, s32 y) = 0; + + bool processKey(const SEvent &event); + virtual void inputChar(wchar_t c) = 0; + + //! returns the line number that the cursor is on + s32 getLineFromPos(s32 pos); + + //! update the vertical scrollBar (visibilty & position) + void updateVScrollBar(); + gui::IGUIFont *m_override_font = nullptr; bool m_override_color_enabled = false; @@ -99,5 +162,50 @@ protected: bool m_multiline = false; bool m_autoscroll = true; + bool m_border; + + bool m_passwordbox = false; + wchar_t m_passwordchar = L'*'; + + std::vector m_broken_text; + std::vector m_broken_text_positions; + + EGUI_ALIGNMENT m_halign = EGUIA_UPPERLEFT; + EGUI_ALIGNMENT m_valign = EGUIA_CENTER; + + u32 m_blink_start_time = 0; + s32 m_cursor_pos = 0; + s32 m_hscroll_pos = 0; + s32 m_vscroll_pos = 0; // scroll position in characters + u32 m_max = 0; + video::SColor m_override_color = video::SColor(101, 255, 255, 255); -}; \ No newline at end of file + + core::rect m_current_text_rect = core::rect(0, 0, 1, 1); + + bool m_writable; + + bool m_mouse_marking = false; + + s32 m_mark_begin = 0; + s32 m_mark_end = 0; + + gui::IGUIFont *m_last_break_font = nullptr; + IOSOperator *m_operator = nullptr; + + core::rect m_frame_rect; // temporary values + + u32 m_scrollbar_width = 0; + GUIScrollBar *m_vscrollbar = nullptr; + +private: + bool processMouse(const SEvent &event); + + bool onKeyUp(const SEvent &event, s32 &mark_begin, s32 &mark_end); + bool onKeyDown(const SEvent &event, s32 &mark_begin, s32 &mark_end); + void onKeyControlC(const SEvent &event); + bool onKeyControlX(const SEvent &event, s32 &mark_begin, s32 &mark_end); + bool onKeyControlV(const SEvent &event, s32 &mark_begin, s32 &mark_end); + bool onKeyBack(const SEvent &event, s32 &mark_begin, s32 &mark_end); + bool onKeyDelete(const SEvent &event, s32 &mark_begin, s32 &mark_end); +}; diff --git a/src/gui/guiEditBoxWithScrollbar.cpp b/src/gui/guiEditBoxWithScrollbar.cpp index 7f9fdafd7..707dbb7db 100644 --- a/src/gui/guiEditBoxWithScrollbar.cpp +++ b/src/gui/guiEditBoxWithScrollbar.cpp @@ -26,14 +26,8 @@ numerical GUIEditBoxWithScrollBar::GUIEditBoxWithScrollBar(const wchar_t* text, bool border, IGUIEnvironment* environment, IGUIElement* parent, s32 id, const core::rect& rectangle, bool writable, bool has_vscrollbar) - : GUIEditBox(environment, parent, id, rectangle), m_mouse_marking(false), - m_border(border), m_background(true), m_mark_begin(0), m_mark_end(0), m_last_break_font(0), - m_operator(0), m_blink_start_time(0), m_cursor_pos(0), m_hscroll_pos(0), m_vscroll_pos(0), m_max(0), - m_passwordbox(false), - m_passwordchar(L'*'), m_halign(EGUIA_UPPERLEFT), m_valign(EGUIA_CENTER), - m_current_text_rect(0, 0, 1, 1), m_frame_rect(rectangle), - m_scrollbar_width(0), m_vscrollbar(NULL), m_writable(writable), - m_bg_color_used(false) + : GUIEditBox(environment, parent, id, rectangle, border, writable), + m_background(true), m_bg_color_used(false) { #ifdef _DEBUG setDebugName("GUIEditBoxWithScrollBar"); @@ -63,24 +57,6 @@ GUIEditBoxWithScrollBar::GUIEditBoxWithScrollBar(const wchar_t* text, bool borde setWritable(writable); } - -//! destructor -GUIEditBoxWithScrollBar::~GUIEditBoxWithScrollBar() -{ - if (m_operator) - m_operator->drop(); - - if (m_vscrollbar) - m_vscrollbar->drop(); -} - - -//! Turns the border on or off -void GUIEditBoxWithScrollBar::setDrawBorder(bool border) -{ - m_border = border; -} - //! Sets whether to draw the background void GUIEditBoxWithScrollBar::setDrawBackground(bool draw) { @@ -100,466 +76,6 @@ void GUIEditBoxWithScrollBar::updateAbsolutePosition() } -void GUIEditBoxWithScrollBar::setPasswordBox(bool password_box, wchar_t password_char) -{ - m_passwordbox = password_box; - if (m_passwordbox) { - m_passwordchar = password_char; - setMultiLine(false); - setWordWrap(false); - m_broken_text.clear(); - } -} - - -bool GUIEditBoxWithScrollBar::isPasswordBox() const -{ - return m_passwordbox; -} - - -//! Sets text justification -void GUIEditBoxWithScrollBar::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical) -{ - m_halign = horizontal; - m_valign = vertical; -} - - -//! called if an event happened. -bool GUIEditBoxWithScrollBar::OnEvent(const SEvent& event) -{ - if (isEnabled()) { - switch (event.EventType) - { - case EET_GUI_EVENT: - if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) { - if (event.GUIEvent.Caller == this) { - m_mouse_marking = false; - setTextMarkers(0, 0); - } - } - break; - case EET_KEY_INPUT_EVENT: - if (processKey(event)) - return true; - break; - case EET_MOUSE_INPUT_EVENT: - if (processMouse(event)) - return true; - break; - default: - break; - } - } - - return IGUIElement::OnEvent(event); -} - - -bool GUIEditBoxWithScrollBar::processKey(const SEvent& event) -{ - if (!m_writable) { - return false; - } - - if (!event.KeyInput.PressedDown) - return false; - - bool text_changed = false; - s32 new_mark_begin = m_mark_begin; - s32 new_mark_end = m_mark_end; - - // control shortcut handling - - if (event.KeyInput.Control) { - - // german backlash '\' entered with control + '?' - if (event.KeyInput.Char == '\\') { - inputChar(event.KeyInput.Char); - return true; - } - - switch (event.KeyInput.Key) { - case KEY_KEY_A: - // select all - new_mark_begin = 0; - new_mark_end = Text.size(); - break; - case KEY_KEY_C: - // copy to clipboard - if (!m_passwordbox && m_operator && m_mark_begin != m_mark_end) - { - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - core::stringc s; - s = Text.subString(realmbgn, realmend - realmbgn).c_str(); - m_operator->copyToClipboard(s.c_str()); - } - break; - case KEY_KEY_X: - // cut to the clipboard - if (!m_passwordbox && m_operator && m_mark_begin != m_mark_end) { - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - // copy - core::stringc sc; - sc = Text.subString(realmbgn, realmend - realmbgn).c_str(); - m_operator->copyToClipboard(sc.c_str()); - - if (isEnabled()) - { - // delete - core::stringw s; - s = Text.subString(0, realmbgn); - s.append(Text.subString(realmend, Text.size() - realmend)); - Text = s; - - m_cursor_pos = realmbgn; - new_mark_begin = 0; - new_mark_end = 0; - text_changed = true; - } - } - break; - case KEY_KEY_V: - if (!isEnabled()) - break; - - // paste from the clipboard - if (m_operator) { - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - // add new character - const c8* p = m_operator->getTextFromClipboard(); - if (p) { - if (m_mark_begin == m_mark_end) { - // insert text - core::stringw s = Text.subString(0, m_cursor_pos); - s.append(p); - s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos)); - - if (!m_max || s.size() <= m_max) // thx to Fish FH for fix - { - Text = s; - s = p; - m_cursor_pos += s.size(); - } - } else { - // replace text - - core::stringw s = Text.subString(0, realmbgn); - s.append(p); - s.append(Text.subString(realmend, Text.size() - realmend)); - - if (!m_max || s.size() <= m_max) // thx to Fish FH for fix - { - Text = s; - s = p; - m_cursor_pos = realmbgn + s.size(); - } - } - } - - new_mark_begin = 0; - new_mark_end = 0; - text_changed = true; - } - break; - case KEY_HOME: - // move/highlight to start of text - if (event.KeyInput.Shift) { - new_mark_end = m_cursor_pos; - new_mark_begin = 0; - m_cursor_pos = 0; - } else { - m_cursor_pos = 0; - new_mark_begin = 0; - new_mark_end = 0; - } - break; - case KEY_END: - // move/highlight to end of text - if (event.KeyInput.Shift) { - new_mark_begin = m_cursor_pos; - new_mark_end = Text.size(); - m_cursor_pos = 0; - } else { - m_cursor_pos = Text.size(); - new_mark_begin = 0; - new_mark_end = 0; - } - break; - default: - return false; - } - } - // default keyboard handling - else - switch (event.KeyInput.Key) { - case KEY_END: - { - s32 p = Text.size(); - if (m_word_wrap || m_multiline) { - p = getLineFromPos(m_cursor_pos); - p = m_broken_text_positions[p] + (s32)m_broken_text[p].size(); - if (p > 0 && (Text[p - 1] == L'\r' || Text[p - 1] == L'\n')) - p -= 1; - } - - if (event.KeyInput.Shift) { - if (m_mark_begin == m_mark_end) - new_mark_begin = m_cursor_pos; - - new_mark_end = p; - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - m_cursor_pos = p; - m_blink_start_time = porting::getTimeMs(); - } - break; - case KEY_HOME: - { - - s32 p = 0; - if (m_word_wrap || m_multiline) { - p = getLineFromPos(m_cursor_pos); - p = m_broken_text_positions[p]; - } - - if (event.KeyInput.Shift) { - if (m_mark_begin == m_mark_end) - new_mark_begin = m_cursor_pos; - new_mark_end = p; - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - m_cursor_pos = p; - m_blink_start_time = porting::getTimeMs(); - } - break; - case KEY_RETURN: - if (m_multiline) { - inputChar(L'\n'); - } else { - calculateScrollPos(); - sendGuiEvent(EGET_EDITBOX_ENTER); - } - return true; - case KEY_LEFT: - - if (event.KeyInput.Shift) { - if (m_cursor_pos > 0) { - if (m_mark_begin == m_mark_end) - new_mark_begin = m_cursor_pos; - - new_mark_end = m_cursor_pos - 1; - } - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - - if (m_cursor_pos > 0) - m_cursor_pos--; - m_blink_start_time = porting::getTimeMs(); - break; - - case KEY_RIGHT: - if (event.KeyInput.Shift) { - if (Text.size() > (u32)m_cursor_pos) { - if (m_mark_begin == m_mark_end) - new_mark_begin = m_cursor_pos; - - new_mark_end = m_cursor_pos + 1; - } - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - - if (Text.size() > (u32)m_cursor_pos) - m_cursor_pos++; - m_blink_start_time = porting::getTimeMs(); - break; - case KEY_UP: - if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { - s32 lineNo = getLineFromPos(m_cursor_pos); - s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : (m_mark_begin > m_mark_end ? m_mark_begin : m_mark_end); - if (lineNo > 0) { - s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; - if ((s32)m_broken_text[lineNo - 1].size() < cp) - m_cursor_pos = m_broken_text_positions[lineNo - 1] + core::max_((u32)1, m_broken_text[lineNo - 1].size()) - 1; - else - m_cursor_pos = m_broken_text_positions[lineNo - 1] + cp; - } - - if (event.KeyInput.Shift) { - new_mark_begin = mb; - new_mark_end = m_cursor_pos; - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - } else { - return false; - } - break; - case KEY_DOWN: - if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { - s32 lineNo = getLineFromPos(m_cursor_pos); - s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : (m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end); - if (lineNo < (s32)m_broken_text.size() - 1) - { - s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; - if ((s32)m_broken_text[lineNo + 1].size() < cp) - m_cursor_pos = m_broken_text_positions[lineNo + 1] + core::max_((u32)1, m_broken_text[lineNo + 1].size()) - 1; - else - m_cursor_pos = m_broken_text_positions[lineNo + 1] + cp; - } - - if (event.KeyInput.Shift) { - new_mark_begin = mb; - new_mark_end = m_cursor_pos; - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - - } else { - return false; - } - break; - - case KEY_BACK: - if (!isEnabled()) - break; - - if (Text.size()) { - core::stringw s; - - if (m_mark_begin != m_mark_end) { - // delete marked text - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - s = Text.subString(0, realmbgn); - s.append(Text.subString(realmend, Text.size() - realmend)); - Text = s; - - m_cursor_pos = realmbgn; - } else { - // delete text behind cursor - if (m_cursor_pos > 0) - s = Text.subString(0, m_cursor_pos - 1); - else - s = L""; - s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos)); - Text = s; - --m_cursor_pos; - } - - if (m_cursor_pos < 0) - m_cursor_pos = 0; - m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); - new_mark_begin = 0; - new_mark_end = 0; - text_changed = true; - } - break; - case KEY_DELETE: - if (!isEnabled()) - break; - - if (Text.size() != 0) { - core::stringw s; - - if (m_mark_begin != m_mark_end) { - // delete marked text - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - s = Text.subString(0, realmbgn); - s.append(Text.subString(realmend, Text.size() - realmend)); - Text = s; - - m_cursor_pos = realmbgn; - } else { - // delete text before cursor - s = Text.subString(0, m_cursor_pos); - s.append(Text.subString(m_cursor_pos + 1, Text.size() - m_cursor_pos - 1)); - Text = s; - } - - if (m_cursor_pos > (s32)Text.size()) - m_cursor_pos = (s32)Text.size(); - - m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); - new_mark_begin = 0; - new_mark_end = 0; - text_changed = true; - } - break; - - case KEY_ESCAPE: - case KEY_TAB: - case KEY_SHIFT: - case KEY_F1: - case KEY_F2: - case KEY_F3: - case KEY_F4: - case KEY_F5: - case KEY_F6: - case KEY_F7: - case KEY_F8: - case KEY_F9: - case KEY_F10: - case KEY_F11: - case KEY_F12: - case KEY_F13: - case KEY_F14: - case KEY_F15: - case KEY_F16: - case KEY_F17: - case KEY_F18: - case KEY_F19: - case KEY_F20: - case KEY_F21: - case KEY_F22: - case KEY_F23: - case KEY_F24: - // ignore these keys - return false; - - default: - inputChar(event.KeyInput.Char); - return true; - } - - // Set new text markers - setTextMarkers(new_mark_begin, new_mark_end); - - // break the text if it has changed - if (text_changed) { - breakText(); - calculateScrollPos(); - sendGuiEvent(EGET_EDITBOX_CHANGED); - } - else - { - calculateScrollPos(); - } - - return true; -} - - //! draws the element and its children void GUIEditBoxWithScrollBar::draw() { @@ -748,115 +264,6 @@ void GUIEditBoxWithScrollBar::draw() } -//! Sets the new caption of this element. -void GUIEditBoxWithScrollBar::setText(const wchar_t* text) -{ - Text = text; - if (u32(m_cursor_pos) > Text.size()) - m_cursor_pos = Text.size(); - m_hscroll_pos = 0; - breakText(); -} - - -//! Gets the area of the text in the edit box -//! \return Returns the size in pixels of the text -core::dimension2du GUIEditBoxWithScrollBar::getTextDimension() -{ - core::rect ret; - - setTextRect(0); - ret = m_current_text_rect; - - for (u32 i = 1; i < m_broken_text.size(); ++i) { - setTextRect(i); - ret.addInternalPoint(m_current_text_rect.UpperLeftCorner); - ret.addInternalPoint(m_current_text_rect.LowerRightCorner); - } - - return core::dimension2du(ret.getSize()); -} - - -//! Sets the maximum amount of characters which may be entered in the box. -//! \param max: Maximum amount of characters. If 0, the character amount is -//! infinity. -void GUIEditBoxWithScrollBar::setMax(u32 max) -{ - m_max = max; - - if (Text.size() > m_max && m_max != 0) - Text = Text.subString(0, m_max); -} - - -//! Returns maximum amount of characters, previously set by setMax(); -u32 GUIEditBoxWithScrollBar::getMax() const -{ - return m_max; -} - - -bool GUIEditBoxWithScrollBar::processMouse(const SEvent& event) -{ - switch (event.MouseInput.Event) - { - case irr::EMIE_LMOUSE_LEFT_UP: - if (Environment->hasFocus(this)) { - m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - if (m_mouse_marking) { - setTextMarkers(m_mark_begin, m_cursor_pos); - } - m_mouse_marking = false; - calculateScrollPos(); - return true; - } - break; - case irr::EMIE_MOUSE_MOVED: - { - if (m_mouse_marking) { - m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - setTextMarkers(m_mark_begin, m_cursor_pos); - calculateScrollPos(); - return true; - } - } - break; - case EMIE_LMOUSE_PRESSED_DOWN: - - if (!Environment->hasFocus(this)) { - m_blink_start_time = porting::getTimeMs(); - m_mouse_marking = true; - m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - setTextMarkers(m_cursor_pos, m_cursor_pos); - calculateScrollPos(); - return true; - } else { - if (!AbsoluteClippingRect.isPointInside( - core::position2d(event.MouseInput.X, event.MouseInput.Y))) { - return false; - } else { - // move cursor - m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - - s32 newMarkBegin = m_mark_begin; - if (!m_mouse_marking) - newMarkBegin = m_cursor_pos; - - m_mouse_marking = true; - setTextMarkers(newMarkBegin, m_cursor_pos); - calculateScrollPos(); - return true; - } - } - default: - break; - } - - return false; -} - - s32 GUIEditBoxWithScrollBar::getCursorPos(s32 x, s32 y) { IGUIFont* font = getActiveFont(); @@ -1075,21 +482,6 @@ void GUIEditBoxWithScrollBar::setTextRect(s32 line) } -s32 GUIEditBoxWithScrollBar::getLineFromPos(s32 pos) -{ - if (!m_word_wrap && !m_multiline) - return 0; - - s32 i = 0; - while (i < (s32)m_broken_text_positions.size()) { - if (m_broken_text_positions[i] > pos) - return i - 1; - ++i; - } - return (s32)m_broken_text_positions.size() - 1; -} - - void GUIEditBoxWithScrollBar::inputChar(wchar_t c) { if (!isEnabled()) @@ -1259,30 +651,6 @@ void GUIEditBoxWithScrollBar::calculateFrameRect() updateVScrollBar(); } -//! set text markers -void GUIEditBoxWithScrollBar::setTextMarkers(s32 begin, s32 end) -{ - if (begin != m_mark_begin || end != m_mark_end) { - m_mark_begin = begin; - m_mark_end = end; - sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED); - } -} - -//! send some gui event to parent -void GUIEditBoxWithScrollBar::sendGuiEvent(EGUI_EVENT_TYPE type) -{ - if (Parent) { - SEvent e; - e.EventType = EET_GUI_EVENT; - e.GUIEvent.Caller = this; - e.GUIEvent.Element = 0; - e.GUIEvent.EventType = type; - - Parent->OnEvent(e); - } -} - //! create a vertical scroll bar void GUIEditBoxWithScrollBar::createVScrollBar() { @@ -1302,61 +670,7 @@ void GUIEditBoxWithScrollBar::createVScrollBar() m_vscrollbar->setLargeStep(1); } -void GUIEditBoxWithScrollBar::updateVScrollBar() -{ - if (!m_vscrollbar) { - return; - } - // OnScrollBarChanged(...) - if (m_vscrollbar->getPos() != m_vscroll_pos) { - s32 deltaScrollY = m_vscrollbar->getPos() - m_vscroll_pos; - m_current_text_rect.UpperLeftCorner.Y -= deltaScrollY; - m_current_text_rect.LowerRightCorner.Y -= deltaScrollY; - - s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - // manage a newline or a deleted line - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - calculateScrollPos(); - } else { - // manage a newline or a deleted line - m_vscroll_pos = m_vscrollbar->getPos(); - } - } - - // check if a vertical scrollbar is needed ? - if (getTextDimension().Height > (u32) m_frame_rect.getHeight()) { - m_frame_rect.LowerRightCorner.X -= m_scrollbar_width; - - s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - } - - if (!m_vscrollbar->isVisible()) { - m_vscrollbar->setVisible(true); - } - } else { - if (m_vscrollbar->isVisible()) - { - m_vscrollbar->setVisible(false); - m_vscroll_pos = 0; - m_vscrollbar->setPos(0); - m_vscrollbar->setMax(1); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - } - } - -} - -//! set true if this editbox is writable -void GUIEditBoxWithScrollBar::setWritable(bool writable) -{ - m_writable = writable; -} //! Change the background color void GUIEditBoxWithScrollBar::setBackgroundColor(const video::SColor &bg_color) diff --git a/src/gui/guiEditBoxWithScrollbar.h b/src/gui/guiEditBoxWithScrollbar.h index 5ae58b934..b863ee614 100644 --- a/src/gui/guiEditBoxWithScrollbar.h +++ b/src/gui/guiEditBoxWithScrollbar.h @@ -6,7 +6,6 @@ #define GUIEDITBOXWITHSCROLLBAR_HEADER #include "guiEditBox.h" -#include class GUIEditBoxWithScrollBar : public GUIEditBox { @@ -18,54 +17,17 @@ public: bool writable = true, bool has_vscrollbar = true); //! destructor - virtual ~GUIEditBoxWithScrollBar(); + virtual ~GUIEditBoxWithScrollBar() {} //! Sets whether to draw the background virtual void setDrawBackground(bool draw); - //! Turns the border on or off - virtual void setDrawBorder(bool border); - - - - //! Gets the size area of the text in the edit box - //! \return Returns the size in pixels of the text - virtual core::dimension2du getTextDimension(); - - //! Sets text justification - virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical); - - //! called if an event happened. - virtual bool OnEvent(const SEvent& event); - //! draws the element and its children virtual void draw(); - //! Sets the new caption of this element. - virtual void setText(const wchar_t* text); - - //! Sets the maximum amount of characters which may be entered in the box. - //! \param max: Maximum amount of characters. If 0, the character amount is - //! infinity. - virtual void setMax(u32 max); - - //! Returns maximum amount of characters, previously set by setMax(); - virtual u32 getMax() const; - - //! Sets whether the edit box is a password box. Setting this to true will - /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x - \param passwordBox: true to enable password, false to disable - \param passwordChar: the character that is displayed instead of letters */ - virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*'); - - //! Returns true if the edit box is currently a password box. - virtual bool isPasswordBox() const; - //! Updates the absolute position, splits text if required virtual void updateAbsolutePosition(); - virtual void setWritable(bool writable); - //! Change the background color virtual void setBackgroundColor(const video::SColor &bg_color); @@ -86,56 +48,20 @@ protected: //! Breaks the single text line. virtual void breakText(); //! sets the area of the given line - void setTextRect(s32 line); - //! returns the line number that the cursor is on - s32 getLineFromPos(s32 pos); + virtual void setTextRect(s32 line); //! adds a letter to the edit box - void inputChar(wchar_t c); + virtual void inputChar(wchar_t c); //! calculates the current scroll position void calculateScrollPos(); //! calculated the FrameRect void calculateFrameRect(); - //! send some gui event to parent - void sendGuiEvent(EGUI_EVENT_TYPE type); - //! set text markers - void setTextMarkers(s32 begin, s32 end); //! create a Vertical ScrollBar void createVScrollBar(); - //! update the vertical scrollBar (visibilty & position) - void updateVScrollBar(); - bool processKey(const SEvent& event); - bool processMouse(const SEvent& event); s32 getCursorPos(s32 x, s32 y); - bool m_mouse_marking; - bool m_border; bool m_background; - s32 m_mark_begin; - s32 m_mark_end; - - gui::IGUIFont *m_last_break_font; - IOSOperator* m_operator; - - u32 m_blink_start_time; - s32 m_cursor_pos; - s32 m_hscroll_pos, m_vscroll_pos; // scroll position in characters - u32 m_max; - - bool m_passwordbox; - wchar_t m_passwordchar; - EGUI_ALIGNMENT m_halign, m_valign; - - std::vector m_broken_text; - std::vector m_broken_text_positions; - - core::rect m_current_text_rect, m_frame_rect; // temporary values - - u32 m_scrollbar_width; - GUIScrollBar *m_vscrollbar; - bool m_writable; - bool m_bg_color_used; video::SColor m_bg_color; }; diff --git a/src/gui/intlGUIEditBox.cpp b/src/gui/intlGUIEditBox.cpp index e917f73c1..a61619148 100644 --- a/src/gui/intlGUIEditBox.cpp +++ b/src/gui/intlGUIEditBox.cpp @@ -59,9 +59,7 @@ namespace gui intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, IGUIEnvironment* environment, IGUIElement* parent, s32 id, const core::rect& rectangle, bool writable, bool has_vscrollbar) - : GUIEditBox(environment, parent, id, rectangle), - Border(border), FrameRect(rectangle), - m_scrollbar_width(0), m_vscrollbar(NULL), m_writable(writable) + : GUIEditBox(environment, parent, id, rectangle, border, writable) { #ifdef _DEBUG setDebugName("intlintlGUIEditBox"); @@ -70,10 +68,10 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, Text = text; if (Environment) - Operator = Environment->getOSOperator(); + m_operator = Environment->getOSOperator(); - if (Operator) - Operator->grab(); + if (m_operator) + m_operator->grab(); // this element can be tabbed to setTabStop(true); @@ -82,12 +80,12 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, IGUISkin *skin = 0; if (Environment) skin = Environment->getSkin(); - if (Border && skin) + if (m_border && skin) { - FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; - FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; + m_frame_rect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; + m_frame_rect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; + m_frame_rect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; + m_frame_rect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; } if (skin && has_vscrollbar) { @@ -104,23 +102,6 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, setWritable(writable); } - -//! destructor -intlGUIEditBox::~intlGUIEditBox() -{ - if (Operator) - Operator->drop(); - - if (m_vscrollbar) - m_vscrollbar->drop(); -} - -//! Turns the border on or off -void intlGUIEditBox::setDrawBorder(bool border) -{ - Border = border; -} - //! Sets whether to draw the background void intlGUIEditBox::setDrawBackground(bool draw) { @@ -136,535 +117,6 @@ void intlGUIEditBox::updateAbsolutePosition() } } -void intlGUIEditBox::setPasswordBox(bool passwordBox, wchar_t passwordChar) -{ - PasswordBox = passwordBox; - if (PasswordBox) - { - PasswordChar = passwordChar; - setMultiLine(false); - setWordWrap(false); - BrokenText.clear(); - } -} - - -bool intlGUIEditBox::isPasswordBox() const -{ - return PasswordBox; -} - - -//! Sets text justification -void intlGUIEditBox::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical) -{ - HAlign = horizontal; - VAlign = vertical; -} - - -//! called if an event happened. -bool intlGUIEditBox::OnEvent(const SEvent& event) -{ - if (IsEnabled) - { - - switch(event.EventType) - { - case EET_GUI_EVENT: - if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) - { - if (event.GUIEvent.Caller == this) - { - MouseMarking = false; - setTextMarkers(0,0); - } - } - break; - case EET_KEY_INPUT_EVENT: - { -#if (defined(__linux__) || defined(__FreeBSD__)) || defined(__DragonFly__) - // ################################################################ - // ValkaTR: - // This part is the difference from the original intlGUIEditBox - // It converts UTF-8 character into a UCS-2 (wchar_t) - wchar_t wc = L'_'; - mbtowc( &wc, (char *) &event.KeyInput.Char, sizeof(event.KeyInput.Char) ); - - //printf( "char: %lc (%u) \r\n", wc, wc ); - - SEvent irrevent(event); - irrevent.KeyInput.Char = wc; - // ################################################################ - - if (processKey(irrevent)) - return true; -#else - if (processKey(event)) - return true; -#endif // defined(linux) - - break; - } - case EET_MOUSE_INPUT_EVENT: - if (processMouse(event)) - return true; - break; - default: - break; - } - } - - return IGUIElement::OnEvent(event); -} - - -bool intlGUIEditBox::processKey(const SEvent& event) -{ - if (!event.KeyInput.PressedDown) - return false; - - bool textChanged = false; - s32 newMarkBegin = MarkBegin; - s32 newMarkEnd = MarkEnd; - - // control shortcut handling - - if (event.KeyInput.Control) - { - // german backlash '\' entered with control + '?' - if ( event.KeyInput.Char == '\\' ) - { - inputChar(event.KeyInput.Char); - return true; - } - - switch(event.KeyInput.Key) - { - case KEY_KEY_A: - // select all - newMarkBegin = 0; - newMarkEnd = Text.size(); - break; - case KEY_KEY_C: - // copy to clipboard - if (!PasswordBox && Operator && MarkBegin != MarkEnd) - { - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - core::stringc s; - s = Text.subString(realmbgn, realmend - realmbgn).c_str(); - Operator->copyToClipboard(s.c_str()); - } - break; - case KEY_KEY_X: - // cut to the clipboard - if (!PasswordBox && Operator && MarkBegin != MarkEnd) { - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - // copy - core::stringc sc; - sc = Text.subString(realmbgn, realmend - realmbgn).c_str(); - Operator->copyToClipboard(sc.c_str()); - - if (IsEnabled && m_writable) { - // delete - core::stringw s; - s = Text.subString(0, realmbgn); - s.append( Text.subString(realmend, Text.size()-realmend) ); - Text = s; - - CursorPos = realmbgn; - newMarkBegin = 0; - newMarkEnd = 0; - textChanged = true; - } - } - break; - case KEY_KEY_V: - if (!IsEnabled || !m_writable) - break; - - // paste from the clipboard - if (Operator) - { - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - // add new character - const c8* p = Operator->getTextFromClipboard(); - if (p) - { - if (MarkBegin == MarkEnd) - { - // insert text - core::stringw s = Text.subString(0, CursorPos); - s.append(p); - s.append( Text.subString(CursorPos, Text.size()-CursorPos) ); - - if (!Max || s.size()<=Max) // thx to Fish FH for fix - { - Text = s; - s = p; - CursorPos += s.size(); - } - } - else - { - // replace text - - core::stringw s = Text.subString(0, realmbgn); - s.append(p); - s.append( Text.subString(realmend, Text.size()-realmend) ); - - if (!Max || s.size()<=Max) // thx to Fish FH for fix - { - Text = s; - s = p; - CursorPos = realmbgn + s.size(); - } - } - } - - newMarkBegin = 0; - newMarkEnd = 0; - textChanged = true; - } - break; - case KEY_HOME: - // move/highlight to start of text - if (event.KeyInput.Shift) - { - newMarkEnd = CursorPos; - newMarkBegin = 0; - CursorPos = 0; - } - else - { - CursorPos = 0; - newMarkBegin = 0; - newMarkEnd = 0; - } - break; - case KEY_END: - // move/highlight to end of text - if (event.KeyInput.Shift) - { - newMarkBegin = CursorPos; - newMarkEnd = Text.size(); - CursorPos = 0; - } - else - { - CursorPos = Text.size(); - newMarkBegin = 0; - newMarkEnd = 0; - } - break; - default: - return false; - } - } - // default keyboard handling - else - switch(event.KeyInput.Key) - { - case KEY_END: - { - s32 p = Text.size(); - if (m_word_wrap || m_multiline) - { - p = getLineFromPos(CursorPos); - p = BrokenTextPositions[p] + (s32)BrokenText[p].size(); - if (p > 0 && (Text[p-1] == L'\r' || Text[p-1] == L'\n' )) - p-=1; - } - - if (event.KeyInput.Shift) - { - if (MarkBegin == MarkEnd) - newMarkBegin = CursorPos; - - newMarkEnd = p; - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - CursorPos = p; - BlinkStartTime = porting::getTimeMs(); - } - break; - case KEY_HOME: - { - - s32 p = 0; - if (m_word_wrap || m_multiline) - { - p = getLineFromPos(CursorPos); - p = BrokenTextPositions[p]; - } - - if (event.KeyInput.Shift) - { - if (MarkBegin == MarkEnd) - newMarkBegin = CursorPos; - newMarkEnd = p; - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - CursorPos = p; - BlinkStartTime = porting::getTimeMs(); - } - break; - case KEY_RETURN: - if (m_multiline) - { - inputChar(L'\n'); - return true; - } - else - { - sendGuiEvent( EGET_EDITBOX_ENTER ); - } - break; - case KEY_LEFT: - - if (event.KeyInput.Shift) - { - if (CursorPos > 0) - { - if (MarkBegin == MarkEnd) - newMarkBegin = CursorPos; - - newMarkEnd = CursorPos-1; - } - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - - if (CursorPos > 0) CursorPos--; - BlinkStartTime = porting::getTimeMs(); - break; - - case KEY_RIGHT: - if (event.KeyInput.Shift) - { - if (Text.size() > (u32)CursorPos) - { - if (MarkBegin == MarkEnd) - newMarkBegin = CursorPos; - - newMarkEnd = CursorPos+1; - } - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - - if (Text.size() > (u32)CursorPos) CursorPos++; - BlinkStartTime = porting::getTimeMs(); - break; - case KEY_UP: - if (m_multiline || (m_word_wrap && BrokenText.size() > 1) ) - { - s32 lineNo = getLineFromPos(CursorPos); - s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin > MarkEnd ? MarkBegin : MarkEnd); - if (lineNo > 0) - { - s32 cp = CursorPos - BrokenTextPositions[lineNo]; - if ((s32)BrokenText[lineNo-1].size() < cp) - CursorPos = BrokenTextPositions[lineNo-1] + (s32)BrokenText[lineNo-1].size()-1; - else - CursorPos = BrokenTextPositions[lineNo-1] + cp; - } - - if (event.KeyInput.Shift) - { - newMarkBegin = mb; - newMarkEnd = CursorPos; - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - - } - else - { - return false; - } - break; - case KEY_DOWN: - if (m_multiline || (m_word_wrap && BrokenText.size() > 1) ) - { - s32 lineNo = getLineFromPos(CursorPos); - s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin < MarkEnd ? MarkBegin : MarkEnd); - if (lineNo < (s32)BrokenText.size()-1) - { - s32 cp = CursorPos - BrokenTextPositions[lineNo]; - if ((s32)BrokenText[lineNo+1].size() < cp) - CursorPos = BrokenTextPositions[lineNo+1] + BrokenText[lineNo+1].size()-1; - else - CursorPos = BrokenTextPositions[lineNo+1] + cp; - } - - if (event.KeyInput.Shift) - { - newMarkBegin = mb; - newMarkEnd = CursorPos; - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - - } - else - { - return false; - } - break; - - case KEY_BACK: - if (!this->IsEnabled || !m_writable) - break; - - if (!Text.empty()) { - core::stringw s; - - if (MarkBegin != MarkEnd) - { - // delete marked text - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - s = Text.subString(0, realmbgn); - s.append( Text.subString(realmend, Text.size()-realmend) ); - Text = s; - - CursorPos = realmbgn; - } - else - { - // delete text behind cursor - if (CursorPos>0) - s = Text.subString(0, CursorPos-1); - else - s = L""; - s.append( Text.subString(CursorPos, Text.size()-CursorPos) ); - Text = s; - --CursorPos; - } - - if (CursorPos < 0) - CursorPos = 0; - BlinkStartTime = porting::getTimeMs(); - newMarkBegin = 0; - newMarkEnd = 0; - textChanged = true; - } - break; - case KEY_DELETE: - if (!this->IsEnabled || !m_writable) - break; - - if (!Text.empty()) { - core::stringw s; - - if (MarkBegin != MarkEnd) - { - // delete marked text - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - s = Text.subString(0, realmbgn); - s.append( Text.subString(realmend, Text.size()-realmend) ); - Text = s; - - CursorPos = realmbgn; - } - else - { - // delete text before cursor - s = Text.subString(0, CursorPos); - s.append( Text.subString(CursorPos+1, Text.size()-CursorPos-1) ); - Text = s; - } - - if (CursorPos > (s32)Text.size()) - CursorPos = (s32)Text.size(); - - BlinkStartTime = porting::getTimeMs(); - newMarkBegin = 0; - newMarkEnd = 0; - textChanged = true; - } - break; - - case KEY_ESCAPE: - case KEY_TAB: - case KEY_SHIFT: - case KEY_F1: - case KEY_F2: - case KEY_F3: - case KEY_F4: - case KEY_F5: - case KEY_F6: - case KEY_F7: - case KEY_F8: - case KEY_F9: - case KEY_F10: - case KEY_F11: - case KEY_F12: - case KEY_F13: - case KEY_F14: - case KEY_F15: - case KEY_F16: - case KEY_F17: - case KEY_F18: - case KEY_F19: - case KEY_F20: - case KEY_F21: - case KEY_F22: - case KEY_F23: - case KEY_F24: - // ignore these keys - return false; - - default: - inputChar(event.KeyInput.Char); - return true; - } - - // Set new text markers - setTextMarkers( newMarkBegin, newMarkEnd ); - - // break the text if it has changed - if (textChanged) - { - breakText(); - sendGuiEvent(EGET_EDITBOX_CHANGED); - } - - calculateScrollPos(); - - return true; -} - //! draws the element and its children void intlGUIEditBox::draw() @@ -678,25 +130,25 @@ void intlGUIEditBox::draw() if (!skin) return; - FrameRect = AbsoluteRect; + m_frame_rect = AbsoluteRect; // draw the border - if (Border) + if (m_border) { if (m_writable) { skin->draw3DSunkenPane(this, skin->getColor(EGDC_WINDOW), - false, true, FrameRect, &AbsoluteClippingRect); + false, true, m_frame_rect, &AbsoluteClippingRect); } - FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; - FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; + m_frame_rect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; + m_frame_rect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; + m_frame_rect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; + m_frame_rect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; } updateVScrollBar(); - core::rect localClipRect = FrameRect; + core::rect localClipRect = m_frame_rect; localClipRect.clipAgainst(AbsoluteClippingRect); // draw the text @@ -710,7 +162,7 @@ void intlGUIEditBox::draw() if (font) { - if (LastBreakFont != font) + if (m_last_break_font != font) { breakText(); } @@ -723,12 +175,12 @@ void intlGUIEditBox::draw() core::stringw s, s2; // get mark position - const bool ml = (!PasswordBox && (m_word_wrap || m_multiline)); - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; + const bool ml = (!m_passwordbox && (m_word_wrap || m_multiline)); + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; const s32 hlineStart = ml ? getLineFromPos(realmbgn) : 0; const s32 hlineCount = ml ? getLineFromPos(realmend) - hlineStart + 1 : 1; - const s32 lineCount = ml ? BrokenText.size() : 1; + const s32 lineCount = ml ? m_broken_text.size() : 1; // Save the override color information. // Then, alter it if the edit box is disabled. @@ -748,43 +200,43 @@ void intlGUIEditBox::draw() // clipping test - don't draw anything outside the visible area core::rect c = localClipRect; - c.clipAgainst(CurrentTextRect); + c.clipAgainst(m_current_text_rect); if (!c.isValid()) continue; // get current line - if (PasswordBox) + if (m_passwordbox) { - if (BrokenText.size() != 1) + if (m_broken_text.size() != 1) { - BrokenText.clear(); - BrokenText.push_back(core::stringw()); + m_broken_text.clear(); + m_broken_text.emplace_back(); } - if (BrokenText[0].size() != Text.size()) + if (m_broken_text[0].size() != Text.size()) { - BrokenText[0] = Text; + m_broken_text[0] = Text; for (u32 q = 0; q < Text.size(); ++q) { - BrokenText[0] [q] = PasswordChar; + m_broken_text[0] [q] = m_passwordchar; } } - txtLine = &BrokenText[0]; + txtLine = &m_broken_text[0]; startPos = 0; } else { - txtLine = ml ? &BrokenText[i] : &Text; - startPos = ml ? BrokenTextPositions[i] : 0; + txtLine = ml ? &m_broken_text[i] : &Text; + startPos = ml ? m_broken_text_positions[i] : 0; } // draw normal text - font->draw(txtLine->c_str(), CurrentTextRect, + font->draw(txtLine->c_str(), m_current_text_rect, m_override_color_enabled ? m_override_color : skin->getColor(EGDC_BUTTON_TEXT), false, true, &localClipRect); // draw mark and marked text - if (focus && MarkBegin != MarkEnd && i >= hlineStart && i < hlineStart + hlineCount) + if (focus && m_mark_begin != m_mark_end && i >= hlineStart && i < hlineStart + hlineCount) { s32 mbegin = 0, mend = 0; @@ -813,17 +265,17 @@ void intlGUIEditBox::draw() else mend = font->getDimension(txtLine->c_str()).Width; - CurrentTextRect.UpperLeftCorner.X += mbegin; - CurrentTextRect.LowerRightCorner.X = CurrentTextRect.UpperLeftCorner.X + mend - mbegin; + m_current_text_rect.UpperLeftCorner.X += mbegin; + m_current_text_rect.LowerRightCorner.X = m_current_text_rect.UpperLeftCorner.X + mend - mbegin; // draw mark - skin->draw2DRectangle(this, skin->getColor(EGDC_HIGH_LIGHT), CurrentTextRect, &localClipRect); + skin->draw2DRectangle(this, skin->getColor(EGDC_HIGH_LIGHT), m_current_text_rect, &localClipRect); // draw marked text s = txtLine->subString(lineStartPos, lineEndPos - lineStartPos); if (!s.empty()) - font->draw(s.c_str(), CurrentTextRect, + font->draw(s.c_str(), m_current_text_rect, m_override_color_enabled ? m_override_color : skin->getColor(EGDC_HIGH_LIGHT_TEXT), false, true, &localClipRect); @@ -839,20 +291,20 @@ void intlGUIEditBox::draw() if (m_word_wrap || m_multiline) { - cursorLine = getLineFromPos(CursorPos); - txtLine = &BrokenText[cursorLine]; - startPos = BrokenTextPositions[cursorLine]; + cursorLine = getLineFromPos(m_cursor_pos); + txtLine = &m_broken_text[cursorLine]; + startPos = m_broken_text_positions[cursorLine]; } - s = txtLine->subString(0,CursorPos-startPos); + s = txtLine->subString(0,m_cursor_pos-startPos); charcursorpos = font->getDimension(s.c_str()).Width + - font->getKerningWidth(L"_", CursorPos-startPos > 0 ? &((*txtLine)[CursorPos-startPos-1]) : 0); + font->getKerningWidth(L"_", m_cursor_pos-startPos > 0 ? &((*txtLine)[m_cursor_pos-startPos-1]) : 0); if (m_writable) { - if (focus && (porting::getTimeMs() - BlinkStartTime) % 700 < 350) { + if (focus && (porting::getTimeMs() - m_blink_start_time) % 700 < 350) { setTextRect(cursorLine); - CurrentTextRect.UpperLeftCorner.X += charcursorpos; + m_current_text_rect.UpperLeftCorner.X += charcursorpos; - font->draw(L"_", CurrentTextRect, + font->draw(L"_", m_current_text_rect, m_override_color_enabled ? m_override_color : skin->getColor(EGDC_BUTTON_TEXT), false, true, &localClipRect); } @@ -864,130 +316,6 @@ void intlGUIEditBox::draw() } -//! Sets the new caption of this element. -void intlGUIEditBox::setText(const wchar_t* text) -{ - Text = text; - if (u32(CursorPos) > Text.size()) - CursorPos = Text.size(); - HScrollPos = 0; - breakText(); -} - - -//! Gets the area of the text in the edit box -//! \return Returns the size in pixels of the text -core::dimension2du intlGUIEditBox::getTextDimension() -{ - core::rect ret; - - setTextRect(0); - ret = CurrentTextRect; - - for (u32 i=1; i < BrokenText.size(); ++i) - { - setTextRect(i); - ret.addInternalPoint(CurrentTextRect.UpperLeftCorner); - ret.addInternalPoint(CurrentTextRect.LowerRightCorner); - } - - return core::dimension2du(ret.getSize()); -} - - -//! Sets the maximum amount of characters which may be entered in the box. -//! \param max: Maximum amount of characters. If 0, the character amount is -//! infinity. -void intlGUIEditBox::setMax(u32 max) -{ - Max = max; - - if (Text.size() > Max && Max != 0) - Text = Text.subString(0, Max); -} - - -//! Returns maximum amount of characters, previously set by setMax(); -u32 intlGUIEditBox::getMax() const -{ - return Max; -} - - -bool intlGUIEditBox::processMouse(const SEvent& event) -{ - switch(event.MouseInput.Event) - { - case irr::EMIE_LMOUSE_LEFT_UP: - if (Environment->hasFocus(this)) - { - CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - if (MouseMarking) - { - setTextMarkers( MarkBegin, CursorPos ); - } - MouseMarking = false; - calculateScrollPos(); - return true; - } - break; - case irr::EMIE_MOUSE_MOVED: - { - if (MouseMarking) - { - CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - setTextMarkers( MarkBegin, CursorPos ); - calculateScrollPos(); - return true; - } - } - break; - case EMIE_LMOUSE_PRESSED_DOWN: - if (!Environment->hasFocus(this)) - { - BlinkStartTime = porting::getTimeMs(); - MouseMarking = true; - CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - setTextMarkers(CursorPos, CursorPos ); - calculateScrollPos(); - return true; - } - else - { - if (!AbsoluteClippingRect.isPointInside( - core::position2d(event.MouseInput.X, event.MouseInput.Y))) { - return false; - } - - - // move cursor - CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - - s32 newMarkBegin = MarkBegin; - if (!MouseMarking) - newMarkBegin = CursorPos; - - MouseMarking = true; - setTextMarkers( newMarkBegin, CursorPos); - calculateScrollPos(); - return true; - } - break; - case EMIE_MOUSE_WHEEL: - if (m_vscrollbar && m_vscrollbar->isVisible()) { - s32 pos = m_vscrollbar->getPos(); - s32 step = m_vscrollbar->getSmallStep(); - m_vscrollbar->setPos(pos - event.MouseInput.Wheel * step); - } - break; - default: - break; - } - - return false; -} - - s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) { IGUIFont* font = m_override_font; @@ -995,7 +323,7 @@ s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) if (!m_override_font) font = skin->getFont(); - const u32 lineCount = (m_word_wrap || m_multiline) ? BrokenText.size() : 1; + const u32 lineCount = (m_word_wrap || m_multiline) ? m_broken_text.size() : 1; core::stringw *txtLine = NULL; s32 startPos = 0; @@ -1004,29 +332,29 @@ s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) for (; curr_line_idx < lineCount; ++curr_line_idx) { setTextRect(curr_line_idx); - if (curr_line_idx == 0 && y < CurrentTextRect.UpperLeftCorner.Y) - y = CurrentTextRect.UpperLeftCorner.Y; - if (curr_line_idx == lineCount - 1 && y > CurrentTextRect.LowerRightCorner.Y) - y = CurrentTextRect.LowerRightCorner.Y; + if (curr_line_idx == 0 && y < m_current_text_rect.UpperLeftCorner.Y) + y = m_current_text_rect.UpperLeftCorner.Y; + if (curr_line_idx == lineCount - 1 && y > m_current_text_rect.LowerRightCorner.Y) + y = m_current_text_rect.LowerRightCorner.Y; // is it inside this region? - if (y >= CurrentTextRect.UpperLeftCorner.Y && y <= CurrentTextRect.LowerRightCorner.Y) { + if (y >= m_current_text_rect.UpperLeftCorner.Y && y <= m_current_text_rect.LowerRightCorner.Y) { // we've found the clicked line - txtLine = (m_word_wrap || m_multiline) ? &BrokenText[curr_line_idx] : &Text; - startPos = (m_word_wrap || m_multiline) ? BrokenTextPositions[curr_line_idx] : 0; + txtLine = (m_word_wrap || m_multiline) ? &m_broken_text[curr_line_idx] : &Text; + startPos = (m_word_wrap || m_multiline) ? m_broken_text_positions[curr_line_idx] : 0; break; } } - if (x < CurrentTextRect.UpperLeftCorner.X) - x = CurrentTextRect.UpperLeftCorner.X; - else if (x > CurrentTextRect.LowerRightCorner.X) - x = CurrentTextRect.LowerRightCorner.X; + if (x < m_current_text_rect.UpperLeftCorner.X) + x = m_current_text_rect.UpperLeftCorner.X; + else if (x > m_current_text_rect.LowerRightCorner.X) + x = m_current_text_rect.LowerRightCorner.X; - s32 idx = font->getCharacterFromPos(txtLine->c_str(), x - CurrentTextRect.UpperLeftCorner.X); + s32 idx = font->getCharacterFromPos(txtLine->c_str(), x - m_current_text_rect.UpperLeftCorner.X); // Special handling for last line, if we are on limits, add 1 extra shift because idx // will be the last char, not null char of the wstring - if (curr_line_idx == lineCount - 1 && x == CurrentTextRect.LowerRightCorner.X) + if (curr_line_idx == lineCount - 1 && x == m_current_text_rect.LowerRightCorner.X) idx++; return rangelim(idx + startPos, 0, S32_MAX); @@ -1041,8 +369,8 @@ void intlGUIEditBox::breakText() if ((!m_word_wrap && !m_multiline) || !skin) return; - BrokenText.clear(); // need to reallocate :/ - BrokenTextPositions.set_used(0); + m_broken_text.clear(); // need to reallocate :/ + m_broken_text_positions.clear(); IGUIFont* font = m_override_font; if (!m_override_font) @@ -1051,7 +379,7 @@ void intlGUIEditBox::breakText() if (!font) return; - LastBreakFont = font; + m_last_break_font = font; core::stringw line; core::stringw word; @@ -1099,8 +427,8 @@ void intlGUIEditBox::breakText() { // break to next line length = worldlgth; - BrokenText.push_back(line); - BrokenTextPositions.push_back(lastLineStart); + m_broken_text.push_back(line); + m_broken_text_positions.push_back(lastLineStart); lastLineStart = i - (s32)word.size(); line = word; } @@ -1123,8 +451,8 @@ void intlGUIEditBox::breakText() { line += whitespace; line += word; - BrokenText.push_back(line); - BrokenTextPositions.push_back(lastLineStart); + m_broken_text.push_back(line); + m_broken_text_positions.push_back(lastLineStart); lastLineStart = i+1; line = L""; word = L""; @@ -1141,8 +469,8 @@ void intlGUIEditBox::breakText() line += whitespace; line += word; - BrokenText.push_back(line); - BrokenTextPositions.push_back(lastLineStart); + m_broken_text.push_back(line); + m_broken_text_positions.push_back(lastLineStart); } @@ -1160,10 +488,10 @@ void intlGUIEditBox::setTextRect(s32 line) return; // get text dimension - const u32 lineCount = (m_word_wrap || m_multiline) ? BrokenText.size() : 1; + const u32 lineCount = (m_word_wrap || m_multiline) ? m_broken_text.size() : 1; if (m_word_wrap || m_multiline) { - d = font->getDimension(BrokenText[line].c_str()); + d = font->getDimension(m_broken_text[line].c_str()); } else { @@ -1173,103 +501,86 @@ void intlGUIEditBox::setTextRect(s32 line) d.Height += font->getKerningHeight(); // justification - switch (HAlign) + switch (m_halign) { case EGUIA_CENTER: // align to h centre - CurrentTextRect.UpperLeftCorner.X = (FrameRect.getWidth()/2) - (d.Width/2); - CurrentTextRect.LowerRightCorner.X = (FrameRect.getWidth()/2) + (d.Width/2); + m_current_text_rect.UpperLeftCorner.X = (m_frame_rect.getWidth()/2) - (d.Width/2); + m_current_text_rect.LowerRightCorner.X = (m_frame_rect.getWidth()/2) + (d.Width/2); break; case EGUIA_LOWERRIGHT: // align to right edge - CurrentTextRect.UpperLeftCorner.X = FrameRect.getWidth() - d.Width; - CurrentTextRect.LowerRightCorner.X = FrameRect.getWidth(); + m_current_text_rect.UpperLeftCorner.X = m_frame_rect.getWidth() - d.Width; + m_current_text_rect.LowerRightCorner.X = m_frame_rect.getWidth(); break; default: // align to left edge - CurrentTextRect.UpperLeftCorner.X = 0; - CurrentTextRect.LowerRightCorner.X = d.Width; + m_current_text_rect.UpperLeftCorner.X = 0; + m_current_text_rect.LowerRightCorner.X = d.Width; } - switch (VAlign) + switch (m_valign) { case EGUIA_CENTER: // align to v centre - CurrentTextRect.UpperLeftCorner.Y = - (FrameRect.getHeight()/2) - (lineCount*d.Height)/2 + d.Height*line; + m_current_text_rect.UpperLeftCorner.Y = + (m_frame_rect.getHeight()/2) - (lineCount*d.Height)/2 + d.Height*line; break; case EGUIA_LOWERRIGHT: // align to bottom edge - CurrentTextRect.UpperLeftCorner.Y = - FrameRect.getHeight() - lineCount*d.Height + d.Height*line; + m_current_text_rect.UpperLeftCorner.Y = + m_frame_rect.getHeight() - lineCount*d.Height + d.Height*line; break; default: // align to top edge - CurrentTextRect.UpperLeftCorner.Y = d.Height*line; + m_current_text_rect.UpperLeftCorner.Y = d.Height*line; break; } - CurrentTextRect.UpperLeftCorner.X -= HScrollPos; - CurrentTextRect.LowerRightCorner.X -= HScrollPos; - CurrentTextRect.UpperLeftCorner.Y -= VScrollPos; - CurrentTextRect.LowerRightCorner.Y = CurrentTextRect.UpperLeftCorner.Y + d.Height; + m_current_text_rect.UpperLeftCorner.X -= m_hscroll_pos; + m_current_text_rect.LowerRightCorner.X -= m_hscroll_pos; + m_current_text_rect.UpperLeftCorner.Y -= m_vscroll_pos; + m_current_text_rect.LowerRightCorner.Y = m_current_text_rect.UpperLeftCorner.Y + d.Height; - CurrentTextRect += FrameRect.UpperLeftCorner; + m_current_text_rect += m_frame_rect.UpperLeftCorner; } - -s32 intlGUIEditBox::getLineFromPos(s32 pos) -{ - if (!m_word_wrap && !m_multiline) - return 0; - - s32 i=0; - while (i < (s32)BrokenTextPositions.size()) - { - if (BrokenTextPositions[i] > pos) - return i-1; - ++i; - } - return (s32)BrokenTextPositions.size() - 1; -} - - void intlGUIEditBox::inputChar(wchar_t c) { - if (!IsEnabled || !m_writable) + if (!isEnabled() || !m_writable) return; if (c != 0) { - if (Text.size() < Max || Max == 0) + if (Text.size() < m_max || m_max == 0) { core::stringw s; - if (MarkBegin != MarkEnd) + if (m_mark_begin != m_mark_end) { // replace marked text - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; s = Text.subString(0, realmbgn); s.append(c); s.append( Text.subString(realmend, Text.size()-realmend) ); Text = s; - CursorPos = realmbgn+1; + m_cursor_pos = realmbgn+1; } else { // add new character - s = Text.subString(0, CursorPos); + s = Text.subString(0, m_cursor_pos); s.append(c); - s.append( Text.subString(CursorPos, Text.size()-CursorPos) ); + s.append( Text.subString(m_cursor_pos, Text.size()-m_cursor_pos) ); Text = s; - ++CursorPos; + ++m_cursor_pos; } - BlinkStartTime = porting::getTimeMs(); + m_blink_start_time = porting::getTimeMs(); setTextMarkers(0, 0); } } @@ -1285,7 +596,7 @@ void intlGUIEditBox::calculateScrollPos() return; // calculate horizontal scroll position - s32 cursLine = getLineFromPos(CursorPos); + s32 cursLine = getLineFromPos(m_cursor_pos); setTextRect(cursLine); // don't do horizontal scrolling when wordwrap is enabled. @@ -1299,20 +610,20 @@ void intlGUIEditBox::calculateScrollPos() if (!font) return; - core::stringw *txtLine = m_multiline ? &BrokenText[cursLine] : &Text; - s32 cPos = m_multiline ? CursorPos - BrokenTextPositions[cursLine] : CursorPos; + core::stringw *txtLine = m_multiline ? &m_broken_text[cursLine] : &Text; + s32 cPos = m_multiline ? m_cursor_pos - m_broken_text_positions[cursLine] : m_cursor_pos; - s32 cStart = CurrentTextRect.UpperLeftCorner.X + HScrollPos + + s32 cStart = m_current_text_rect.UpperLeftCorner.X + m_hscroll_pos + font->getDimension(txtLine->subString(0, cPos).c_str()).Width; s32 cEnd = cStart + font->getDimension(L"_ ").Width; - if (FrameRect.LowerRightCorner.X < cEnd) - HScrollPos = cEnd - FrameRect.LowerRightCorner.X; - else if (FrameRect.UpperLeftCorner.X > cStart) - HScrollPos = cStart - FrameRect.UpperLeftCorner.X; + if (m_frame_rect.LowerRightCorner.X < cEnd) + m_hscroll_pos = cEnd - m_frame_rect.LowerRightCorner.X; + else if (m_frame_rect.UpperLeftCorner.X > cStart) + m_hscroll_pos = cStart - m_frame_rect.UpperLeftCorner.X; else - HScrollPos = 0; + m_hscroll_pos = 0; // todo: adjust scrollbar } @@ -1321,41 +632,16 @@ void intlGUIEditBox::calculateScrollPos() return; // vertical scroll position - if (FrameRect.LowerRightCorner.Y < CurrentTextRect.LowerRightCorner.Y) - VScrollPos += CurrentTextRect.LowerRightCorner.Y - FrameRect.LowerRightCorner.Y; // scrolling downwards - else if (FrameRect.UpperLeftCorner.Y > CurrentTextRect.UpperLeftCorner.Y) - VScrollPos += CurrentTextRect.UpperLeftCorner.Y - FrameRect.UpperLeftCorner.Y; // scrolling upwards + if (m_frame_rect.LowerRightCorner.Y < m_current_text_rect.LowerRightCorner.Y) + m_vscroll_pos += m_current_text_rect.LowerRightCorner.Y - m_frame_rect.LowerRightCorner.Y; // scrolling downwards + else if (m_frame_rect.UpperLeftCorner.Y > m_current_text_rect.UpperLeftCorner.Y) + m_vscroll_pos += m_current_text_rect.UpperLeftCorner.Y - m_frame_rect.UpperLeftCorner.Y; // scrolling upwards // todo: adjust scrollbar if (m_vscrollbar) - m_vscrollbar->setPos(VScrollPos); + m_vscrollbar->setPos(m_vscroll_pos); } -//! set text markers -void intlGUIEditBox::setTextMarkers(s32 begin, s32 end) -{ - if ( begin != MarkBegin || end != MarkEnd ) - { - MarkBegin = begin; - MarkEnd = end; - sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED); - } -} - -//! send some gui event to parent -void intlGUIEditBox::sendGuiEvent(EGUI_EVENT_TYPE type) -{ - if ( Parent ) - { - SEvent e; - e.EventType = EET_GUI_EVENT; - e.GUIEvent.Caller = this; - e.GUIEvent.Element = 0; - e.GUIEvent.EventType = type; - - Parent->OnEvent(e); - } -} //! Create a vertical scrollbar void intlGUIEditBox::createVScrollBar() @@ -1372,8 +658,8 @@ void intlGUIEditBox::createVScrollBar() } } - irr::core::rect scrollbarrect = FrameRect; - scrollbarrect.UpperLeftCorner.X += FrameRect.getWidth() - m_scrollbar_width; + irr::core::rect scrollbarrect = m_frame_rect; + scrollbarrect.UpperLeftCorner.X += m_frame_rect.getWidth() - m_scrollbar_width; m_vscrollbar = new GUIScrollBar(Environment, getParent(), -1, scrollbarrect, false, true); @@ -1382,60 +668,6 @@ void intlGUIEditBox::createVScrollBar() m_vscrollbar->setLargeStep(10 * fontHeight); } -//! Update the vertical scrollbar (visibilty & scroll position) -void intlGUIEditBox::updateVScrollBar() -{ - if (!m_vscrollbar) - return; - - // OnScrollBarChanged(...) - if (m_vscrollbar->getPos() != VScrollPos) { - s32 deltaScrollY = m_vscrollbar->getPos() - VScrollPos; - CurrentTextRect.UpperLeftCorner.Y -= deltaScrollY; - CurrentTextRect.LowerRightCorner.Y -= deltaScrollY; - - s32 scrollymax = getTextDimension().Height - FrameRect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - // manage a newline or a deleted line - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - calculateScrollPos(); - } else { - // manage a newline or a deleted line - VScrollPos = m_vscrollbar->getPos(); - } - } - - // check if a vertical scrollbar is needed ? - if (getTextDimension().Height > (u32) FrameRect.getHeight()) { - s32 scrollymax = getTextDimension().Height - FrameRect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - } - - if (!m_vscrollbar->isVisible() && m_multiline) { - AbsoluteRect.LowerRightCorner.X -= m_scrollbar_width; - - m_vscrollbar->setVisible(true); - } - } else { - if (m_vscrollbar->isVisible()) { - AbsoluteRect.LowerRightCorner.X += m_scrollbar_width; - - VScrollPos = 0; - m_vscrollbar->setPos(0); - m_vscrollbar->setMax(1); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - m_vscrollbar->setVisible(false); - } - } -} - -void intlGUIEditBox::setWritable(bool can_write_text) -{ - m_writable = can_write_text; -} //! Writes attributes of the element. void intlGUIEditBox::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const @@ -1445,16 +677,16 @@ void intlGUIEditBox::serializeAttributes(io::IAttributes* out, io::SAttributeRea out->addBool ("OverrideColorEnabled", m_override_color_enabled ); out->addColor ("OverrideColor", m_override_color); // out->addFont("OverrideFont",m_override_font); - out->addInt ("MaxChars", Max); + out->addInt ("MaxChars", m_max); out->addBool ("WordWrap", m_word_wrap); out->addBool ("MultiLine", m_multiline); out->addBool ("AutoScroll", m_autoscroll); - out->addBool ("PasswordBox", PasswordBox); + out->addBool ("PasswordBox", m_passwordbox); core::stringw ch = L" "; - ch[0] = PasswordChar; + ch[0] = m_passwordchar; out->addString("PasswordChar", ch.c_str()); - out->addEnum ("HTextAlign", HAlign, GUIAlignmentNames); - out->addEnum ("VTextAlign", VAlign, GUIAlignmentNames); + out->addEnum ("HTextAlign", m_halign, GUIAlignmentNames); + out->addEnum ("VTextAlign", m_valign, GUIAlignmentNames); out->addBool ("Writable", m_writable); IGUIEditBox::serializeAttributes(out,options); diff --git a/src/gui/intlGUIEditBox.h b/src/gui/intlGUIEditBox.h index a1e423aa2..2abc12d1a 100644 --- a/src/gui/intlGUIEditBox.h +++ b/src/gui/intlGUIEditBox.h @@ -25,57 +25,19 @@ namespace gui bool writable = true, bool has_vscrollbar = false); //! destructor - virtual ~intlGUIEditBox(); + virtual ~intlGUIEditBox() {} //! Sets whether to draw the background virtual void setDrawBackground(bool draw); virtual bool isDrawBackgroundEnabled() const { return true; } - //! Turns the border on or off - virtual void setDrawBorder(bool border); - - virtual bool isDrawBorderEnabled() const { return Border; } - - //! Gets the size area of the text in the edit box - //! \return Returns the size in pixels of the text - virtual core::dimension2du getTextDimension(); - - //! Sets text justification - virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical); - - //! called if an event happened. - virtual bool OnEvent(const SEvent& event); - //! draws the element and its children virtual void draw(); - //! Sets the new caption of this element. - virtual void setText(const wchar_t* text); - - //! Sets the maximum amount of characters which may be entered in the box. - //! \param max: Maximum amount of characters. If 0, the character amount is - //! infinity. - virtual void setMax(u32 max); - - //! Returns maximum amount of characters, previously set by setMax(); - virtual u32 getMax() const; - - //! Sets whether the edit box is a password box. Setting this to true will - /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x - \param passwordBox: true to enable password, false to disable - \param passwordChar: the character that is displayed instead of letters */ - virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*'); - - //! Returns true if the edit box is currently a password box. - virtual bool isPasswordBox() const; - //! Updates the absolute position, splits text if required virtual void updateAbsolutePosition(); - //! set true if this EditBox is writable - virtual void setWritable(bool can_write_text); - //! Writes attributes of the element. virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const; @@ -94,56 +56,16 @@ namespace gui //! Breaks the single text line. virtual void breakText(); //! sets the area of the given line - void setTextRect(s32 line); - //! returns the line number that the cursor is on - s32 getLineFromPos(s32 pos); + virtual void setTextRect(s32 line); //! adds a letter to the edit box - void inputChar(wchar_t c); + virtual void inputChar(wchar_t c); //! calculates the current scroll position void calculateScrollPos(); - //! send some gui event to parent - void sendGuiEvent(EGUI_EVENT_TYPE type); - //! set text markers - void setTextMarkers(s32 begin, s32 end); - bool processKey(const SEvent& event); - bool processMouse(const SEvent& event); s32 getCursorPos(s32 x, s32 y); //! Create a vertical scrollbar void createVScrollBar(); - - //! Update the vertical scrollbar (visibilty & scroll position) - void updateVScrollBar(); - - bool MouseMarking = false; - bool Border; - s32 MarkBegin = 0; - s32 MarkEnd = 0; - - gui::IGUIFont *LastBreakFont = nullptr; - IOSOperator *Operator = nullptr; - - u64 BlinkStartTime = 0; - s32 CursorPos = 0; - s32 HScrollPos = 0; - s32 VScrollPos = 0; // scroll position in characters - u32 Max = 0; - - bool PasswordBox = false; - wchar_t PasswordChar = L'*'; - EGUI_ALIGNMENT HAlign = EGUIA_UPPERLEFT; - EGUI_ALIGNMENT VAlign = EGUIA_CENTER; - - core::array BrokenText; - core::array BrokenTextPositions; - - core::rect CurrentTextRect = core::rect(0,0,1,1); - core::rect FrameRect; // temporary values - u32 m_scrollbar_width; - GUIScrollBar *m_vscrollbar; - bool m_writable; - }; From fcb3ed840a5e66e6d37b27effe30d8d723a7da59 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Sun, 10 Jan 2021 19:10:12 +0000 Subject: [PATCH 338/624] Sanitize server IP field in mainmenu (#10793) --- builtin/mainmenu/common.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua index 782d6973f..2bd8aa8a5 100644 --- a/builtin/mainmenu/common.lua +++ b/builtin/mainmenu/common.lua @@ -87,7 +87,7 @@ function render_serverlist_row(spec, is_favorite) if spec.name then text = text .. core.formspec_escape(spec.name:trim()) elseif spec.address then - text = text .. spec.address:trim() + text = text .. core.formspec_escape(spec.address:trim()) if spec.port then text = text .. ":" .. spec.port end From 08ee9794fbc0960a8aab1af21d34f40685809e75 Mon Sep 17 00:00:00 2001 From: JDiaz Date: Mon, 11 Jan 2021 18:03:31 +0100 Subject: [PATCH 339/624] Implement on_rightclickplayer callback (#10775) Co-authored-by: rubenwardy --- builtin/game/register.lua | 1 + doc/lua_api.txt | 10 +++++++--- src/script/cpp_api/s_player.cpp | 13 +++++++++++++ src/script/cpp_api/s_player.h | 1 + src/server/player_sao.cpp | 5 +++++ src/server/player_sao.h | 2 +- 6 files changed, 28 insertions(+), 4 deletions(-) diff --git a/builtin/game/register.lua b/builtin/game/register.lua index 1f94a9dca..93e1dad12 100644 --- a/builtin/game/register.lua +++ b/builtin/game/register.lua @@ -617,6 +617,7 @@ core.registered_can_bypass_userlimit, core.register_can_bypass_userlimit = make_ core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration() core.registered_on_player_inventory_actions, core.register_on_player_inventory_action = make_registration() core.registered_allow_player_inventory_actions, core.register_allow_player_inventory_action = make_registration() +core.registered_on_rightclickplayers, core.register_on_rightclickplayer = make_registration() -- -- Compatibility for on_mapgen_init() diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 47c2776e6..ba4d6312c 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2113,7 +2113,7 @@ Examples list[current_player;main;0,3.5;8,4;] list[current_player;craft;3,0;3,3;] list[current_player;craftpreview;7,1;1,1;] - + Version History --------------- @@ -4587,6 +4587,10 @@ Call these functions only at load time! the puncher to the punched. * `damage`: Number that represents the damage calculated by the engine * should return `true` to prevent the default damage mechanism +* `minetest.register_on_rightclickplayer(function(player, clicker))` + * Called when a player is right-clicked + * `player`: ObjectRef - Player that was right-clicked + * `clicker`: ObjectRef - Object that right-clicked, may or may not be a player * `minetest.register_on_player_hpchange(function(player, hp_change, reason), modifier)` * Called when the player gets damaged or healed * `player`: ObjectRef of the player @@ -7641,12 +7645,12 @@ Used by `minetest.register_node`. -- intensity: 1.0 = mid range of regular TNT. -- If defined, called when an explosion touches the node, instead of -- removing the node. - + mod_origin = "modname", -- stores which mod actually registered a node -- if it can not find a source, returns "??" -- useful for getting what mod truly registered something - -- example: if a node is registered as ":othermodname:nodename", + -- example: if a node is registered as ":othermodname:nodename", -- nodename will show "othermodname", but mod_orgin will say "modname" } diff --git a/src/script/cpp_api/s_player.cpp b/src/script/cpp_api/s_player.cpp index 712120c61..d3e6138dc 100644 --- a/src/script/cpp_api/s_player.cpp +++ b/src/script/cpp_api/s_player.cpp @@ -77,6 +77,19 @@ bool ScriptApiPlayer::on_punchplayer(ServerActiveObject *player, return readParam(L, -1); } +void ScriptApiPlayer::on_rightclickplayer(ServerActiveObject *player, + ServerActiveObject *clicker) +{ + SCRIPTAPI_PRECHECKHEADER + // Get core.registered_on_rightclickplayers + lua_getglobal(L, "core"); + lua_getfield(L, -1, "registered_on_rightclickplayers"); + // Call callbacks + objectrefGetOrCreate(L, player); + objectrefGetOrCreate(L, clicker); + runCallbacks(2, RUN_CALLBACKS_MODE_FIRST); +} + s32 ScriptApiPlayer::on_player_hpchange(ServerActiveObject *player, s32 hp_change, const PlayerHPChangeReason &reason) { diff --git a/src/script/cpp_api/s_player.h b/src/script/cpp_api/s_player.h index a337f975b..c0f141862 100644 --- a/src/script/cpp_api/s_player.h +++ b/src/script/cpp_api/s_player.h @@ -47,6 +47,7 @@ public: bool on_punchplayer(ServerActiveObject *player, ServerActiveObject *hitter, float time_from_last_punch, const ToolCapabilities *toolcap, v3f dir, s16 damage); + void on_rightclickplayer(ServerActiveObject *player, ServerActiveObject *clicker); s32 on_player_hpchange(ServerActiveObject *player, s32 hp_change, const PlayerHPChangeReason &reason); void on_playerReceiveFields(ServerActiveObject *player, diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index 232c6a01d..c1b1401e6 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -456,6 +456,11 @@ u16 PlayerSAO::punch(v3f dir, return hitparams.wear; } +void PlayerSAO::rightClick(ServerActiveObject *clicker) +{ + m_env->getScriptIface()->on_rightclickplayer(this, clicker); +} + void PlayerSAO::setHP(s32 hp, const PlayerHPChangeReason &reason) { if (hp == (s32)m_hp) diff --git a/src/server/player_sao.h b/src/server/player_sao.h index 3e178d4fc..6aee8d5aa 100644 --- a/src/server/player_sao.h +++ b/src/server/player_sao.h @@ -111,7 +111,7 @@ public: u16 punch(v3f dir, const ToolCapabilities *toolcap, ServerActiveObject *puncher, float time_from_last_punch); - void rightClick(ServerActiveObject *clicker) {} + void rightClick(ServerActiveObject *clicker); void setHP(s32 hp, const PlayerHPChangeReason &reason); void setHPRaw(u16 hp) { m_hp = hp; } s16 readDamage(); From 1946835ee87bdd20c586f6bb79c422da1cad4685 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Mon, 11 Jan 2021 17:03:46 +0000 Subject: [PATCH 340/624] Document how to make nametags background disappear on players' head (#10783) Co-authored-by: Zughy <4279489-marco_a@users.noreply.gitlab.com> --- doc/lua_api.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index ba4d6312c..4ef67261a 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6938,7 +6938,11 @@ Player properties need to be saved manually. -- in mods. nametag = "", - -- By default empty, for players their name is shown if empty + -- The name to display on the head of the object. By default empty. + -- If the object is a player, a nil or empty nametag is replaced by the player's name. + -- For all other objects, a nil or empty string removes the nametag. + -- To hide a nametag, set its color alpha to zero. That will disable it entirely. + nametag_color = , -- Sets color of nametag From 4b012828213e3086f11afb3b94ce7aab85a52f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Blot?= Date: Wed, 13 Jan 2021 09:05:09 +0100 Subject: [PATCH 341/624] Factorize more guiEditBoxes code (#10789) * Factorize more guiEditBoxes code --- src/gui/guiEditBox.cpp | 91 ++++++++++++++++++++++++++ src/gui/guiEditBox.h | 10 ++- src/gui/guiEditBoxWithScrollbar.cpp | 75 +--------------------- src/gui/guiEditBoxWithScrollbar.h | 2 - src/gui/intlGUIEditBox.cpp | 99 +---------------------------- src/gui/intlGUIEditBox.h | 9 +-- 6 files changed, 104 insertions(+), 182 deletions(-) diff --git a/src/gui/guiEditBox.cpp b/src/gui/guiEditBox.cpp index 11d080be9..1214125a8 100644 --- a/src/gui/guiEditBox.cpp +++ b/src/gui/guiEditBox.cpp @@ -689,6 +689,46 @@ bool GUIEditBox::onKeyDelete(const SEvent &event, s32 &mark_begin, s32 &mark_end return true; } +void GUIEditBox::inputChar(wchar_t c) +{ + if (!isEnabled() || !m_writable) + return; + + if (c != 0) { + if (Text.size() < m_max || m_max == 0) { + core::stringw s; + + if (m_mark_begin != m_mark_end) { + // clang-format off + // replace marked text + s32 real_begin = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + s32 real_end = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + s = Text.subString(0, real_begin); + s.append(c); + s.append(Text.subString(real_end, Text.size() - real_end)); + Text = s; + m_cursor_pos = real_begin + 1; + // clang-format on + } else { + // add new character + s = Text.subString(0, m_cursor_pos); + s.append(c); + s.append(Text.subString(m_cursor_pos, + Text.size() - m_cursor_pos)); + Text = s; + ++m_cursor_pos; + } + + m_blink_start_time = porting::getTimeMs(); + setTextMarkers(0, 0); + } + } + breakText(); + sendGuiEvent(EGET_EDITBOX_CHANGED); + calculateScrollPos(); +} + bool GUIEditBox::processMouse(const SEvent &event) { switch (event.MouseInput.Event) { @@ -817,3 +857,54 @@ void GUIEditBox::updateVScrollBar() } } } + +void GUIEditBox::deserializeAttributes( + io::IAttributes *in, io::SAttributeReadWriteOptions *options = 0) +{ + IGUIEditBox::deserializeAttributes(in, options); + + setOverrideColor(in->getAttributeAsColor("OverrideColor")); + enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled")); + setMax(in->getAttributeAsInt("MaxChars")); + setWordWrap(in->getAttributeAsBool("WordWrap")); + setMultiLine(in->getAttributeAsBool("MultiLine")); + setAutoScroll(in->getAttributeAsBool("AutoScroll")); + core::stringw ch = in->getAttributeAsStringW("PasswordChar"); + + if (ch.empty()) + setPasswordBox(in->getAttributeAsBool("PasswordBox")); + else + setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]); + + setTextAlignment((EGUI_ALIGNMENT)in->getAttributeAsEnumeration( + "HTextAlign", GUIAlignmentNames), + (EGUI_ALIGNMENT)in->getAttributeAsEnumeration( + "VTextAlign", GUIAlignmentNames)); + + setWritable(in->getAttributeAsBool("Writable")); + // setOverrideFont(in->getAttributeAsFont("OverrideFont")); +} + +//! Writes attributes of the element. +void GUIEditBox::serializeAttributes( + io::IAttributes *out, io::SAttributeReadWriteOptions *options = 0) const +{ + // IGUIEditBox::serializeAttributes(out,options); + + out->addBool("OverrideColorEnabled", m_override_color_enabled); + out->addColor("OverrideColor", m_override_color); + // out->addFont("OverrideFont",m_override_font); + out->addInt("MaxChars", m_max); + out->addBool("WordWrap", m_word_wrap); + out->addBool("MultiLine", m_multiline); + out->addBool("AutoScroll", m_autoscroll); + out->addBool("PasswordBox", m_passwordbox); + core::stringw ch = L" "; + ch[0] = m_passwordchar; + out->addString("PasswordChar", ch.c_str()); + out->addEnum("HTextAlign", m_halign, GUIAlignmentNames); + out->addEnum("VTextAlign", m_valign, GUIAlignmentNames); + out->addBool("Writable", m_writable); + + IGUIEditBox::serializeAttributes(out, options); +} diff --git a/src/gui/guiEditBox.h b/src/gui/guiEditBox.h index 3e41c7e51..a20eb61d7 100644 --- a/src/gui/guiEditBox.h +++ b/src/gui/guiEditBox.h @@ -129,6 +129,14 @@ public: //! called if an event happened. virtual bool OnEvent(const SEvent &event); + //! Writes attributes of the element. + virtual void serializeAttributes(io::IAttributes *out, + io::SAttributeReadWriteOptions *options) const; + + //! Reads attributes of the element + virtual void deserializeAttributes( + io::IAttributes *in, io::SAttributeReadWriteOptions *options); + protected: virtual void breakText() = 0; @@ -147,7 +155,7 @@ protected: virtual s32 getCursorPos(s32 x, s32 y) = 0; bool processKey(const SEvent &event); - virtual void inputChar(wchar_t c) = 0; + virtual void inputChar(wchar_t c); //! returns the line number that the cursor is on s32 getLineFromPos(s32 pos); diff --git a/src/gui/guiEditBoxWithScrollbar.cpp b/src/gui/guiEditBoxWithScrollbar.cpp index 707dbb7db..c72070787 100644 --- a/src/gui/guiEditBoxWithScrollbar.cpp +++ b/src/gui/guiEditBoxWithScrollbar.cpp @@ -481,44 +481,6 @@ void GUIEditBoxWithScrollBar::setTextRect(s32 line) m_current_text_rect += m_frame_rect.UpperLeftCorner; } - -void GUIEditBoxWithScrollBar::inputChar(wchar_t c) -{ - if (!isEnabled()) - return; - - if (c != 0) { - if (Text.size() < m_max || m_max == 0) { - core::stringw s; - - if (m_mark_begin != m_mark_end) { - // replace marked text - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - s = Text.subString(0, realmbgn); - s.append(c); - s.append(Text.subString(realmend, Text.size() - realmend)); - Text = s; - m_cursor_pos = realmbgn + 1; - } else { - // add new character - s = Text.subString(0, m_cursor_pos); - s.append(c); - s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos)); - Text = s; - ++m_cursor_pos; - } - - m_blink_start_time = porting::getTimeMs(); - setTextMarkers(0, 0); - } - } - breakText(); - calculateScrollPos(); - sendGuiEvent(EGET_EDITBOX_CHANGED); -} - // calculate autoscroll void GUIEditBoxWithScrollBar::calculateScrollPos() { @@ -682,54 +644,21 @@ void GUIEditBoxWithScrollBar::setBackgroundColor(const video::SColor &bg_color) //! Writes attributes of the element. void GUIEditBoxWithScrollBar::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options = 0) const { - // IGUIEditBox::serializeAttributes(out,options); - out->addBool("Border", m_border); out->addBool("Background", m_background); - out->addBool("OverrideColorEnabled", m_override_color_enabled); - out->addColor("OverrideColor", m_override_color); // out->addFont("OverrideFont", OverrideFont); - out->addInt("MaxChars", m_max); - out->addBool("WordWrap", m_word_wrap); - out->addBool("MultiLine", m_multiline); - out->addBool("AutoScroll", m_autoscroll); - out->addBool("PasswordBox", m_passwordbox); - core::stringw ch = L" "; - ch[0] = m_passwordchar; - out->addString("PasswordChar", ch.c_str()); - out->addEnum("HTextAlign", m_halign, GUIAlignmentNames); - out->addEnum("VTextAlign", m_valign, GUIAlignmentNames); - out->addBool("Writable", m_writable); - IGUIEditBox::serializeAttributes(out, options); + GUIEditBox::serializeAttributes(out, options); } //! Reads attributes of the element void GUIEditBoxWithScrollBar::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options = 0) { - IGUIEditBox::deserializeAttributes(in, options); + GUIEditBox::deserializeAttributes(in, options); setDrawBorder(in->getAttributeAsBool("Border")); setDrawBackground(in->getAttributeAsBool("Background")); - setOverrideColor(in->getAttributeAsColor("OverrideColor")); - enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled")); - setMax(in->getAttributeAsInt("MaxChars")); - setWordWrap(in->getAttributeAsBool("WordWrap")); - setMultiLine(in->getAttributeAsBool("MultiLine")); - setAutoScroll(in->getAttributeAsBool("AutoScroll")); - core::stringw ch = in->getAttributeAsStringW("PasswordChar"); - - if (!ch.size()) - setPasswordBox(in->getAttributeAsBool("PasswordBox")); - else - setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]); - - setTextAlignment((EGUI_ALIGNMENT)in->getAttributeAsEnumeration("HTextAlign", GUIAlignmentNames), - (EGUI_ALIGNMENT)in->getAttributeAsEnumeration("VTextAlign", GUIAlignmentNames)); - - // setOverrideFont(in->getAttributeAsFont("OverrideFont")); - setWritable(in->getAttributeAsBool("Writable")); } bool GUIEditBoxWithScrollBar::isDrawBackgroundEnabled() const { return false; } diff --git a/src/gui/guiEditBoxWithScrollbar.h b/src/gui/guiEditBoxWithScrollbar.h index b863ee614..3f7450dcb 100644 --- a/src/gui/guiEditBoxWithScrollbar.h +++ b/src/gui/guiEditBoxWithScrollbar.h @@ -49,8 +49,6 @@ protected: virtual void breakText(); //! sets the area of the given line virtual void setTextRect(s32 line); - //! adds a letter to the edit box - virtual void inputChar(wchar_t c); //! calculates the current scroll position void calculateScrollPos(); //! calculated the FrameRect diff --git a/src/gui/intlGUIEditBox.cpp b/src/gui/intlGUIEditBox.cpp index a61619148..0f09ea746 100644 --- a/src/gui/intlGUIEditBox.cpp +++ b/src/gui/intlGUIEditBox.cpp @@ -318,10 +318,7 @@ void intlGUIEditBox::draw() s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) { - IGUIFont* font = m_override_font; - IGUISkin* skin = Environment->getSkin(); - if (!m_override_font) - font = skin->getFont(); + IGUIFont* font = getActiveFont(); const u32 lineCount = (m_word_wrap || m_multiline) ? m_broken_text.size() : 1; @@ -547,49 +544,6 @@ void intlGUIEditBox::setTextRect(s32 line) } -void intlGUIEditBox::inputChar(wchar_t c) -{ - if (!isEnabled() || !m_writable) - return; - - if (c != 0) - { - if (Text.size() < m_max || m_max == 0) - { - core::stringw s; - - if (m_mark_begin != m_mark_end) - { - // replace marked text - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - s = Text.subString(0, realmbgn); - s.append(c); - s.append( Text.subString(realmend, Text.size()-realmend) ); - Text = s; - m_cursor_pos = realmbgn+1; - } - else - { - // add new character - s = Text.subString(0, m_cursor_pos); - s.append(c); - s.append( Text.subString(m_cursor_pos, Text.size()-m_cursor_pos) ); - Text = s; - ++m_cursor_pos; - } - - m_blink_start_time = porting::getTimeMs(); - setTextMarkers(0, 0); - } - } - breakText(); - sendGuiEvent(EGET_EDITBOX_CHANGED); - calculateScrollPos(); -} - - void intlGUIEditBox::calculateScrollPos() { if (!m_autoscroll) @@ -668,56 +622,5 @@ void intlGUIEditBox::createVScrollBar() m_vscrollbar->setLargeStep(10 * fontHeight); } - -//! Writes attributes of the element. -void intlGUIEditBox::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const -{ - // IGUIEditBox::serializeAttributes(out,options); - - out->addBool ("OverrideColorEnabled", m_override_color_enabled ); - out->addColor ("OverrideColor", m_override_color); - // out->addFont("OverrideFont",m_override_font); - out->addInt ("MaxChars", m_max); - out->addBool ("WordWrap", m_word_wrap); - out->addBool ("MultiLine", m_multiline); - out->addBool ("AutoScroll", m_autoscroll); - out->addBool ("PasswordBox", m_passwordbox); - core::stringw ch = L" "; - ch[0] = m_passwordchar; - out->addString("PasswordChar", ch.c_str()); - out->addEnum ("HTextAlign", m_halign, GUIAlignmentNames); - out->addEnum ("VTextAlign", m_valign, GUIAlignmentNames); - out->addBool ("Writable", m_writable); - - IGUIEditBox::serializeAttributes(out,options); -} - - -//! Reads attributes of the element -void intlGUIEditBox::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) -{ - IGUIEditBox::deserializeAttributes(in,options); - - setOverrideColor(in->getAttributeAsColor("OverrideColor")); - enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled")); - setMax(in->getAttributeAsInt("MaxChars")); - setWordWrap(in->getAttributeAsBool("WordWrap")); - setMultiLine(in->getAttributeAsBool("MultiLine")); - setAutoScroll(in->getAttributeAsBool("AutoScroll")); - core::stringw ch = in->getAttributeAsStringW("PasswordChar"); - - if (ch.empty()) - setPasswordBox(in->getAttributeAsBool("PasswordBox")); - else - setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]); - - setTextAlignment( (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("HTextAlign", GUIAlignmentNames), - (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("VTextAlign", GUIAlignmentNames)); - - setWritable(in->getAttributeAsBool("Writable")); - // setOverrideFont(in->getAttributeAsFont("OverrideFont")); -} - - } // end namespace gui } // end namespace irr diff --git a/src/gui/intlGUIEditBox.h b/src/gui/intlGUIEditBox.h index 2abc12d1a..007fe1c93 100644 --- a/src/gui/intlGUIEditBox.h +++ b/src/gui/intlGUIEditBox.h @@ -38,12 +38,6 @@ namespace gui //! Updates the absolute position, splits text if required virtual void updateAbsolutePosition(); - //! Writes attributes of the element. - virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const; - - //! Reads attributes of the element - virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options); - virtual void setCursorChar(const wchar_t cursorChar) {} virtual wchar_t getCursorChar() const { return L'|'; } @@ -57,8 +51,7 @@ namespace gui virtual void breakText(); //! sets the area of the given line virtual void setTextRect(s32 line); - //! adds a letter to the edit box - virtual void inputChar(wchar_t c); + //! calculates the current scroll position void calculateScrollPos(); From 5e6df0e7be46afe1dbdf6406e1109a8676a22092 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 16 Jan 2021 17:51:40 +0000 Subject: [PATCH 342/624] ContentDB: Ignore content not installed from ContentDB --- builtin/mainmenu/dlg_contentstore.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua index b5f71e753..3ad9ed28a 100644 --- a/builtin/mainmenu/dlg_contentstore.lua +++ b/builtin/mainmenu/dlg_contentstore.lua @@ -580,7 +580,7 @@ function store.update_paths() local mod_hash = {} pkgmgr.refresh_globals() for _, mod in pairs(pkgmgr.global_mods:get_list()) do - if mod.author then + if mod.author and mod.release > 0 then mod_hash[mod.author:lower() .. "/" .. mod.name] = mod end end @@ -588,14 +588,14 @@ function store.update_paths() local game_hash = {} pkgmgr.update_gamelist() for _, game in pairs(pkgmgr.games) do - if game.author ~= "" then + if game.author ~= "" and game.release > 0 then game_hash[game.author:lower() .. "/" .. game.id] = game end end local txp_hash = {} for _, txp in pairs(pkgmgr.get_texture_packs()) do - if txp.author then + if txp.author and txp.release > 0 then txp_hash[txp.author:lower() .. "/" .. txp.name] = txp end end From e86c93f0bfe6c094014705fd659f186e2723522d Mon Sep 17 00:00:00 2001 From: "M.K" Date: Mon, 18 Jan 2021 01:45:32 +0100 Subject: [PATCH 343/624] Fix double word "true" in minetest.is_nan explanation (#10820) --- doc/client_lua_api.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/client_lua_api.txt b/doc/client_lua_api.txt index 36eeafcf1..098596481 100644 --- a/doc/client_lua_api.txt +++ b/doc/client_lua_api.txt @@ -620,7 +620,7 @@ Helper functions * `minetest.is_yes(arg)` * returns whether `arg` can be interpreted as yes * `minetest.is_nan(arg)` - * returns true true when the passed number represents NaN. + * returns true when the passed number represents NaN. * `table.copy(table)`: returns a table * returns a deep copy of `table` From 6693a4b30e37157becf79b4b20e991271a425609 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 20 Jan 2021 20:37:24 +0000 Subject: [PATCH 344/624] Fix Android support in bump_version.sh (#10836) --- build/android/build.gradle | 2 +- util/bump_version.sh | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/build/android/build.gradle b/build/android/build.gradle index 111a506e1..6091ff0bc 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. project.ext.set("versionMajor", 5) // Version Major -project.ext.set("versionMinor", 3) // Version Minor +project.ext.set("versionMinor", 4) // Version Minor project.ext.set("versionPatch", 0) // Version Patch project.ext.set("versionExtra", "-dev") // Version Extra project.ext.set("versionCode", 30) // Android Version Code diff --git a/util/bump_version.sh b/util/bump_version.sh index 996962199..4b12935bd 100755 --- a/util/bump_version.sh +++ b/util/bump_version.sh @@ -21,14 +21,14 @@ prompt_for_number() { # * Commit the changes # * Tag with current version perform_release() { + RELEASE_DATE=$(date +%Y-%m-%d) + sed -i -re "s/^set\(DEVELOPMENT_BUILD TRUE\)$/set(DEVELOPMENT_BUILD FALSE)/" CMakeLists.txt + sed -i 's/project.ext.set("versionExtra", "-dev")/project.ext.set("versionExtra", "")/' build/android/build.gradle sed -i -re "s/\"versionCode\", [0-9]+/\"versionCode\", $NEW_ANDROID_VERSION_CODE/" build/android/build.gradle sed -i '/\ Date: Thu, 21 Jan 2021 05:31:59 +0700 Subject: [PATCH 345/624] Android: Update Gradle, NDK, Build Tools, and SQLite version (#10833) --- build/android/app/build.gradle | 4 ++-- build/android/build.gradle | 2 +- build/android/gradle/wrapper/gradle-wrapper.properties | 4 ++-- build/android/native/build.gradle | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build/android/app/build.gradle b/build/android/app/build.gradle index fccb7b3b4..7f4eba8c4 100644 --- a/build/android/app/build.gradle +++ b/build/android/app/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 - buildToolsVersion '30.0.2' - ndkVersion '21.3.6528147' + buildToolsVersion '30.0.3' + ndkVersion '22.0.7026061' defaultConfig { applicationId 'net.minetest.minetest' minSdkVersion 16 diff --git a/build/android/build.gradle b/build/android/build.gradle index 6091ff0bc..61b24caab 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -15,7 +15,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:4.1.1' classpath 'de.undercouch:gradle-download-task:4.1.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/build/android/gradle/wrapper/gradle-wrapper.properties b/build/android/gradle/wrapper/gradle-wrapper.properties index ed85703f3..7fd9307d7 100644 --- a/build/android/gradle/wrapper/gradle-wrapper.properties +++ b/build/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Sep 07 22:11:10 CEST 2020 +#Fri Jan 08 17:52:00 UTC 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-all.zip diff --git a/build/android/native/build.gradle b/build/android/native/build.gradle index 69e1cf461..8ea6347b3 100644 --- a/build/android/native/build.gradle +++ b/build/android/native/build.gradle @@ -3,8 +3,8 @@ apply plugin: 'de.undercouch.download' android { compileSdkVersion 29 - buildToolsVersion '30.0.2' - ndkVersion '21.3.6528147' + buildToolsVersion '30.0.3' + ndkVersion '22.0.7026061' defaultConfig { minSdkVersion 16 targetSdkVersion 29 @@ -71,7 +71,7 @@ task getDeps(dependsOn: downloadDeps, type: Copy) { } // get sqlite -def sqlite_ver = '3320200' +def sqlite_ver = '3340000' task downloadSqlite(dependsOn: getDeps, type: Download) { src 'https://www.sqlite.org/2020/sqlite-amalgamation-' + sqlite_ver + '.zip' dest new File(buildDir, 'sqlite.zip') From eb8af614a5ee876a2bc9312506bfcfda20501232 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Wed, 20 Jan 2021 22:32:18 +0000 Subject: [PATCH 346/624] Local tab: rename 'Configure' to 'Select Mods' (#10779) Co-authored-by: Zughy <4279489-marco_a@users.noreply.gitlab.com> Co-authored-by: rubenwardy --- builtin/mainmenu/tab_local.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/mainmenu/tab_local.lua b/builtin/mainmenu/tab_local.lua index 2eb4752bc..0e06c3bef 100644 --- a/builtin/mainmenu/tab_local.lua +++ b/builtin/mainmenu/tab_local.lua @@ -116,7 +116,7 @@ local function get_formspec(tabview, name, tabdata) retval = retval .. "button[3.9,3.8;2.8,1;world_delete;".. fgettext("Delete") .. "]" .. - "button[6.55,3.8;2.8,1;world_configure;".. fgettext("Configure") .. "]" .. + "button[6.55,3.8;2.8,1;world_configure;".. fgettext("Select Mods") .. "]" .. "button[9.2,3.8;2.8,1;world_create;".. fgettext("New") .. "]" .. "label[3.9,-0.05;".. fgettext("Select World:") .. "]".. "checkbox[0,-0.20;cb_creative_mode;".. fgettext("Creative Mode") .. ";" .. From 7f25823bd4f1a822449eb783ee555651a89ce9de Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Thu, 21 Jan 2021 00:51:24 +0100 Subject: [PATCH 347/624] Allow "liquid" and "flowingliquid" drawtypes even if liquidtype=none (#10737) --- games/devtest/mods/testnodes/drawtypes.lua | 103 ++++++++++---------- games/devtest/mods/testnodes/liquids.lua | 8 -- games/devtest/mods/testnodes/properties.lua | 2 - src/client/content_mapblock.cpp | 4 +- src/nodedef.cpp | 4 +- 5 files changed, 55 insertions(+), 66 deletions(-) diff --git a/games/devtest/mods/testnodes/drawtypes.lua b/games/devtest/mods/testnodes/drawtypes.lua index b3ab2b322..d71c3a121 100644 --- a/games/devtest/mods/testnodes/drawtypes.lua +++ b/games/devtest/mods/testnodes/drawtypes.lua @@ -350,68 +350,72 @@ minetest.register_node("testnodes:plantlike_rooted_degrotate", { }) -- Demonstrative liquid nodes, source and flowing form. -minetest.register_node("testnodes:liquid", { - description = S("Source Liquid Drawtype Test Node"), - drawtype = "liquid", - paramtype = "light", - tiles = { - "testnodes_liquidsource.png", - }, - special_tiles = { - {name="testnodes_liquidsource.png", backface_culling=false}, - {name="testnodes_liquidsource.png", backface_culling=true}, - }, - use_texture_alpha = true, +-- DRAWTYPE ONLY, NO LIQUID PHYSICS! +-- Liquid ranges 0 to 8 +for r = 0, 8 do + minetest.register_node("testnodes:liquid_"..r, { + description = S("Source Liquid Drawtype Test Node, Range @1", r), + drawtype = "liquid", + paramtype = "light", + tiles = { + "testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", + }, + special_tiles = { + {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false}, + {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=true}, + }, + use_texture_alpha = true, - walkable = false, - liquidtype = "source", - liquid_range = 1, - liquid_viscosity = 0, - liquid_alternative_flowing = "testnodes:liquid_flowing", - liquid_alternative_source = "testnodes:liquid", - groups = { dig_immediate = 3 }, -}) -minetest.register_node("testnodes:liquid_flowing", { - description = S("Flowing Liquid Drawtype Test Node"), - drawtype = "flowingliquid", - paramtype = "light", - paramtype2 = "flowingliquid", - tiles = { - "testnodes_liquidflowing.png", - }, - special_tiles = { - {name="testnodes_liquidflowing.png", backface_culling=false}, - {name="testnodes_liquidflowing.png", backface_culling=false}, - }, - use_texture_alpha = true, + walkable = false, + liquid_range = r, + liquid_viscosity = 0, + liquid_alternative_flowing = "testnodes:liquid_flowing_"..r, + liquid_alternative_source = "testnodes:liquid_"..r, + groups = { dig_immediate = 3 }, + }) + minetest.register_node("testnodes:liquid_flowing_"..r, { + description = S("Flowing Liquid Drawtype Test Node, Range @1", r), + drawtype = "flowingliquid", + paramtype = "light", + paramtype2 = "flowingliquid", + tiles = { + "testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", + }, + special_tiles = { + {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false}, + {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false}, + }, + use_texture_alpha = true, - walkable = false, - liquidtype = "flowing", - liquid_range = 1, - liquid_viscosity = 0, - liquid_alternative_flowing = "testnodes:liquid_flowing", - liquid_alternative_source = "testnodes:liquid", - groups = { dig_immediate = 3 }, -}) + walkable = false, + liquid_range = r, + liquid_viscosity = 0, + liquid_alternative_flowing = "testnodes:liquid_flowing_"..r, + liquid_alternative_source = "testnodes:liquid_"..r, + groups = { dig_immediate = 3 }, + }) + +end + +-- Waving liquid test (drawtype only) minetest.register_node("testnodes:liquid_waving", { description = S("Waving Source Liquid Drawtype Test Node"), drawtype = "liquid", paramtype = "light", tiles = { - "testnodes_liquidsource.png^[brighten", + "testnodes_liquidsource.png^[colorize:#0000FF:127", }, special_tiles = { - {name="testnodes_liquidsource.png^[brighten", backface_culling=false}, - {name="testnodes_liquidsource.png^[brighten", backface_culling=true}, + {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=false}, + {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=true}, }, use_texture_alpha = true, waving = 3, walkable = false, - liquidtype = "source", liquid_range = 1, liquid_viscosity = 0, liquid_alternative_flowing = "testnodes:liquid_flowing_waving", @@ -424,18 +428,17 @@ minetest.register_node("testnodes:liquid_flowing_waving", { paramtype = "light", paramtype2 = "flowingliquid", tiles = { - "testnodes_liquidflowing.png^[brighten", + "testnodes_liquidflowing.png^[colorize:#0000FF:127", }, special_tiles = { - {name="testnodes_liquidflowing.png^[brighten", backface_culling=false}, - {name="testnodes_liquidflowing.png^[brighten", backface_culling=false}, + {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false}, + {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false}, }, use_texture_alpha = true, waving = 3, walkable = false, - liquidtype = "flowing", liquid_range = 1, liquid_viscosity = 0, liquid_alternative_flowing = "testnodes:liquid_flowing_waving", @@ -443,8 +446,6 @@ minetest.register_node("testnodes:liquid_flowing_waving", { groups = { dig_immediate = 3 }, }) - - -- Invisible node minetest.register_node("testnodes:airlike", { description = S("Airlike Drawtype Test Node"), diff --git a/games/devtest/mods/testnodes/liquids.lua b/games/devtest/mods/testnodes/liquids.lua index e316782ad..abef9e0b7 100644 --- a/games/devtest/mods/testnodes/liquids.lua +++ b/games/devtest/mods/testnodes/liquids.lua @@ -12,8 +12,6 @@ for d=0, 8 do alpha = 192, paramtype = "light", walkable = false, - pointable = false, - diggable = false, buildable_to = true, is_ground_content = false, liquidtype = "source", @@ -34,8 +32,6 @@ for d=0, 8 do paramtype = "light", paramtype2 = "flowingliquid", walkable = false, - pointable = false, - diggable = false, buildable_to = true, is_ground_content = false, liquidtype = "flowing", @@ -56,8 +52,6 @@ for d=0, 8 do alpha = 192, paramtype = "light", walkable = false, - pointable = false, - diggable = false, buildable_to = true, is_ground_content = false, liquidtype = "source", @@ -78,8 +72,6 @@ for d=0, 8 do paramtype = "light", paramtype2 = "flowingliquid", walkable = false, - pointable = false, - diggable = false, buildable_to = true, is_ground_content = false, liquidtype = "flowing", diff --git a/games/devtest/mods/testnodes/properties.lua b/games/devtest/mods/testnodes/properties.lua index 01846a5f0..c6331a6ed 100644 --- a/games/devtest/mods/testnodes/properties.lua +++ b/games/devtest/mods/testnodes/properties.lua @@ -118,7 +118,6 @@ minetest.register_node("testnodes:liquid_nojump", { paramtype = "light", pointable = false, liquids_pointable = true, - diggable = false, buildable_to = true, is_ground_content = false, post_effect_color = {a = 70, r = 255, g = 0, b = 200}, @@ -148,7 +147,6 @@ minetest.register_node("testnodes:liquidflowing_nojump", { paramtype2 = "flowingliquid", pointable = false, liquids_pointable = true, - diggable = false, buildable_to = true, is_ground_content = false, post_effect_color = {a = 70, r = 255, g = 0, b = 200}, diff --git a/src/client/content_mapblock.cpp b/src/client/content_mapblock.cpp index df2748212..90284ecce 100644 --- a/src/client/content_mapblock.cpp +++ b/src/client/content_mapblock.cpp @@ -513,10 +513,10 @@ f32 MapblockMeshGenerator::getCornerLevel(int i, int k) count++; } else if (content == CONTENT_AIR) { air_count++; - if (air_count >= 2) - return -0.5 * BS + 0.2; } } + if (air_count >= 2) + return -0.5 * BS + 0.2; if (count > 0) return sum / count; return 0; diff --git a/src/nodedef.cpp b/src/nodedef.cpp index f9d15a9f6..1740b010a 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -788,14 +788,12 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc solidness = 0; break; case NDT_LIQUID: - assert(liquid_type == LIQUID_SOURCE); if (tsettings.opaque_water) alpha = 255; solidness = 1; is_liquid = true; break; case NDT_FLOWINGLIQUID: - assert(liquid_type == LIQUID_FLOWING); solidness = 0; if (tsettings.opaque_water) alpha = 255; @@ -1596,7 +1594,7 @@ static void removeDupes(std::vector &list) void NodeDefManager::resolveCrossrefs() { for (ContentFeatures &f : m_content_features) { - if (f.liquid_type != LIQUID_NONE) { + if (f.liquid_type != LIQUID_NONE || f.drawtype == NDT_LIQUID || f.drawtype == NDT_FLOWINGLIQUID) { f.liquid_alternative_flowing_id = getId(f.liquid_alternative_flowing); f.liquid_alternative_source_id = getId(f.liquid_alternative_source); continue; From d92da47697a2520f50c1324fcff11617770deb32 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 20 Jan 2021 15:01:48 +0100 Subject: [PATCH 348/624] Improve --version output to include Lua(JIT) version --- src/main.cpp | 15 ++++++++++++++- src/version.cpp | 5 +++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index af6d307dc..f7238176b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -47,11 +47,19 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "gui/guiEngine.h" #include "gui/mainmenumanager.h" #endif - #ifdef HAVE_TOUCHSCREENGUI #include "gui/touchscreengui.h" #endif +// for version information only +extern "C" { +#if USE_LUAJIT + #include +#else + #include +#endif +} + #if !defined(SERVER) && \ (IRRLICHT_VERSION_MAJOR == 1) && \ (IRRLICHT_VERSION_MINOR == 8) && \ @@ -350,6 +358,11 @@ static void print_version() << " (" << porting::getPlatformName() << ")" << std::endl; #ifndef SERVER std::cout << "Using Irrlicht " IRRLICHT_SDK_VERSION << std::endl; +#endif +#if USE_LUAJIT + std::cout << "Using " << LUAJIT_VERSION << std::endl; +#else + std::cout << "Using " << LUA_RELEASE << std::endl; #endif std::cout << g_build_info << std::endl; } diff --git a/src/version.cpp b/src/version.cpp index 241228a6a..c555f30af 100644 --- a/src/version.cpp +++ b/src/version.cpp @@ -33,11 +33,12 @@ const char *g_version_hash = VERSION_GITHASH; const char *g_build_info = "BUILD_TYPE=" BUILD_TYPE "\n" "RUN_IN_PLACE=" STR(RUN_IN_PLACE) "\n" + "USE_CURL=" STR(USE_CURL) "\n" +#ifndef SERVER "USE_GETTEXT=" STR(USE_GETTEXT) "\n" "USE_SOUND=" STR(USE_SOUND) "\n" - "USE_CURL=" STR(USE_CURL) "\n" "USE_FREETYPE=" STR(USE_FREETYPE) "\n" - "USE_LUAJIT=" STR(USE_LUAJIT) "\n" +#endif "STATIC_SHAREDIR=" STR(STATIC_SHAREDIR) #if USE_GETTEXT && defined(STATIC_LOCALEDIR) "\n" "STATIC_LOCALEDIR=" STR(STATIC_LOCALEDIR) From ea5d6312c1ab6ff3e859fcd7a429a384f0f0ff91 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Thu, 21 Jan 2021 17:37:38 +0000 Subject: [PATCH 349/624] ObjectRef: fix some v3f checks (#10602) --- doc/lua_api.txt | 23 ++++++++++---------- src/script/lua_api/l_object.cpp | 37 +++++++++++++++------------------ 2 files changed, 29 insertions(+), 31 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 4ef67261a..317bbe577 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6239,21 +6239,22 @@ object you are working with still exists. `frame_loop`. * `set_animation_frame_speed(frame_speed)` * `frame_speed`: number, default: `15.0` -* `set_attach(parent, bone, position, rotation, forced_visible)` - * `bone`: string - * `position`: `{x=num, y=num, z=num}` (relative) - * `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees +* `set_attach(parent[, bone, position, rotation, forced_visible])` + * `bone`: string. Default is `""`, the root bone + * `position`: `{x=num, y=num, z=num}`, relative, default `{x=0, y=0, z=0}` + * `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees. + Default `{x=0, y=0, z=0}` * `forced_visible`: Boolean to control whether the attached entity - should appear in first person. + should appear in first person. Default `false`. * `get_attach()`: returns parent, bone, position, rotation, forced_visible, or nil if it isn't attached. * `get_children()`: returns a list of ObjectRefs that are attached to the object. * `set_detach()` -* `set_bone_position(bone, position, rotation)` - * `bone`: string - * `position`: `{x=num, y=num, z=num}` (relative) - * `rotation`: `{x=num, y=num, z=num}` +* `set_bone_position([bone, position, rotation])` + * `bone`: string. Default is `""`, the root bone + * `position`: `{x=num, y=num, z=num}`, relative, `default {x=0, y=0, z=0}` + * `rotation`: `{x=num, y=num, z=num}`, default `{x=0, y=0, z=0}` * `get_bone_position(bone)`: returns position and rotation of the bone * `set_properties(object property table)` * `get_properties()`: returns object property table @@ -6581,8 +6582,8 @@ object you are working with still exists. * `frame_speed` sets the animations frame speed. Default is 30. * `get_local_animation()`: returns idle, walk, dig, walk_while_dig tables and `frame_speed`. -* `set_eye_offset(firstperson, thirdperson)`: defines offset vectors for camera - per player. +* `set_eye_offset([firstperson, thirdperson])`: defines offset vectors for + camera per player. An argument defaults to `{x=0, y=0, z=0}` if unspecified. * in first person view * in third person view (max. values `{x=-10/10,y=-10,15,z=-5/5}`) * `get_eye_offset()`: returns first and third person offsets. diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index f52e4892e..ba201a9d3 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -399,7 +399,7 @@ int ObjectRef::l_get_animation(lua_State *L) if (sao == nullptr) return 0; - v2f frames = v2f(1,1); + v2f frames = v2f(1, 1); float frame_speed = 15; float frame_blend = 0; bool frame_loop = true; @@ -463,8 +463,8 @@ int ObjectRef::l_set_eye_offset(lua_State *L) if (player == nullptr) return 0; - v3f offset_first = read_v3f(L, 2); - v3f offset_third = read_v3f(L, 3); + v3f offset_first = readParam(L, 2, v3f(0, 0, 0)); + v3f offset_third = readParam(L, 3, v3f(0, 0, 0)); // Prevent abuse of offset values (keep player always visible) offset_third.X = rangelim(offset_third.X,-10,10); @@ -537,9 +537,9 @@ int ObjectRef::l_set_bone_position(lua_State *L) if (sao == nullptr) return 0; - std::string bone = readParam(L, 2); - v3f position = check_v3f(L, 3); - v3f rotation = check_v3f(L, 4); + std::string bone = readParam(L, 2, ""); + v3f position = readParam(L, 3, v3f(0, 0, 0)); + v3f rotation = readParam(L, 4, v3f(0, 0, 0)); sao->setBonePosition(bone, position, rotation); return 0; @@ -554,7 +554,7 @@ int ObjectRef::l_get_bone_position(lua_State *L) if (sao == nullptr) return 0; - std::string bone = readParam(L, 2); + std::string bone = readParam(L, 2, ""); v3f position = v3f(0, 0, 0); v3f rotation = v3f(0, 0, 0); @@ -578,10 +578,10 @@ int ObjectRef::l_set_attach(lua_State *L) if (sao == parent) throw LuaError("ObjectRef::set_attach: attaching object to itself is not allowed."); - int parent_id = 0; + int parent_id; std::string bone; - v3f position = v3f(0, 0, 0); - v3f rotation = v3f(0, 0, 0); + v3f position; + v3f rotation; bool force_visible; sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); @@ -590,9 +590,9 @@ int ObjectRef::l_set_attach(lua_State *L) old_parent->removeAttachmentChild(sao->getId()); } - bone = readParam(L, 3, ""); - position = read_v3f(L, 4); - rotation = read_v3f(L, 5); + bone = readParam(L, 3, ""); + position = readParam(L, 4, v3f(0, 0, 0)); + rotation = readParam(L, 5, v3f(0, 0, 0)); force_visible = readParam(L, 6, false); sao->setAttachment(parent->getId(), bone, position, rotation, force_visible); @@ -609,10 +609,10 @@ int ObjectRef::l_get_attach(lua_State *L) if (sao == nullptr) return 0; - int parent_id = 0; + int parent_id; std::string bone; - v3f position = v3f(0, 0, 0); - v3f rotation = v3f(0, 0, 0); + v3f position; + v3f rotation; bool force_visible; sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); @@ -892,9 +892,6 @@ int ObjectRef::l_set_yaw(lua_State *L) if (entitysao == nullptr) return 0; - if (isNaN(L, 2)) - throw LuaError("ObjectRef::set_yaw: NaN value is not allowed."); - float yaw = readParam(L, 2) * core::RADTODEG; entitysao->setRotation(v3f(0, yaw, 0)); @@ -2199,7 +2196,7 @@ int ObjectRef::l_set_minimap_modes(lua_State *L) luaL_checktype(L, 2, LUA_TTABLE); std::vector modes; - s16 selected_mode = luaL_checkint(L, 3); + s16 selected_mode = readParam(L, 3); lua_pushnil(L); while (lua_next(L, 2) != 0) { From 45ccfe26fb6e0a130e4925ec362cccb1f045a829 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Thu, 21 Jan 2021 18:17:09 +0000 Subject: [PATCH 350/624] Removed some obsolete code (#10562) Co-authored-by: Zughy <4279489-marco_a@users.noreply.gitlab.com> --- builtin/game/deprecated.lua | 25 +------------------------ builtin/game/item.lua | 4 ---- builtin/game/register.lua | 7 ------- doc/world_format.txt | 11 ----------- src/activeobject.h | 10 +++++----- src/mapgen/mapgen.h | 2 -- src/script/common/c_content.cpp | 17 ----------------- src/script/lua_api/l_mapgen.cpp | 3 --- src/server/player_sao.cpp | 2 +- 9 files changed, 7 insertions(+), 74 deletions(-) diff --git a/builtin/game/deprecated.lua b/builtin/game/deprecated.lua index 20f0482eb..c5c7848f5 100644 --- a/builtin/game/deprecated.lua +++ b/builtin/game/deprecated.lua @@ -1,28 +1,5 @@ -- Minetest: builtin/deprecated.lua --- --- Default material types --- -local function digprop_err() - core.log("deprecated", "The core.digprop_* functions are obsolete and need to be replaced by item groups.") -end - -core.digprop_constanttime = digprop_err -core.digprop_stonelike = digprop_err -core.digprop_dirtlike = digprop_err -core.digprop_gravellike = digprop_err -core.digprop_woodlike = digprop_err -core.digprop_leaveslike = digprop_err -core.digprop_glasslike = digprop_err - -function core.node_metadata_inventory_move_allow_all() - core.log("deprecated", "core.node_metadata_inventory_move_allow_all is obsolete and does nothing.") -end - -function core.add_to_creative_inventory(itemstring) - core.log("deprecated", "core.add_to_creative_inventory is obsolete and does nothing.") -end - -- -- EnvRef -- @@ -77,7 +54,7 @@ core.setting_save = setting_proxy("write") function core.register_on_auth_fail(func) core.log("deprecated", "core.register_on_auth_fail " .. - "is obsolete and should be replaced by " .. + "is deprecated and should be replaced by " .. "core.register_on_authplayer instead.") core.register_on_authplayer(function (player_name, ip, is_success) diff --git a/builtin/game/item.lua b/builtin/game/item.lua index 109712b42..0df25b455 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -705,10 +705,6 @@ core.nodedef_default = { on_receive_fields = nil, - on_metadata_inventory_move = core.node_metadata_inventory_move_allow_all, - on_metadata_inventory_offer = core.node_metadata_inventory_offer_allow_all, - on_metadata_inventory_take = core.node_metadata_inventory_take_allow_all, - -- Node properties drawtype = "normal", visual_scale = 1.0, diff --git a/builtin/game/register.lua b/builtin/game/register.lua index 93e1dad12..b006957e9 100644 --- a/builtin/game/register.lua +++ b/builtin/game/register.lua @@ -324,13 +324,6 @@ for name in pairs(forbidden_item_names) do register_alias_raw(name, "") end - --- Obsolete: --- Aliases for core.register_alias (how ironic...) --- core.alias_node = core.register_alias --- core.alias_tool = core.register_alias --- core.alias_craftitem = core.register_alias - -- -- Built-in node definitions. Also defined in C. -- diff --git a/doc/world_format.txt b/doc/world_format.txt index 73a03e5ee..a8a9e463e 100644 --- a/doc/world_format.txt +++ b/doc/world_format.txt @@ -493,19 +493,8 @@ Static objects are persistent freely moving objects in the world. Object types: 1: Test object -2: Item -3: Rat (obsolete) -4: Oerkki (obsolete) -5: Firefly (obsolete) -6: MobV2 (obsolete) 7: LuaEntity -1: Item: - u8 version - version 0: - u16 len - u8[len] itemstring - 7: LuaEntity: u8 compatibility_byte (always 1) u16 len diff --git a/src/activeobject.h b/src/activeobject.h index 0829858ad..1d8a3712b 100644 --- a/src/activeobject.h +++ b/src/activeobject.h @@ -28,11 +28,11 @@ enum ActiveObjectType { ACTIVEOBJECT_TYPE_INVALID = 0, ACTIVEOBJECT_TYPE_TEST = 1, // Obsolete stuff - ACTIVEOBJECT_TYPE_ITEM = 2, -// ACTIVEOBJECT_TYPE_RAT = 3, -// ACTIVEOBJECT_TYPE_OERKKI1 = 4, -// ACTIVEOBJECT_TYPE_FIREFLY = 5, - ACTIVEOBJECT_TYPE_MOBV2 = 6, +// ACTIVEOBJECT_TYPE_ITEM = 2, +// ACTIVEOBJECT_TYPE_RAT = 3, +// ACTIVEOBJECT_TYPE_OERKKI1 = 4, +// ACTIVEOBJECT_TYPE_FIREFLY = 5, +// ACTIVEOBJECT_TYPE_MOBV2 = 6, // End obsolete stuff ACTIVEOBJECT_TYPE_LUAENTITY = 7, // Special type, not stored as a static object diff --git a/src/mapgen/mapgen.h b/src/mapgen/mapgen.h index 1487731e2..61db4f3b9 100644 --- a/src/mapgen/mapgen.h +++ b/src/mapgen/mapgen.h @@ -30,10 +30,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #define MAPGEN_DEFAULT_NAME "v7" /////////////////// Mapgen flags -#define MG_TREES 0x01 // Obsolete. Moved into mgv6 flags #define MG_CAVES 0x02 #define MG_DUNGEONS 0x04 -#define MG_FLAT 0x08 // Obsolete. Moved into mgv6 flags #define MG_LIGHT 0x10 #define MG_DECORATIONS 0x20 #define MG_BIOMES 0x40 diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index e3cb9042e..4316f412d 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -83,9 +83,6 @@ void read_item_definition(lua_State* L, int index, getboolfield(L, index, "liquids_pointable", def.liquids_pointable); - warn_if_field_exists(L, index, "tool_digging_properties", - "Obsolete; use tool_capabilities"); - lua_getfield(L, index, "tool_capabilities"); if(lua_istable(L, -1)){ def.tool_capabilities = new ToolCapabilities( @@ -653,20 +650,6 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) warningstream << "Node " << f.name.c_str() << " has a palette, but not a suitable paramtype2." << std::endl; - // Warn about some obsolete fields - warn_if_field_exists(L, index, "wall_mounted", - "Obsolete; use paramtype2 = 'wallmounted'"); - warn_if_field_exists(L, index, "light_propagates", - "Obsolete; determined from paramtype"); - warn_if_field_exists(L, index, "dug_item", - "Obsolete; use 'drop' field"); - warn_if_field_exists(L, index, "extra_dug_item", - "Obsolete; use 'drop' field"); - warn_if_field_exists(L, index, "extra_dug_item_rarity", - "Obsolete; use 'drop' field"); - warn_if_field_exists(L, index, "metadata_name", - "Obsolete; use on_add and metadata callbacks"); - // True for all ground-like things like stone and mud, false for eg. trees getboolfield(L, index, "is_ground_content", f.is_ground_content); f.light_propagates = (f.param_type == CPT_LIGHT); diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index 834938e56..498859f14 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -873,9 +873,6 @@ int ModApiMapgen::l_set_mapgen_params(lua_State *L) if (lua_isnumber(L, -1)) settingsmgr->setMapSetting("chunksize", readParam(L, -1), true); - warn_if_field_exists(L, 1, "flagmask", - "Obsolete: flags field now includes unset flags."); - lua_getfield(L, 1, "flags"); if (lua_isstring(L, -1)) settingsmgr->setMapSetting("mg_flags", readParam(L, -1), true); diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index c1b1401e6..110d2010d 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -148,7 +148,7 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version) void PlayerSAO::getStaticData(std::string * result) const { - FATAL_ERROR("Obsolete function"); + FATAL_ERROR("This function shall not be called for PlayerSAO"); } void PlayerSAO::step(float dtime, bool send_recommended) From 8ff209c4122fb83310939bf1b73f56b704a3c982 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Thu, 21 Jan 2021 19:01:37 +0000 Subject: [PATCH 351/624] Load system-wide texture packs too (#10791) Co-authored-by: Zughy <4279489-marco_a@users.noreply.gitlab.com> --- builtin/mainmenu/pkgmgr.lua | 59 +++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua index 5b8807310..bfb5d269a 100644 --- a/builtin/mainmenu/pkgmgr.lua +++ b/builtin/mainmenu/pkgmgr.lua @@ -72,6 +72,34 @@ local function cleanup_path(temppath) return temppath end +local function load_texture_packs(txtpath, retval) + local list = core.get_dir_list(txtpath, true) + local current_texture_path = core.settings:get("texture_path") + + for _, item in ipairs(list) do + if item ~= "base" then + local name = item + + local path = txtpath .. DIR_DELIM .. item .. DIR_DELIM + if path == current_texture_path then + name = fgettext("$1 (Enabled)", name) + end + + local conf = Settings(path .. "texture_pack.conf") + + retval[#retval + 1] = { + name = item, + author = conf:get("author"), + release = tonumber(conf:get("release") or "0"), + list_name = name, + type = "txp", + path = path, + enabled = path == current_texture_path, + } + end + end +end + function get_mods(path,retval,modpack) local mods = core.get_dir_list(path, true) @@ -112,7 +140,7 @@ function get_mods(path,retval,modpack) toadd.type = "mod" -- Check modpack.txt - -- Note: modpack.conf is already checked above + -- Note: modpack.conf is already checked above local modpackfile = io.open(prefix .. DIR_DELIM .. "modpack.txt") if modpackfile then modpackfile:close() @@ -136,32 +164,13 @@ pkgmgr = {} function pkgmgr.get_texture_packs() local txtpath = core.get_texturepath() - local list = core.get_dir_list(txtpath, true) + local txtpath_system = core.get_texturepath_share() local retval = {} - local current_texture_path = core.settings:get("texture_path") - - for _, item in ipairs(list) do - if item ~= "base" then - local name = item - - local path = txtpath .. DIR_DELIM .. item .. DIR_DELIM - if path == current_texture_path then - name = fgettext("$1 (Enabled)", name) - end - - local conf = Settings(path .. "texture_pack.conf") - - retval[#retval + 1] = { - name = item, - author = conf:get("author"), - release = tonumber(conf:get("release") or "0"), - list_name = name, - type = "txp", - path = path, - enabled = path == current_texture_path, - } - end + load_texture_packs(txtpath, retval) + -- on portable versions these two paths coincide. It avoids loading the path twice + if txtpath ~= txtpath_system then + load_texture_packs(txtpath_system, retval) end table.sort(retval, function(a, b) From 4fcd000e20a26120349184cb9d40342b7876e6b8 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Thu, 21 Jan 2021 19:08:06 +0000 Subject: [PATCH 352/624] MgOre: Fix invalid field polymorphism (#10846) --- src/mapgen/mg_ore.h | 47 ++++++++++++++------------------- src/script/lua_api/l_mapgen.cpp | 2 +- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/mapgen/mg_ore.h b/src/mapgen/mg_ore.h index 76420fab4..a58fa9bfe 100644 --- a/src/mapgen/mg_ore.h +++ b/src/mapgen/mg_ore.h @@ -52,7 +52,7 @@ extern FlagDesc flagdesc_ore[]; class Ore : public ObjDef, public NodeResolver { public: - static const bool NEEDS_NOISE = false; + const bool needs_noise; content_t c_ore; // the node to place std::vector c_wherein; // the nodes to be placed in @@ -68,7 +68,7 @@ public: Noise *noise = nullptr; std::unordered_set biomes; - Ore() = default;; + explicit Ore(bool needs_noise): needs_noise(needs_noise) {} virtual ~Ore(); virtual void resolveNodeNames(); @@ -83,17 +83,17 @@ protected: class OreScatter : public Ore { public: - static const bool NEEDS_NOISE = false; + OreScatter() : Ore(false) {} ObjDef *clone() const; - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreSheet : public Ore { public: - static const bool NEEDS_NOISE = true; + OreSheet() : Ore(true) {} ObjDef *clone() const; @@ -101,14 +101,12 @@ public: u16 column_height_max; float column_midpoint_factor; - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OrePuff : public Ore { public: - static const bool NEEDS_NOISE = true; - ObjDef *clone() const; NoiseParams np_puff_top; @@ -116,55 +114,50 @@ public: Noise *noise_puff_top = nullptr; Noise *noise_puff_bottom = nullptr; - OrePuff() = default; + OrePuff() : Ore(true) {} virtual ~OrePuff(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreBlob : public Ore { public: - static const bool NEEDS_NOISE = true; - ObjDef *clone() const; - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + OreBlob() : Ore(true) {} + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreVein : public Ore { public: - static const bool NEEDS_NOISE = true; - ObjDef *clone() const; float random_factor; Noise *noise2 = nullptr; int sizey_prev = 0; - OreVein() = default; + OreVein() : Ore(true) {} virtual ~OreVein(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreStratum : public Ore { public: - static const bool NEEDS_NOISE = false; - ObjDef *clone() const; NoiseParams np_stratum_thickness; Noise *noise_stratum_thickness = nullptr; u16 stratum_thickness; - OreStratum() = default; + OreStratum() : Ore(false) {} virtual ~OreStratum(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreManager : public ObjDefManager { diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index 498859f14..fad08e1f6 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -1335,7 +1335,7 @@ int ModApiMapgen::l_register_ore(lua_State *L) lua_getfield(L, index, "noise_params"); if (read_noiseparams(L, -1, &ore->np)) { ore->flags |= OREFLAG_USE_NOISE; - } else if (ore->NEEDS_NOISE) { + } else if (ore->needs_noise) { errorstream << "register_ore: specified ore type requires valid " "'noise_params' parameter" << std::endl; delete ore; From 67aa75d444d0e5cfff2728dbbcffd6f95b2fe88b Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Fri, 22 Jan 2021 15:08:57 +0000 Subject: [PATCH 353/624] Use JSON for favorites, move server list code to Lua (#10085) Co-authored-by: sfan5 --- builtin/mainmenu/common.lua | 53 ---- builtin/mainmenu/init.lua | 1 + builtin/mainmenu/serverlistmgr.lua | 241 ++++++++++++++++++ builtin/mainmenu/tab_online.lua | 115 +++++---- .../mainmenu/tests/favorites_wellformed.txt | 29 +++ builtin/mainmenu/tests/serverlistmgr_spec.lua | 36 +++ builtin/settingtypes.txt | 2 +- doc/menu_lua_api.txt | 26 -- minetest.conf.example | 2 +- src/client/clientlauncher.cpp | 8 - src/defaultsettings.cpp | 2 +- src/script/lua_api/l_mainmenu.cpp | 206 +-------------- src/script/lua_api/l_mainmenu.h | 4 - src/script/lua_api/l_util.cpp | 13 + src/script/lua_api/l_util.h | 3 + src/serverlist.cpp | 162 ------------ src/serverlist.h | 13 - 17 files changed, 388 insertions(+), 528 deletions(-) create mode 100644 builtin/mainmenu/serverlistmgr.lua create mode 100644 builtin/mainmenu/tests/favorites_wellformed.txt create mode 100644 builtin/mainmenu/tests/serverlistmgr_spec.lua diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua index 2bd8aa8a5..01f9a30b9 100644 --- a/builtin/mainmenu/common.lua +++ b/builtin/mainmenu/common.lua @@ -62,24 +62,6 @@ function image_column(tooltip, flagname) "5=" .. core.formspec_escape(defaulttexturedir .. "server_ping_1.png") end --------------------------------------------------------------------------------- -function order_favorite_list(list) - local res = {} - --orders the favorite list after support - for i = 1, #list do - local fav = list[i] - if is_server_protocol_compat(fav.proto_min, fav.proto_max) then - res[#res + 1] = fav - end - end - for i = 1, #list do - local fav = list[i] - if not is_server_protocol_compat(fav.proto_min, fav.proto_max) then - res[#res + 1] = fav - end - end - return res -end -------------------------------------------------------------------------------- function render_serverlist_row(spec, is_favorite) @@ -226,41 +208,6 @@ function menu_handle_key_up_down(fields, textlist, settingname) return false end --------------------------------------------------------------------------------- -function asyncOnlineFavourites() - if not menudata.public_known then - menudata.public_known = {{ - name = fgettext("Loading..."), - description = fgettext_ne("Try reenabling public serverlist and check your internet connection.") - }} - end - menudata.favorites = menudata.public_known - menudata.favorites_is_public = true - - if not menudata.public_downloading then - menudata.public_downloading = true - else - return - end - - core.handle_async( - function(param) - return core.get_favorites("online") - end, - nil, - function(result) - menudata.public_downloading = nil - local favs = order_favorite_list(result) - if favs[1] then - menudata.public_known = favs - menudata.favorites = menudata.public_known - menudata.favorites_is_public = true - end - core.event_handler("Refresh") - end - ) -end - -------------------------------------------------------------------------------- function text2textlist(xpos, ypos, width, height, tl_name, textlen, text, transparency) local textlines = core.wrap_text(text, textlen, true) diff --git a/builtin/mainmenu/init.lua b/builtin/mainmenu/init.lua index 656d1d149..45089c7c9 100644 --- a/builtin/mainmenu/init.lua +++ b/builtin/mainmenu/init.lua @@ -34,6 +34,7 @@ dofile(basepath .. "fstk" .. DIR_DELIM .. "ui.lua") dofile(menupath .. DIR_DELIM .. "async_event.lua") dofile(menupath .. DIR_DELIM .. "common.lua") dofile(menupath .. DIR_DELIM .. "pkgmgr.lua") +dofile(menupath .. DIR_DELIM .. "serverlistmgr.lua") dofile(menupath .. DIR_DELIM .. "textures.lua") dofile(menupath .. DIR_DELIM .. "dlg_config_world.lua") diff --git a/builtin/mainmenu/serverlistmgr.lua b/builtin/mainmenu/serverlistmgr.lua new file mode 100644 index 000000000..d98736e54 --- /dev/null +++ b/builtin/mainmenu/serverlistmgr.lua @@ -0,0 +1,241 @@ +--Minetest +--Copyright (C) 2020 rubenwardy +-- +--This program is free software; you can redistribute it and/or modify +--it under the terms of the GNU Lesser General Public License as published by +--the Free Software Foundation; either version 2.1 of the License, or +--(at your option) any later version. +-- +--This program is distributed in the hope that it will be useful, +--but WITHOUT ANY WARRANTY; without even the implied warranty of +--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +--GNU Lesser General Public License for more details. +-- +--You should have received a copy of the GNU Lesser General Public License along +--with this program; if not, write to the Free Software Foundation, Inc., +--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +serverlistmgr = {} + +-------------------------------------------------------------------------------- +local function order_server_list(list) + local res = {} + --orders the favorite list after support + for i = 1, #list do + local fav = list[i] + if is_server_protocol_compat(fav.proto_min, fav.proto_max) then + res[#res + 1] = fav + end + end + for i = 1, #list do + local fav = list[i] + if not is_server_protocol_compat(fav.proto_min, fav.proto_max) then + res[#res + 1] = fav + end + end + return res +end + +local public_downloading = false + +-------------------------------------------------------------------------------- +function serverlistmgr.sync() + if not serverlistmgr.servers then + serverlistmgr.servers = {{ + name = fgettext("Loading..."), + description = fgettext_ne("Try reenabling public serverlist and check your internet connection.") + }} + end + + if public_downloading then + return + end + public_downloading = true + + core.handle_async( + function(param) + local http = core.get_http_api() + local url = ("%s/list?proto_version_min=%d&proto_version_max=%d"):format( + core.settings:get("serverlist_url"), + core.get_min_supp_proto(), + core.get_max_supp_proto()) + + local response = http.fetch_sync({ url = url }) + if not response.succeeded then + return {} + end + + local retval = core.parse_json(response.data) + return retval and retval.list or {} + end, + nil, + function(result) + public_downloading = nil + local favs = order_server_list(result) + if favs[1] then + serverlistmgr.servers = favs + end + core.event_handler("Refresh") + end + ) +end + +-------------------------------------------------------------------------------- +local function get_favorites_path() + local base = core.get_user_path() .. DIR_DELIM .. "client" .. DIR_DELIM .. "serverlist" .. DIR_DELIM + return base .. core.settings:get("serverlist_file") +end + +-------------------------------------------------------------------------------- +local function save_favorites(favorites) + local filename = core.settings:get("serverlist_file") + -- If setting specifies legacy format change the filename to the new one + if filename:sub(#filename - 3):lower() == ".txt" then + core.settings:set("serverlist_file", filename:sub(1, #filename - 4) .. ".json") + end + + local path = get_favorites_path() + core.create_dir(path) + core.safe_file_write(path, core.write_json(favorites)) +end + +-------------------------------------------------------------------------------- +function serverlistmgr.read_legacy_favorites(path) + local file = io.open(path, "r") + if not file then + return nil + end + + local lines = {} + for line in file:lines() do + lines[#lines + 1] = line + end + file:close() + + local favorites = {} + + local i = 1 + while i < #lines do + local function pop() + local line = lines[i] + i = i + 1 + return line and line:trim() + end + + if pop():lower() == "[server]" then + local name = pop() + local address = pop() + local port = tonumber(pop()) + local description = pop() + + if name == "" then + name = nil + end + + if description == "" then + description = nil + end + + if not address or #address < 3 then + core.log("warning", "Malformed favorites file, missing address at line " .. i) + elseif not port or port < 1 or port > 65535 then + core.log("warning", "Malformed favorites file, missing port at line " .. i) + elseif (name and name:upper() == "[SERVER]") or + (address and address:upper() == "[SERVER]") or + (description and description:upper() == "[SERVER]") then + core.log("warning", "Potentially malformed favorites file, overran at line " .. i) + else + favorites[#favorites + 1] = { + name = name, + address = address, + port = port, + description = description + } + end + end + end + + return favorites +end + +-------------------------------------------------------------------------------- +local function read_favorites() + local path = get_favorites_path() + + -- If new format configured fall back to reading the legacy file + if path:sub(#path - 4):lower() == ".json" then + local file = io.open(path, "r") + if file then + local json = file:read("*all") + file:close() + return core.parse_json(json) + end + + path = path:sub(1, #path - 5) .. ".txt" + end + + local favs = serverlistmgr.read_legacy_favorites(path) + if favs then + save_favorites(favs) + os.remove(path) + end + return favs +end + +-------------------------------------------------------------------------------- +local function delete_favorite(favorites, del_favorite) + for i=1, #favorites do + local fav = favorites[i] + + if fav.address == del_favorite.address and fav.port == del_favorite.port then + table.remove(favorites, i) + return + end + end +end + +-------------------------------------------------------------------------------- +function serverlistmgr.get_favorites() + if serverlistmgr.favorites then + return serverlistmgr.favorites + end + + serverlistmgr.favorites = {} + + -- Add favorites, removing duplicates + local seen = {} + for _, fav in ipairs(read_favorites() or {}) do + local key = ("%s:%d"):format(fav.address:lower(), fav.port) + if not seen[key] then + seen[key] = true + serverlistmgr.favorites[#serverlistmgr.favorites + 1] = fav + end + end + + return serverlistmgr.favorites +end + +-------------------------------------------------------------------------------- +function serverlistmgr.add_favorite(new_favorite) + assert(type(new_favorite.port) == "number") + + -- Whitelist favorite keys + new_favorite = { + name = new_favorite.name, + address = new_favorite.address, + port = new_favorite.port, + description = new_favorite.description, + } + + local favorites = serverlistmgr.get_favorites() + delete_favorite(favorites, new_favorite) + table.insert(favorites, 1, new_favorite) + save_favorites(favorites) +end + +-------------------------------------------------------------------------------- +function serverlistmgr.delete_favorite(del_favorite) + local favorites = serverlistmgr.get_favorites() + delete_favorite(favorites, del_favorite) + save_favorites(favorites) +end diff --git a/builtin/mainmenu/tab_online.lua b/builtin/mainmenu/tab_online.lua index 8f1341161..e6748ed88 100644 --- a/builtin/mainmenu/tab_online.lua +++ b/builtin/mainmenu/tab_online.lua @@ -20,11 +20,11 @@ local function get_formspec(tabview, name, tabdata) -- Update the cached supported proto info, -- it may have changed after a change by the settings menu. common_update_cached_supp_proto() - local fav_selected + local selected if menudata.search_result then - fav_selected = menudata.search_result[tabdata.fav_selected] + selected = menudata.search_result[tabdata.selected] else - fav_selected = menudata.favorites[tabdata.fav_selected] + selected = serverlistmgr.servers[tabdata.selected] end if not tabdata.search_for then @@ -58,18 +58,18 @@ local function get_formspec(tabview, name, tabdata) -- Connect "button[9.88,4.9;2.3,1;btn_mp_connect;" .. fgettext("Connect") .. "]" - if tabdata.fav_selected and fav_selected then + if tabdata.selected and selected then if gamedata.fav then retval = retval .. "button[7.73,4.9;2.3,1;btn_delete_favorite;" .. fgettext("Del. Favorite") .. "]" end - if fav_selected.description then + if selected.description then retval = retval .. "textarea[8.1,2.3;4.23,2.9;;;" .. core.formspec_escape((gamedata.serverdescription or ""), true) .. "]" end end - --favourites + --favorites retval = retval .. "tablecolumns[" .. image_column(fgettext("Favorite"), "favorite") .. ";" .. image_column(fgettext("Ping")) .. ",padding=0.25;" .. @@ -83,13 +83,12 @@ local function get_formspec(tabview, name, tabdata) image_column(fgettext("PvP enabled"), "pvp") .. ",padding=0.25;" .. "color,span=1;" .. "text,padding=1]" .. - "table[-0.15,0.6;7.75,5.15;favourites;" + "table[-0.15,0.6;7.75,5.15;favorites;" if menudata.search_result then + local favs = serverlistmgr.get_favorites() for i = 1, #menudata.search_result do - local favs = core.get_favorites("local") local server = menudata.search_result[i] - for fav_id = 1, #favs do if server.address == favs[fav_id].address and server.port == favs[fav_id].port then @@ -103,29 +102,30 @@ local function get_formspec(tabview, name, tabdata) retval = retval .. render_serverlist_row(server, server.is_favorite) end - elseif #menudata.favorites > 0 then - local favs = core.get_favorites("local") + elseif #serverlistmgr.servers > 0 then + local favs = serverlistmgr.get_favorites() if #favs > 0 then for i = 1, #favs do - for j = 1, #menudata.favorites do - if menudata.favorites[j].address == favs[i].address and - menudata.favorites[j].port == favs[i].port then - table.insert(menudata.favorites, i, table.remove(menudata.favorites, j)) + for j = 1, #serverlistmgr.servers do + if serverlistmgr.servers[j].address == favs[i].address and + serverlistmgr.servers[j].port == favs[i].port then + table.insert(serverlistmgr.servers, i, table.remove(serverlistmgr.servers, j)) + end end - end - if favs[i].address ~= menudata.favorites[i].address then - table.insert(menudata.favorites, i, favs[i]) + if favs[i].address ~= serverlistmgr.servers[i].address then + table.insert(serverlistmgr.servers, i, favs[i]) end end end - retval = retval .. render_serverlist_row(menudata.favorites[1], (#favs > 0)) - for i = 2, #menudata.favorites do - retval = retval .. "," .. render_serverlist_row(menudata.favorites[i], (i <= #favs)) + + retval = retval .. render_serverlist_row(serverlistmgr.servers[1], (#favs > 0)) + for i = 2, #serverlistmgr.servers do + retval = retval .. "," .. render_serverlist_row(serverlistmgr.servers[i], (i <= #favs)) end end - if tabdata.fav_selected then - retval = retval .. ";" .. tabdata.fav_selected .. "]" + if tabdata.selected then + retval = retval .. ";" .. tabdata.selected .. "]" else retval = retval .. ";0]" end @@ -135,21 +135,20 @@ end -------------------------------------------------------------------------------- local function main_button_handler(tabview, fields, name, tabdata) - local serverlist = menudata.search_result or menudata.favorites + local serverlist = menudata.search_result or serverlistmgr.servers if fields.te_name then gamedata.playername = fields.te_name core.settings:set("name", fields.te_name) end - if fields.favourites then - local event = core.explode_table_event(fields.favourites) + if fields.favorites then + local event = core.explode_table_event(fields.favorites) local fav = serverlist[event.row] if event.type == "DCL" then if event.row <= #serverlist then - if menudata.favorites_is_public and - not is_server_protocol_compat_or_error( + if not is_server_protocol_compat_or_error( fav.proto_min, fav.proto_max) then return true end @@ -178,7 +177,7 @@ local function main_button_handler(tabview, fields, name, tabdata) if event.type == "CHG" then if event.row <= #serverlist then gamedata.fav = false - local favs = core.get_favorites("local") + local favs = serverlistmgr.get_favorites() local address = fav.address local port = fav.port gamedata.serverdescription = fav.description @@ -194,28 +193,28 @@ local function main_button_handler(tabview, fields, name, tabdata) core.settings:set("address", address) core.settings:set("remote_port", port) end - tabdata.fav_selected = event.row + tabdata.selected = event.row end return true end end if fields.key_up or fields.key_down then - local fav_idx = core.get_table_index("favourites") + local fav_idx = core.get_table_index("favorites") local fav = serverlist[fav_idx] if fav_idx then if fields.key_up and fav_idx > 1 then fav_idx = fav_idx - 1 - elseif fields.key_down and fav_idx < #menudata.favorites then + elseif fields.key_down and fav_idx < #serverlistmgr.servers then fav_idx = fav_idx + 1 end else fav_idx = 1 end - if not menudata.favorites or not fav then - tabdata.fav_selected = 0 + if not serverlistmgr.servers or not fav then + tabdata.selected = 0 return true end @@ -227,17 +226,17 @@ local function main_button_handler(tabview, fields, name, tabdata) core.settings:set("remote_port", port) end - tabdata.fav_selected = fav_idx + tabdata.selected = fav_idx return true end if fields.btn_delete_favorite then - local current_favourite = core.get_table_index("favourites") - if not current_favourite then return end + local current_favorite = core.get_table_index("favorites") + if not current_favorite then return end - core.delete_favorite(current_favourite) - asyncOnlineFavourites() - tabdata.fav_selected = nil + serverlistmgr.delete_favorite(serverlistmgr.servers[current_favorite]) + serverlistmgr.sync() + tabdata.selected = nil core.settings:set("address", "") core.settings:set("remote_port", "30000") @@ -251,11 +250,11 @@ local function main_button_handler(tabview, fields, name, tabdata) end if fields.btn_mp_search or fields.key_enter_field == "te_search" then - tabdata.fav_selected = 1 + tabdata.selected = 1 local input = fields.te_search:lower() tabdata.search_for = fields.te_search - if #menudata.favorites < 2 then + if #serverlistmgr.servers < 2 then return true end @@ -275,8 +274,8 @@ local function main_button_handler(tabview, fields, name, tabdata) -- Search the serverlist local search_result = {} - for i = 1, #menudata.favorites do - local server = menudata.favorites[i] + for i = 1, #serverlistmgr.servers do + local server = serverlistmgr.servers[i] local found = 0 for k = 1, #keywords do local keyword = keywords[k] @@ -293,7 +292,7 @@ local function main_button_handler(tabview, fields, name, tabdata) end end if found > 0 then - local points = (#menudata.favorites - i) / 5 + found + local points = (#serverlistmgr.servers - i) / 5 + found server.points = points table.insert(search_result, server) end @@ -312,7 +311,7 @@ local function main_button_handler(tabview, fields, name, tabdata) end if fields.btn_mp_refresh then - asyncOnlineFavourites() + serverlistmgr.sync() return true end @@ -321,30 +320,36 @@ local function main_button_handler(tabview, fields, name, tabdata) gamedata.playername = fields.te_name gamedata.password = fields.te_pwd gamedata.address = fields.te_address - gamedata.port = fields.te_port + gamedata.port = tonumber(fields.te_port) gamedata.selected_world = 0 - local fav_idx = core.get_table_index("favourites") + local fav_idx = core.get_table_index("favorites") local fav = serverlist[fav_idx] if fav_idx and fav_idx <= #serverlist and - fav.address == fields.te_address and - fav.port == fields.te_port then + fav.address == gamedata.address and + fav.port == gamedata.port then + + serverlistmgr.add_favorite(fav) gamedata.servername = fav.name gamedata.serverdescription = fav.description - if menudata.favorites_is_public and - not is_server_protocol_compat_or_error( + if not is_server_protocol_compat_or_error( fav.proto_min, fav.proto_max) then return true end else gamedata.servername = "" gamedata.serverdescription = "" + + serverlistmgr.add_favorite({ + address = gamedata.address, + port = gamedata.port, + }) end - core.settings:set("address", fields.te_address) - core.settings:set("remote_port", fields.te_port) + core.settings:set("address", gamedata.address) + core.settings:set("remote_port", gamedata.port) core.start() return true @@ -354,7 +359,7 @@ end local function on_change(type, old_tab, new_tab) if type == "LEAVE" then return end - asyncOnlineFavourites() + serverlistmgr.sync() end -------------------------------------------------------------------------------- diff --git a/builtin/mainmenu/tests/favorites_wellformed.txt b/builtin/mainmenu/tests/favorites_wellformed.txt new file mode 100644 index 000000000..8b87b4398 --- /dev/null +++ b/builtin/mainmenu/tests/favorites_wellformed.txt @@ -0,0 +1,29 @@ +[server] + +127.0.0.1 +30000 + + +[server] + +localhost +30000 + + +[server] + +vps.rubenwardy.com +30001 + + +[server] + +gundul.ddnss.de +39155 + + +[server] +VanessaE's Dreambuilder creative Server +daconcepts.com +30000 +VanessaE's Dreambuilder creative-mode server. Lots of mods, whitelisted buckets. diff --git a/builtin/mainmenu/tests/serverlistmgr_spec.lua b/builtin/mainmenu/tests/serverlistmgr_spec.lua new file mode 100644 index 000000000..148e9b794 --- /dev/null +++ b/builtin/mainmenu/tests/serverlistmgr_spec.lua @@ -0,0 +1,36 @@ +_G.core = {} +_G.unpack = table.unpack +_G.serverlistmgr = {} + +dofile("builtin/common/misc_helpers.lua") +dofile("builtin/mainmenu/serverlistmgr.lua") + +local base = "builtin/mainmenu/tests/" + +describe("legacy favorites", function() + it("loads well-formed correctly", function() + local favs = serverlistmgr.read_legacy_favorites(base .. "favorites_wellformed.txt") + + local expected = { + { + address = "127.0.0.1", + port = 30000, + }, + + { address = "localhost", port = 30000 }, + + { address = "vps.rubenwardy.com", port = 30001 }, + + { address = "gundul.ddnss.de", port = 39155 }, + + { + address = "daconcepts.com", + port = 30000, + name = "VanessaE's Dreambuilder creative Server", + description = "VanessaE's Dreambuilder creative-mode server. Lots of mods, whitelisted buckets." + }, + } + + assert.same(expected, favs) + end) +end) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 7e23b5641..21118134e 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -964,7 +964,7 @@ serverlist_url (Serverlist URL) string servers.minetest.net # File in client/serverlist/ that contains your favorite servers displayed in the # Multiplayer Tab. -serverlist_file (Serverlist file) string favoriteservers.txt +serverlist_file (Serverlist file) string favoriteservers.json # Maximum size of the out chat queue. # 0 to disable queueing and -1 to make the queue size unlimited. diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt index 1bcf697e9..db49c1736 100644 --- a/doc/menu_lua_api.txt +++ b/doc/menu_lua_api.txt @@ -253,32 +253,6 @@ Package - content which is downloadable from the content db, may or may not be i } -Favorites ---------- - -core.get_favorites(location) -> list of favorites (possible in async calls) -^ location: "local" or "online" -^ returns { - [1] = { - clients = , - clients_max = , - version = , - password = , - creative = , - damage = , - pvp = , - description = , - name = , - address =

    , - port = - clients_list = - mods = - }, - ... -} -core.delete_favorite(id, location) -> success - - Logging ------- diff --git a/minetest.conf.example b/minetest.conf.example index 086339037..3bb357813 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -1160,7 +1160,7 @@ # File in client/serverlist/ that contains your favorite servers displayed in the # Multiplayer Tab. # type: string -# serverlist_file = favoriteservers.txt +# serverlist_file = favoriteservers.json # Maximum size of the out chat queue. # 0 to disable queueing and -1 to make the queue size unlimited. diff --git a/src/client/clientlauncher.cpp b/src/client/clientlauncher.cpp index 29427f609..7245f29f0 100644 --- a/src/client/clientlauncher.cpp +++ b/src/client/clientlauncher.cpp @@ -487,14 +487,6 @@ bool ClientLauncher::launch_game(std::string &error_message, start_data.socket_port = myrand_range(49152, 65535); } else { g_settings->set("name", start_data.name); - if (!start_data.address.empty()) { - ServerListSpec server; - server["name"] = server_name; - server["address"] = start_data.address; - server["port"] = itos(start_data.socket_port); - server["description"] = server_description; - ServerList::insert(server); - } } if (start_data.name.length() > PLAYERNAME_SIZE - 1) { diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index e8fb18e05..114351d86 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -283,7 +283,7 @@ void set_default_settings(Settings *settings) // Main menu settings->setDefault("main_menu_path", ""); - settings->setDefault("serverlist_file", "favoriteservers.txt"); + settings->setDefault("serverlist_file", "favoriteservers.json"); #if USE_FREETYPE settings->setDefault("freetype", "true"); diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 5070ec7d4..4733c4003 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -274,207 +274,6 @@ int ModApiMainMenu::l_get_worlds(lua_State *L) return 1; } -/******************************************************************************/ -int ModApiMainMenu::l_get_favorites(lua_State *L) -{ - std::string listtype = "local"; - - if (!lua_isnone(L, 1)) { - listtype = luaL_checkstring(L, 1); - } - - std::vector servers; - - if(listtype == "online") { - servers = ServerList::getOnline(); - } else { - servers = ServerList::getLocal(); - } - - lua_newtable(L); - int top = lua_gettop(L); - unsigned int index = 1; - - for (const Json::Value &server : servers) { - - lua_pushnumber(L, index); - - lua_newtable(L); - int top_lvl2 = lua_gettop(L); - - if (!server["clients"].asString().empty()) { - std::string clients_raw = server["clients"].asString(); - char* endptr = 0; - int numbervalue = strtol(clients_raw.c_str(), &endptr,10); - - if ((!clients_raw.empty()) && (*endptr == 0)) { - lua_pushstring(L, "clients"); - lua_pushnumber(L, numbervalue); - lua_settable(L, top_lvl2); - } - } - - if (!server["clients_max"].asString().empty()) { - - std::string clients_max_raw = server["clients_max"].asString(); - char* endptr = 0; - int numbervalue = strtol(clients_max_raw.c_str(), &endptr,10); - - if ((!clients_max_raw.empty()) && (*endptr == 0)) { - lua_pushstring(L, "clients_max"); - lua_pushnumber(L, numbervalue); - lua_settable(L, top_lvl2); - } - } - - if (!server["version"].asString().empty()) { - lua_pushstring(L, "version"); - std::string topush = server["version"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (!server["proto_min"].asString().empty()) { - lua_pushstring(L, "proto_min"); - lua_pushinteger(L, server["proto_min"].asInt()); - lua_settable(L, top_lvl2); - } - - if (!server["proto_max"].asString().empty()) { - lua_pushstring(L, "proto_max"); - lua_pushinteger(L, server["proto_max"].asInt()); - lua_settable(L, top_lvl2); - } - - if (!server["password"].asString().empty()) { - lua_pushstring(L, "password"); - lua_pushboolean(L, server["password"].asBool()); - lua_settable(L, top_lvl2); - } - - if (!server["creative"].asString().empty()) { - lua_pushstring(L, "creative"); - lua_pushboolean(L, server["creative"].asBool()); - lua_settable(L, top_lvl2); - } - - if (!server["damage"].asString().empty()) { - lua_pushstring(L, "damage"); - lua_pushboolean(L, server["damage"].asBool()); - lua_settable(L, top_lvl2); - } - - if (!server["pvp"].asString().empty()) { - lua_pushstring(L, "pvp"); - lua_pushboolean(L, server["pvp"].asBool()); - lua_settable(L, top_lvl2); - } - - if (!server["description"].asString().empty()) { - lua_pushstring(L, "description"); - std::string topush = server["description"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (!server["name"].asString().empty()) { - lua_pushstring(L, "name"); - std::string topush = server["name"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (!server["address"].asString().empty()) { - lua_pushstring(L, "address"); - std::string topush = server["address"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (!server["port"].asString().empty()) { - lua_pushstring(L, "port"); - std::string topush = server["port"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (server.isMember("ping")) { - float ping = server["ping"].asFloat(); - lua_pushstring(L, "ping"); - lua_pushnumber(L, ping); - lua_settable(L, top_lvl2); - } - - if (server["clients_list"].isArray()) { - unsigned int index_lvl2 = 1; - lua_pushstring(L, "clients_list"); - lua_newtable(L); - int top_lvl3 = lua_gettop(L); - for (const Json::Value &client : server["clients_list"]) { - lua_pushnumber(L, index_lvl2); - std::string topush = client.asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl3); - index_lvl2++; - } - lua_settable(L, top_lvl2); - } - - if (server["mods"].isArray()) { - unsigned int index_lvl2 = 1; - lua_pushstring(L, "mods"); - lua_newtable(L); - int top_lvl3 = lua_gettop(L); - for (const Json::Value &mod : server["mods"]) { - - lua_pushnumber(L, index_lvl2); - std::string topush = mod.asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl3); - index_lvl2++; - } - lua_settable(L, top_lvl2); - } - - lua_settable(L, top); - index++; - } - return 1; -} - -/******************************************************************************/ -int ModApiMainMenu::l_delete_favorite(lua_State *L) -{ - std::vector servers; - - std::string listtype = "local"; - - if (!lua_isnone(L,2)) { - listtype = luaL_checkstring(L,2); - } - - if ((listtype != "local") && - (listtype != "online")) - return 0; - - - if(listtype == "online") { - servers = ServerList::getOnline(); - } else { - servers = ServerList::getLocal(); - } - - int fav_idx = luaL_checkinteger(L,1) -1; - - if ((fav_idx >= 0) && - (fav_idx < (int) servers.size())) { - - ServerList::deleteEntry(servers[fav_idx]); - } - - return 0; -} - /******************************************************************************/ int ModApiMainMenu::l_get_games(lua_State *L) { @@ -1130,11 +929,9 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(get_content_info); API_FCT(start); API_FCT(close); - API_FCT(get_favorites); API_FCT(show_keys_menu); API_FCT(create_world); API_FCT(delete_world); - API_FCT(delete_favorite); API_FCT(set_background); API_FCT(set_topleft_text); API_FCT(get_mapgen_names); @@ -1170,7 +967,6 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top) { API_FCT(get_worlds); API_FCT(get_games); - API_FCT(get_favorites); API_FCT(get_mapgen_names); API_FCT(get_user_path); API_FCT(get_modpath); @@ -1186,5 +982,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top) //API_FCT(extract_zip); //TODO remove dependency to GuiEngine API_FCT(may_modify_path); API_FCT(download_file); + API_FCT(get_min_supp_proto); + API_FCT(get_max_supp_proto); //API_FCT(gettext); (gettext lib isn't threadsafe) } diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index 0b02ed892..580a0df72 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -74,10 +74,6 @@ private: static int l_get_mapgen_names(lua_State *L); - static int l_get_favorites(lua_State *L); - - static int l_delete_favorite(lua_State *L); - static int l_gettext(lua_State *L); //packages diff --git a/src/script/lua_api/l_util.cpp b/src/script/lua_api/l_util.cpp index 6490eb578..203a0dd28 100644 --- a/src/script/lua_api/l_util.cpp +++ b/src/script/lua_api/l_util.cpp @@ -250,6 +250,17 @@ int ModApiUtil::l_get_builtin_path(lua_State *L) return 1; } +// get_user_path() +int ModApiUtil::l_get_user_path(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + + std::string path = porting::path_user; + lua_pushstring(L, path.c_str()); + + return 1; +} + // compress(data, method, level) int ModApiUtil::l_compress(lua_State *L) { @@ -486,6 +497,7 @@ void ModApiUtil::Initialize(lua_State *L, int top) API_FCT(is_yes); API_FCT(get_builtin_path); + API_FCT(get_user_path); API_FCT(compress); API_FCT(decompress); @@ -539,6 +551,7 @@ void ModApiUtil::InitializeAsync(lua_State *L, int top) API_FCT(is_yes); API_FCT(get_builtin_path); + API_FCT(get_user_path); API_FCT(compress); API_FCT(decompress); diff --git a/src/script/lua_api/l_util.h b/src/script/lua_api/l_util.h index b6c1b58af..dbdd62b99 100644 --- a/src/script/lua_api/l_util.h +++ b/src/script/lua_api/l_util.h @@ -68,6 +68,9 @@ private: // get_builtin_path() static int l_get_builtin_path(lua_State *L); + // get_user_path() + static int l_get_user_path(lua_State *L); + // compress(data, method, ...) static int l_compress(lua_State *L); diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 80a8c2f1a..3bcab3d58 100644 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -17,181 +17,19 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include #include -#include -#include - #include "version.h" #include "settings.h" #include "serverlist.h" #include "filesys.h" -#include "porting.h" #include "log.h" #include "network/networkprotocol.h" #include #include "convert_json.h" #include "httpfetch.h" -#include "util/string.h" namespace ServerList { - -std::string getFilePath() -{ - std::string serverlist_file = g_settings->get("serverlist_file"); - - std::string dir_path = "client" DIR_DELIM "serverlist" DIR_DELIM; - fs::CreateDir(porting::path_user + DIR_DELIM "client"); - fs::CreateDir(porting::path_user + DIR_DELIM + dir_path); - return porting::path_user + DIR_DELIM + dir_path + serverlist_file; -} - - -std::vector getLocal() -{ - std::string path = ServerList::getFilePath(); - std::string liststring; - fs::ReadFile(path, liststring); - - return deSerialize(liststring); -} - - -std::vector getOnline() -{ - std::ostringstream geturl; - - u16 proto_version_min = CLIENT_PROTOCOL_VERSION_MIN; - - geturl << g_settings->get("serverlist_url") << - "/list?proto_version_min=" << proto_version_min << - "&proto_version_max=" << CLIENT_PROTOCOL_VERSION_MAX; - Json::Value root = fetchJsonValue(geturl.str(), NULL); - - std::vector server_list; - - if (!root.isObject()) { - return server_list; - } - - root = root["list"]; - if (!root.isArray()) { - return server_list; - } - - for (const Json::Value &i : root) { - if (i.isObject()) { - server_list.push_back(i); - } - } - - return server_list; -} - - -// Delete a server from the local favorites list -bool deleteEntry(const ServerListSpec &server) -{ - std::vector serverlist = ServerList::getLocal(); - for (std::vector::iterator it = serverlist.begin(); - it != serverlist.end();) { - if ((*it)["address"] == server["address"] && - (*it)["port"] == server["port"]) { - it = serverlist.erase(it); - } else { - ++it; - } - } - - std::string path = ServerList::getFilePath(); - std::ostringstream ss(std::ios_base::binary); - ss << ServerList::serialize(serverlist); - if (!fs::safeWriteToFile(path, ss.str())) - return false; - return true; -} - -// Insert a server to the local favorites list -bool insert(const ServerListSpec &server) -{ - // Remove duplicates - ServerList::deleteEntry(server); - - std::vector serverlist = ServerList::getLocal(); - - // Insert new server at the top of the list - serverlist.insert(serverlist.begin(), server); - - std::string path = ServerList::getFilePath(); - std::ostringstream ss(std::ios_base::binary); - ss << ServerList::serialize(serverlist); - if (!fs::safeWriteToFile(path, ss.str())) - return false; - - return true; -} - -std::vector deSerialize(const std::string &liststring) -{ - std::vector serverlist; - std::istringstream stream(liststring); - std::string line, tmp; - while (std::getline(stream, line)) { - std::transform(line.begin(), line.end(), line.begin(), ::toupper); - if (line == "[SERVER]") { - ServerListSpec server; - std::getline(stream, tmp); - server["name"] = tmp; - std::getline(stream, tmp); - server["address"] = tmp; - std::getline(stream, tmp); - server["port"] = tmp; - bool unique = true; - for (const ServerListSpec &added : serverlist) { - if (server["name"] == added["name"] - && server["port"] == added["port"]) { - unique = false; - break; - } - } - if (!unique) - continue; - std::getline(stream, tmp); - server["description"] = tmp; - serverlist.push_back(server); - } - } - return serverlist; -} - -const std::string serialize(const std::vector &serverlist) -{ - std::string liststring; - for (const ServerListSpec &it : serverlist) { - liststring += "[server]\n"; - liststring += it["name"].asString() + '\n'; - liststring += it["address"].asString() + '\n'; - liststring += it["port"].asString() + '\n'; - liststring += it["description"].asString() + '\n'; - liststring += '\n'; - } - return liststring; -} - -const std::string serializeJson(const std::vector &serverlist) -{ - Json::Value root; - Json::Value list(Json::arrayValue); - for (const ServerListSpec &it : serverlist) { - list.append(it); - } - root["list"] = list; - - return fastWriteJson(root); -} - - #if USE_CURL void sendAnnounce(AnnounceAction action, const u16 port, diff --git a/src/serverlist.h b/src/serverlist.h index 2b82b7431..4a0bd5efa 100644 --- a/src/serverlist.h +++ b/src/serverlist.h @@ -24,21 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -typedef Json::Value ServerListSpec; - namespace ServerList { -std::vector getLocal(); -std::vector getOnline(); - -bool deleteEntry(const ServerListSpec &server); -bool insert(const ServerListSpec &server); - -std::vector deSerialize(const std::string &liststring); -const std::string serialize(const std::vector &serverlist); -std::vector deSerializeJson(const std::string &liststring); -const std::string serializeJson(const std::vector &serverlist); - #if USE_CURL enum AnnounceAction {AA_START, AA_UPDATE, AA_DELETE}; void sendAnnounce(AnnounceAction, u16 port, From 4c76239818f5159314f30883f98b977d30aaa26c Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Fri, 22 Jan 2021 15:09:26 +0000 Subject: [PATCH 354/624] Remove dead code (#10845) --- src/client/client.cpp | 20 ---- src/client/client.h | 7 -- src/client/clientenvironment.cpp | 7 -- src/client/hud.cpp | 2 - src/client/mapblock_mesh.cpp | 7 -- src/client/mapblock_mesh.h | 2 - src/client/mesh_generator_thread.h | 1 - src/client/minimap.h | 1 - src/client/tile.cpp | 2 - src/emerge.cpp | 9 +- src/exceptions.h | 5 - src/filesys.cpp | 15 --- src/filesys.h | 3 - src/gui/guiButtonItemImage.cpp | 1 - src/gui/guiButtonItemImage.h | 1 - src/gui/guiChatConsole.h | 2 - src/gui/guiEngine.cpp | 2 - src/gui/guiFormSpecMenu.cpp | 4 +- src/gui/guiFormSpecMenu.h | 2 +- src/map.cpp | 160 ----------------------------- src/map.h | 8 +- src/mapblock.h | 9 -- src/mapgen/mapgen_v6.cpp | 3 +- src/network/networkexceptions.h | 8 +- src/pathfinder.cpp | 6 +- src/script/cpp_api/s_async.cpp | 29 ------ src/script/cpp_api/s_async.h | 6 -- src/server.h | 3 - src/server/player_sao.h | 1 - src/server/serveractiveobject.h | 3 - src/serverenvironment.h | 10 +- 31 files changed, 8 insertions(+), 331 deletions(-) diff --git a/src/client/client.cpp b/src/client/client.cpp index af69d0ec9..6577c287d 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -159,20 +159,6 @@ void Client::loadMods() scanModIntoMemory(BUILTIN_MOD_NAME, getBuiltinLuaPath()); m_script->loadModFromMemory(BUILTIN_MOD_NAME); - // TODO Uncomment when server-sent CSM and verifying of builtin are complete - /* - // Don't load client-provided mods if disabled by server - if (checkCSMRestrictionFlag(CSMRestrictionFlags::CSM_RF_LOAD_CLIENT_MODS)) { - warningstream << "Client-provided mod loading is disabled by server." << - std::endl; - // If builtin integrity is wrong, disconnect user - if (!checkBuiltinIntegrity()) { - // TODO disconnect user - } - return; - } - */ - ClientModConfiguration modconf(getClientModsLuaPath()); m_mods = modconf.getMods(); // complain about mods with unsatisfied dependencies @@ -216,12 +202,6 @@ void Client::loadMods() m_script->on_minimap_ready(m_minimap); } -bool Client::checkBuiltinIntegrity() -{ - // TODO - return true; -} - void Client::scanModSubfolder(const std::string &mod_name, const std::string &mod_path, std::string mod_subpath) { diff --git a/src/client/client.h b/src/client/client.h index bffdc7ec6..25a1b97ba 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -415,11 +415,6 @@ public: return m_csm_restriction_flags & flag; } - u32 getCSMNodeRangeLimit() const - { - return m_csm_restriction_noderange; - } - inline std::unordered_map &getHUDTranslationMap() { return m_hud_server_to_client; @@ -437,7 +432,6 @@ public: } private: void loadMods(); - bool checkBuiltinIntegrity(); // Virtual methods from con::PeerHandler void peerAdded(con::Peer *peer) override; @@ -587,7 +581,6 @@ private: // Client modding ClientScripting *m_script = nullptr; - bool m_modding_enabled; std::unordered_map m_mod_storages; float m_mod_storage_save_timer = 10.0f; std::vector m_mods; diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp index da1e6e9c7..fc7cbe254 100644 --- a/src/client/clientenvironment.cpp +++ b/src/client/clientenvironment.cpp @@ -334,13 +334,6 @@ GenericCAO* ClientEnvironment::getGenericCAO(u16 id) return NULL; } -bool isFreeClientActiveObjectId(const u16 id, - ClientActiveObjectMap &objects) -{ - return id != 0 && objects.find(id) == objects.end(); - -} - u16 ClientEnvironment::addActiveObject(ClientActiveObject *object) { // Register object. If failed return zero id diff --git a/src/client/hud.cpp b/src/client/hud.cpp index e956c2738..46736b325 100644 --- a/src/client/hud.cpp +++ b/src/client/hud.cpp @@ -571,8 +571,6 @@ void Hud::drawCompassTranslate(HudElement *e, video::ITexture *texture, void Hud::drawCompassRotate(HudElement *e, video::ITexture *texture, const core::rect &rect, int angle) { - core::dimension2di imgsize(texture->getOriginalSize()); - core::rect oldViewPort = driver->getViewPort(); core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION); core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW); diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index 4c43fcb61..d78a86b2d 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -1176,13 +1176,6 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): } if (m_mesh[layer]) { -#if 0 - // Usually 1-700 faces and 1-7 materials - std::cout << "Updated MapBlock has " << fastfaces_new.size() - << " faces and uses " << m_mesh[layer]->getMeshBufferCount() - << " materials (meshbuffers)" << std::endl; -#endif - // Use VBO for mesh (this just would set this for ever buffer) if (m_enable_vbo) m_mesh[layer]->setHardwareMappingHint(scene::EHM_STATIC); diff --git a/src/client/mapblock_mesh.h b/src/client/mapblock_mesh.h index 0308b8161..3b17c4af9 100644 --- a/src/client/mapblock_mesh.h +++ b/src/client/mapblock_mesh.h @@ -125,8 +125,6 @@ public: m_animation_force_timer--; } - void updateCameraOffset(v3s16 camera_offset); - private: scene::IMesh *m_mesh[MAX_TILE_LAYERS]; MinimapMapblock *m_minimap_mapblock; diff --git a/src/client/mesh_generator_thread.h b/src/client/mesh_generator_thread.h index f3c5e7da8..4371b8390 100644 --- a/src/client/mesh_generator_thread.h +++ b/src/client/mesh_generator_thread.h @@ -40,7 +40,6 @@ struct QueuedMeshUpdate { v3s16 p = v3s16(-1337, -1337, -1337); bool ack_block_to_server = false; - bool urgent = false; int crack_level = -1; v3s16 crack_pos; MeshMakeData *data = nullptr; // This is generated in MeshUpdateQueue::pop() diff --git a/src/client/minimap.h b/src/client/minimap.h index 4a2c462f8..87c9668ee 100644 --- a/src/client/minimap.h +++ b/src/client/minimap.h @@ -138,7 +138,6 @@ public: size_t getMaxModeIndex() const { return m_modes.size() - 1; }; void nextMode(); - void setModesFromString(std::string modes_string); MinimapModeDef getModeDef() const { return data->mode; } video::ITexture *getMinimapTexture(); diff --git a/src/client/tile.cpp b/src/client/tile.cpp index 37836d0df..aad956ada 100644 --- a/src/client/tile.cpp +++ b/src/client/tile.cpp @@ -429,7 +429,6 @@ private: // Cached settings needed for making textures from meshes bool m_setting_trilinear_filter; bool m_setting_bilinear_filter; - bool m_setting_anisotropic_filter; }; IWritableTextureSource *createTextureSource() @@ -450,7 +449,6 @@ TextureSource::TextureSource() // for these settings to take effect m_setting_trilinear_filter = g_settings->getBool("trilinear_filter"); m_setting_bilinear_filter = g_settings->getBool("bilinear_filter"); - m_setting_anisotropic_filter = g_settings->getBool("anisotropic_filter"); } TextureSource::~TextureSource() diff --git a/src/emerge.cpp b/src/emerge.cpp index 12e407797..e0dc5628e 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -396,14 +396,7 @@ int EmergeManager::getGroundLevelAtPoint(v2s16 p) // TODO(hmmmm): Move this to ServerMap bool EmergeManager::isBlockUnderground(v3s16 blockpos) { -#if 0 - v2s16 p = v2s16((blockpos.X * MAP_BLOCKSIZE) + MAP_BLOCKSIZE / 2, - (blockpos.Y * MAP_BLOCKSIZE) + MAP_BLOCKSIZE / 2); - int ground_level = getGroundLevelAtPoint(p); - return blockpos.Y * (MAP_BLOCKSIZE + 1) <= min(water_level, ground_level); -#endif - - // Use a simple heuristic; the above method is wildly inaccurate anyway. + // Use a simple heuristic return blockpos.Y * (MAP_BLOCKSIZE + 1) <= mgparams->water_level; } diff --git a/src/exceptions.h b/src/exceptions.h index c54307653..a558adc5d 100644 --- a/src/exceptions.h +++ b/src/exceptions.h @@ -72,11 +72,6 @@ public: SettingNotFoundException(const std::string &s): BaseException(s) {} }; -class InvalidFilenameException : public BaseException { -public: - InvalidFilenameException(const std::string &s): BaseException(s) {} -}; - class ItemNotFoundException : public BaseException { public: ItemNotFoundException(const std::string &s): BaseException(s) {} diff --git a/src/filesys.cpp b/src/filesys.cpp index 28a33f4d0..eeba0c564 100644 --- a/src/filesys.cpp +++ b/src/filesys.cpp @@ -401,21 +401,6 @@ void GetRecursiveSubPaths(const std::string &path, } } -bool DeletePaths(const std::vector &paths) -{ - bool success = true; - // Go backwards to succesfully delete the output of GetRecursiveSubPaths - for(int i=paths.size()-1; i>=0; i--){ - const std::string &path = paths[i]; - bool did = DeleteSingleFileOrEmptyDirectory(path); - if(!did){ - errorstream<<"Failed to delete "< &ignore = {}); -// Tries to delete all, returns false if any failed -bool DeletePaths(const std::vector &paths); - // Only pass full paths to this one. True on success. bool RecursiveDeleteContent(const std::string &path); diff --git a/src/gui/guiButtonItemImage.cpp b/src/gui/guiButtonItemImage.cpp index d8b9042ac..39272fe37 100644 --- a/src/gui/guiButtonItemImage.cpp +++ b/src/gui/guiButtonItemImage.cpp @@ -39,7 +39,6 @@ GUIButtonItemImage::GUIButtonItemImage(gui::IGUIEnvironment *environment, item, getActiveFont(), client); sendToBack(m_image); - m_item_name = item; m_client = client; } diff --git a/src/gui/guiButtonItemImage.h b/src/gui/guiButtonItemImage.h index aad923bda..b90ac757e 100644 --- a/src/gui/guiButtonItemImage.h +++ b/src/gui/guiButtonItemImage.h @@ -42,7 +42,6 @@ public: Client *client); private: - std::string m_item_name; Client *m_client; GUIItemImage *m_image; }; diff --git a/src/gui/guiChatConsole.h b/src/gui/guiChatConsole.h index 204f9f9cc..896342ab0 100644 --- a/src/gui/guiChatConsole.h +++ b/src/gui/guiChatConsole.h @@ -68,8 +68,6 @@ public: // Irrlicht draw method virtual void draw(); - bool canTakeFocus(gui::IGUIElement* element) { return false; } - virtual bool OnEvent(const SEvent& event); virtual void setVisible(bool visible); diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp index c5ad5c323..6e2c2b053 100644 --- a/src/gui/guiEngine.cpp +++ b/src/gui/guiEngine.cpp @@ -486,8 +486,6 @@ void GUIEngine::drawHeader(video::IVideoDriver *driver) splashrect += v2s32((screensize.Width/2)-(splashsize.X/2), ((free_space/2)-splashsize.Y/2)+10); - video::SColor bgcolor(255,50,50,50); - draw2DImageFilterScaled(driver, texture, splashrect, core::rect(core::position2d(0,0), core::dimension2di(texture->getOriginalSize())), diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 973fc60a8..4415bdd3a 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -3505,8 +3505,6 @@ bool GUIFormSpecMenu::getAndroidUIInput() GUIInventoryList::ItemSpec GUIFormSpecMenu::getItemAtPos(v2s32 p) const { - core::rect imgrect(0, 0, imgsize.X, imgsize.Y); - for (const GUIInventoryList *e : m_inventorylists) { s32 item_index = e->getItemIndexAtPos(p); if (item_index != -1) @@ -3837,7 +3835,7 @@ ItemStack GUIFormSpecMenu::verifySelectedItem() return ItemStack(); } -void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no) +void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode) { if(m_text_dst) { diff --git a/src/gui/guiFormSpecMenu.h b/src/gui/guiFormSpecMenu.h index 37106cb65..d658aba7b 100644 --- a/src/gui/guiFormSpecMenu.h +++ b/src/gui/guiFormSpecMenu.h @@ -253,7 +253,7 @@ public: void updateSelectedItem(); ItemStack verifySelectedItem(); - void acceptInput(FormspecQuitMode quitmode); + void acceptInput(FormspecQuitMode quitmode=quit_mode_no); bool preprocessEvent(const SEvent& event); bool OnEvent(const SEvent& event); bool doPause; diff --git a/src/map.cpp b/src/map.cpp index 6a7cadca5..aff545921 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -530,23 +530,6 @@ void Map::transformLiquids(std::map &modified_blocks, u32 liquid_loop_max = g_settings->getS32("liquid_loop_max"); u32 loop_max = liquid_loop_max; -#if 0 - - /* If liquid_loop_max is not keeping up with the queue size increase - * loop_max up to a maximum of liquid_loop_max * dedicated_server_step. - */ - if (m_transforming_liquid.size() > loop_max * 2) { - // "Burst" mode - float server_step = g_settings->getFloat("dedicated_server_step"); - if (m_transforming_liquid_loop_count_multiplier - 1.0 < server_step) - m_transforming_liquid_loop_count_multiplier *= 1.0 + server_step / 10; - } else { - m_transforming_liquid_loop_count_multiplier = 1.0; - } - - loop_max *= m_transforming_liquid_loop_count_multiplier; -#endif - while (m_transforming_liquid.size() != 0) { // This should be done here so that it is done when continue is used @@ -1302,18 +1285,6 @@ ServerMap::~ServerMap() */ delete dbase; delete dbase_ro; - -#if 0 - /* - Free all MapChunks - */ - core::map::Iterator i = m_chunks.getIterator(); - for(; i.atEnd() == false; i++) - { - MapChunk *chunk = i.getNode()->getValue(); - delete chunk; - } -#endif } MapgenParams *ServerMap::getMapgenParams() @@ -1402,25 +1373,6 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data) data->vmanip = new MMVManip(this); data->vmanip->initialEmerge(full_bpmin, full_bpmax); - // Note: we may need this again at some point. -#if 0 - // Ensure none of the blocks to be generated were marked as - // containing CONTENT_IGNORE - for (s16 z = blockpos_min.Z; z <= blockpos_max.Z; z++) { - for (s16 y = blockpos_min.Y; y <= blockpos_max.Y; y++) { - for (s16 x = blockpos_min.X; x <= blockpos_max.X; x++) { - core::map::Node *n; - n = data->vmanip->m_loaded_blocks.find(v3s16(x, y, z)); - if (n == NULL) - continue; - u8 flags = n->getValue(); - flags &= ~VMANIP_BLOCK_CONTAINS_CIGNORE; - n->setValue(flags); - } - } - } -#endif - // Data is ready now. return true; } @@ -1431,8 +1383,6 @@ void ServerMap::finishBlockMake(BlockMakeData *data, v3s16 bpmin = data->blockpos_min; v3s16 bpmax = data->blockpos_max; - v3s16 extra_borders(1, 1, 1); - bool enable_mapgen_debug_info = m_emerge->enable_mapgen_debug_info; EMERGE_DBG_OUT("finishBlockMake(): " PP(bpmin) " - " PP(bpmax)); @@ -1525,116 +1475,6 @@ MapSector *ServerMap::createSector(v2s16 p2d) return sector; } -#if 0 -/* - This is a quick-hand function for calling makeBlock(). -*/ -MapBlock * ServerMap::generateBlock( - v3s16 p, - std::map &modified_blocks -) -{ - bool enable_mapgen_debug_info = g_settings->getBool("enable_mapgen_debug_info"); - - TimeTaker timer("generateBlock"); - - //MapBlock *block = original_dummy; - - v2s16 p2d(p.X, p.Z); - v2s16 p2d_nodes = p2d * MAP_BLOCKSIZE; - - /* - Do not generate over-limit - */ - if(blockpos_over_limit(p)) - { - infostream<makeChunk(&data); - //mapgen::make_block(&data); - - if(enable_mapgen_debug_info == false) - t.stop(true); // Hide output - } - - /* - Blit data back on map, update lighting, add mobs and whatever this does - */ - finishBlockMake(&data, modified_blocks); - - /* - Get central block - */ - MapBlock *block = getBlockNoCreateNoEx(p); - -#if 0 - /* - Check result - */ - if(block) - { - bool erroneus_content = false; - for(s16 z0=0; z0getNode(p); - if(n.getContent() == CONTENT_IGNORE) - { - infostream<<"CONTENT_IGNORE at " - <<"("<setNode(v3s16(x0,y0,z0), n); - } - } - } -#endif - - if(enable_mapgen_debug_info == false) - timer.stop(true); // Hide output - - return block; -} -#endif - MapBlock * ServerMap::createBlock(v3s16 p) { /* diff --git a/src/map.h b/src/map.h index c8bae9451..e68795c4a 100644 --- a/src/map.h +++ b/src/map.h @@ -417,13 +417,7 @@ private: bool m_map_saving_enabled; int m_map_compression_level; -#if 0 - // Chunk size in MapSectors - // If 0, chunks are disabled. - s16 m_chunksize; - // Chunks - core::map m_chunks; -#endif + std::set m_chunks_in_progress; /* diff --git a/src/mapblock.h b/src/mapblock.h index 641a1b69b..7b82301e9 100644 --- a/src/mapblock.h +++ b/src/mapblock.h @@ -340,15 +340,6 @@ public: // is not valid on this MapBlock. bool isValidPositionParent(v3s16 p); MapNode getNodeParent(v3s16 p, bool *is_valid_position = NULL); - void setNodeParent(v3s16 p, MapNode & n); - - inline void drawbox(s16 x0, s16 y0, s16 z0, s16 w, s16 h, s16 d, MapNode node) - { - for (u16 z = 0; z < d; z++) - for (u16 y = 0; y < h; y++) - for (u16 x = 0; x < w; x++) - setNode(x0 + x, y0 + y, z0 + z, node); - } // Copies data to VoxelManipulator to getPosRelative() void copyTo(VoxelManipulator &dst); diff --git a/src/mapgen/mapgen_v6.cpp b/src/mapgen/mapgen_v6.cpp index e04180f96..bce9cee81 100644 --- a/src/mapgen/mapgen_v6.cpp +++ b/src/mapgen/mapgen_v6.cpp @@ -792,7 +792,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos) v3s16(0, 0, -1), // Front v3s16(-1, 0, 0), // Left }; - + // Iterate twice for (s16 k = 0; k < 2; k++) { for (s16 z = mudflow_minpos; z <= mudflow_maxpos; z++) @@ -1055,7 +1055,6 @@ void MapgenV6::growGrass() // Add surface nodes MapNode n_dirt_with_grass(c_dirt_with_grass); MapNode n_dirt_with_snow(c_dirt_with_snow); MapNode n_snowblock(c_snowblock); - MapNode n_snow(c_snow); const v3s16 &em = vm->m_area.getExtent(); u32 index = 0; diff --git a/src/network/networkexceptions.h b/src/network/networkexceptions.h index f4913928c..58a3bb490 100644 --- a/src/network/networkexceptions.h +++ b/src/network/networkexceptions.h @@ -56,12 +56,6 @@ public: InvalidIncomingDataException(const char *s) : BaseException(s) {} }; -class InvalidOutgoingDataException : public BaseException -{ -public: - InvalidOutgoingDataException(const char *s) : BaseException(s) {} -}; - class NoIncomingDataException : public BaseException { public: @@ -103,4 +97,4 @@ class SendFailedException : public BaseException { public: SendFailedException(const std::string &s) : BaseException(s) {} -}; \ No newline at end of file +}; diff --git a/src/pathfinder.cpp b/src/pathfinder.cpp index 3f0b98c10..1cb84997a 100644 --- a/src/pathfinder.cpp +++ b/src/pathfinder.cpp @@ -157,9 +157,8 @@ public: ArrayGridNodeContainer(Pathfinder *pathf, v3s16 dimensions); virtual PathGridnode &access(v3s16 p); -private: - v3s16 m_dimensions; +private: int m_x_stride; int m_y_stride; std::vector m_nodes_array; @@ -306,8 +305,6 @@ private: int m_max_index_y = 0; /**< max index of search area in y direction */ int m_max_index_z = 0; /**< max index of search area in z direction */ - - int m_searchdistance = 0; /**< max distance to search in each direction */ int m_maxdrop = 0; /**< maximum number of blocks a path may drop */ int m_maxjump = 0; /**< maximum number of blocks a path may jump */ int m_min_target_distance = 0; /**< current smalest path to target */ @@ -619,7 +616,6 @@ std::vector Pathfinder::getPath(v3s16 source, std::vector retval; //initialization - m_searchdistance = searchdistance; m_maxjump = max_jump; m_maxdrop = max_drop; m_start = source; diff --git a/src/script/cpp_api/s_async.cpp b/src/script/cpp_api/s_async.cpp index 5f1f9297e..0619b32c0 100644 --- a/src/script/cpp_api/s_async.cpp +++ b/src/script/cpp_api/s_async.cpp @@ -157,35 +157,6 @@ void AsyncEngine::step(lua_State *L) lua_pop(L, 2); // Pop core and error handler } -/******************************************************************************/ -void AsyncEngine::pushFinishedJobs(lua_State* L) { - // Result Table - MutexAutoLock l(resultQueueMutex); - - unsigned int index = 1; - lua_createtable(L, resultQueue.size(), 0); - int top = lua_gettop(L); - - while (!resultQueue.empty()) { - LuaJobInfo jobDone = resultQueue.front(); - resultQueue.pop_front(); - - lua_createtable(L, 0, 2); // Pre-allocate space for two map fields - int top_lvl2 = lua_gettop(L); - - lua_pushstring(L, "jobid"); - lua_pushnumber(L, jobDone.id); - lua_settable(L, top_lvl2); - - lua_pushstring(L, "retval"); - lua_pushlstring(L, jobDone.serializedResult.data(), - jobDone.serializedResult.size()); - lua_settable(L, top_lvl2); - - lua_rawseti(L, top, index++); - } -} - /******************************************************************************/ void AsyncEngine::prepareEnvironment(lua_State* L, int top) { diff --git a/src/script/cpp_api/s_async.h b/src/script/cpp_api/s_async.h index b1f4bf45f..99a4f891c 100644 --- a/src/script/cpp_api/s_async.h +++ b/src/script/cpp_api/s_async.h @@ -98,12 +98,6 @@ public: */ void step(lua_State *L); - /** - * Push a list of finished jobs onto the stack - * @param L The Lua stack - */ - void pushFinishedJobs(lua_State *L); - protected: /** * Get a Job from queue to be processed diff --git a/src/server.h b/src/server.h index 4b3ac5cf7..a7e85d0e1 100644 --- a/src/server.h +++ b/src/server.h @@ -564,9 +564,6 @@ private: // Craft definition manager IWritableCraftDefManager *m_craftdef; - // Event manager - EventManager *m_event; - // Mods std::unique_ptr m_modmgr; diff --git a/src/server/player_sao.h b/src/server/player_sao.h index 6aee8d5aa..8e2d8803f 100644 --- a/src/server/player_sao.h +++ b/src/server/player_sao.h @@ -114,7 +114,6 @@ public: void rightClick(ServerActiveObject *clicker); void setHP(s32 hp, const PlayerHPChangeReason &reason); void setHPRaw(u16 hp) { m_hp = hp; } - s16 readDamage(); u16 getBreath() const { return m_breath; } void setBreath(const u16 breath, bool send = true); diff --git a/src/server/serveractiveobject.h b/src/server/serveractiveobject.h index 25653a1ad..51f445914 100644 --- a/src/server/serveractiveobject.h +++ b/src/server/serveractiveobject.h @@ -162,8 +162,6 @@ public: {} virtual const ItemGroupList &getArmorGroups() const { static ItemGroupList rv; return rv; } - virtual void setPhysicsOverride(float physics_override_speed, float physics_override_jump, float physics_override_gravity) - {} virtual void setAnimation(v2f frames, float frame_speed, float frame_blend, bool frame_loop) {} virtual void getAnimation(v2f *frames, float *frame_speed, float *frame_blend, bool *frame_loop) @@ -206,7 +204,6 @@ public: } std::string generateUpdateInfantCommand(u16 infant_id, u16 protocol_version); - std::string generateUpdateNametagAttributesCommand(const video::SColor &color) const; void dumpAOMessagesToQueue(std::queue &queue); diff --git a/src/serverenvironment.h b/src/serverenvironment.h index c76d34a37..a11c814ed 100644 --- a/src/serverenvironment.h +++ b/src/serverenvironment.h @@ -190,14 +190,6 @@ enum ClearObjectsMode { CLEAR_OBJECTS_MODE_QUICK, }; -/* - The server-side environment. - - This is not thread-safe. Server uses an environment mutex. -*/ - -typedef std::unordered_map ServerActiveObjectMap; - class ServerEnvironment : public Environment { public: @@ -331,7 +323,7 @@ public: { return m_ao_manager.getObjectsInsideRadius(pos, radius, objects, include_obj_cb); } - + // Find all active objects inside a box void getObjectsInArea(std::vector &objects, const aabb3f &box, std::function include_obj_cb) From 009e39e73b9aa003c369fe6bc88f366fdc91610e Mon Sep 17 00:00:00 2001 From: Vincent Robinson Date: Sat, 23 Jan 2021 12:46:19 -0800 Subject: [PATCH 355/624] FormSpec: Add list spacing, slot size, and noclip (#10083) * Add list spacing, slot size, and noclip * Simplify StyleSpec * Add test cases Co-authored-by: rubenwardy --- doc/lua_api.txt | 8 +++- games/devtest/mods/testformspec/formspec.lua | 15 ++++++- src/gui/StyleSpec.h | 47 +++++++++++++------- src/gui/guiFormSpecMenu.cpp | 30 ++++++++++--- 4 files changed, 78 insertions(+), 22 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 317bbe577..f751eb512 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2226,7 +2226,8 @@ Elements * Show an inventory list if it has been sent to the client. Nothing will be shown if the inventory list is of size 0. * **Note**: With the new coordinate system, the spacing between inventory - slots is one-fourth the size of an inventory slot. + slots is one-fourth the size of an inventory slot by default. Also see + [Styling Formspecs] for changing the size of slots and spacing. ### `list[;;,;,;]` @@ -2809,6 +2810,7 @@ Some types may inherit styles from parent types. * image_button * item_image_button * label +* list * model * pwdfield, inherits from field * scrollbar @@ -2896,6 +2898,10 @@ Some types may inherit styles from parent types. * font - Sets font type. See button `font` property for more information. * font_size - Sets font size. See button `font_size` property for more information. * noclip - boolean, set to true to allow the element to exceed formspec bounds. +* list + * noclip - boolean, set to true to allow the element to exceed formspec bounds. + * size - 2d vector, sets the size of inventory slots in coordinates. + * spacing - 2d vector, sets the space between inventory slots in coordinates. * image_button (additional properties) * fgimg - standard image. Defaults to none. * fgimg_hovered - image when hovered. Defaults to fgimg when not provided. diff --git a/games/devtest/mods/testformspec/formspec.lua b/games/devtest/mods/testformspec/formspec.lua index 5495896ce..0eef859a9 100644 --- a/games/devtest/mods/testformspec/formspec.lua +++ b/games/devtest/mods/testformspec/formspec.lua @@ -33,6 +33,15 @@ local tabheaders_fs = [[ tabheader[8,6;10,1.5;tabs_size2;Height=1.5;1;false;false] ]] +local inv_style_fs = [[ + style_type[list;noclip=true] + list[current_player;main;-1.125,-1.125;2,2] + style_type[list;spacing=.25,.125;size=.75,.875] + list[current_player;main;3,.5;3,3] + style_type[list;spacing=0;size=1] + list[current_player;main;.5,4;8,4] +]] + local hypertext_basic = [[ Normal test This is a normal text. @@ -310,6 +319,10 @@ local pages = { "size[12,13]real_coordinates[true]" .. "container[0.5,1.5]" .. tabheaders_fs .. "container_end[]", + -- Inv + "size[12,13]real_coordinates[true]" .. + "container[0.5,1.5]" .. inv_style_fs .. "container_end[]", + -- Animation [[ formspec_version[3] @@ -341,7 +354,7 @@ Number] local function show_test_formspec(pname, page_id) page_id = page_id or 2 - local fs = pages[page_id] .. "tabheader[0,0;8,0.65;maintabs;Real Coord,Styles,Noclip,Hypertext,Tabs,Anim,ScrollC;" .. page_id .. ";false;false]" + local fs = pages[page_id] .. "tabheader[0,0;8,0.65;maintabs;Real Coord,Styles,Noclip,Hypertext,Tabs,Invs,Anim,ScrollC;" .. page_id .. ";false;false]" minetest.show_formspec(pname, "testformspec:formspec", fs) end diff --git a/src/gui/StyleSpec.h b/src/gui/StyleSpec.h index f2844ce28..fc92a861b 100644 --- a/src/gui/StyleSpec.h +++ b/src/gui/StyleSpec.h @@ -55,6 +55,8 @@ public: BORDERCOLORS, BORDERWIDTHS, SOUND, + SPACING, + SIZE, NUM_PROPERTIES, NONE }; @@ -119,6 +121,10 @@ public: return BORDERWIDTHS; } else if (name == "sound") { return SOUND; + } else if (name == "spacing") { + return SPACING; + } else if (name == "size") { + return SIZE; } else { return NONE; } @@ -259,27 +265,40 @@ public: return rect; } - irr::core::vector2d getVector2i(Property prop, irr::core::vector2d def) const + v2f32 getVector2f(Property prop, v2f32 def) const { const auto &val = properties[prop]; if (val.empty()) return def; - irr::core::vector2d vec; - if (!parseVector2i(val, &vec)) + v2f32 vec; + if (!parseVector2f(val, &vec)) return def; return vec; } - irr::core::vector2d getVector2i(Property prop) const + v2s32 getVector2i(Property prop, v2s32 def) const + { + const auto &val = properties[prop]; + if (val.empty()) + return def; + + v2f32 vec; + if (!parseVector2f(val, &vec)) + return def; + + return v2s32(vec.X, vec.Y); + } + + v2s32 getVector2i(Property prop) const { const auto &val = properties[prop]; FATAL_ERROR_IF(val.empty(), "Unexpected missing property"); - irr::core::vector2d vec; - parseVector2i(val, &vec); - return vec; + v2f32 vec; + parseVector2f(val, &vec); + return v2s32(vec.X, vec.Y); } gui::IGUIFont *getFont() const @@ -432,22 +451,20 @@ private: return true; } - bool parseVector2i(const std::string &value, irr::core::vector2d *parsed_vec) const + bool parseVector2f(const std::string &value, v2f32 *parsed_vec) const { - irr::core::vector2d vec; + v2f32 vec; std::vector v_vector = split(value, ','); if (v_vector.size() == 1) { - s32 x = stoi(v_vector[0]); + f32 x = stof(v_vector[0]); vec.X = x; vec.Y = x; } else if (v_vector.size() == 2) { - s32 x = stoi(v_vector[0]); - s32 y = stoi(v_vector[1]); - vec.X = x; - vec.Y = y; + vec.X = stof(v_vector[0]); + vec.Y = stof(v_vector[1]); } else { - warningstream << "Invalid vector2d string format: \"" << value + warningstream << "Invalid 2d vector string format: \"" << value << "\"" << std::endl; return false; } diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 4415bdd3a..7b37de6f8 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -497,20 +497,40 @@ void GUIFormSpecMenu::parseList(parserData *data, const std::string &element) 3 ); - v2f32 slot_spacing = data->real_coordinates ? - v2f32(imgsize.X * 1.25f, imgsize.Y * 1.25f) : spacing; + auto style = getDefaultStyleForElement("list", spec.fname); - v2s32 pos = data->real_coordinates ? getRealCoordinateBasePos(v_pos) - : getElementBasePos(&v_pos); + v2f32 slot_scale = style.getVector2f(StyleSpec::SIZE, v2f32(0, 0)); + v2s32 slot_size( + slot_scale.X <= 0 ? imgsize.X : slot_scale.X * imgsize.X, + slot_scale.Y <= 0 ? imgsize.Y : slot_scale.Y * imgsize.Y + ); + + v2f32 slot_spacing = style.getVector2f(StyleSpec::SPACING, v2f32(-1, -1)); + if (data->real_coordinates) { + slot_spacing.X = slot_spacing.X < 0 ? imgsize.X * 1.25f : + slot_spacing.X * imgsize.X + imgsize.X; + slot_spacing.Y = slot_spacing.Y < 0 ? imgsize.Y * 1.25f : + slot_spacing.Y * imgsize.Y + imgsize.Y; + } else { + slot_spacing.X = slot_spacing.X < 0 ? spacing.X : + slot_spacing.X * spacing.X; + slot_spacing.Y = slot_spacing.Y < 0 ? spacing.Y : + slot_spacing.Y * spacing.Y; + } + + v2s32 pos = data->real_coordinates ? getRealCoordinateBasePos(v_pos) : + getElementBasePos(&v_pos); core::rect rect = core::rect(pos.X, pos.Y, pos.X + (geom.X - 1) * slot_spacing.X + imgsize.X, pos.Y + (geom.Y - 1) * slot_spacing.Y + imgsize.Y); GUIInventoryList *e = new GUIInventoryList(Environment, data->current_parent, - spec.fid, rect, m_invmgr, loc, listname, geom, start_i, imgsize, + spec.fid, rect, m_invmgr, loc, listname, geom, start_i, slot_size, slot_spacing, this, data->inventorylist_options, m_font); + e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); + m_inventorylists.push_back(e); m_fields.push_back(spec); return; From 6417f4d3143bc4c4c7f175aa8e40810cfacb5947 Mon Sep 17 00:00:00 2001 From: Yaman Qalieh Date: Sat, 23 Jan 2021 16:40:48 -0500 Subject: [PATCH 356/624] Fix ESC in error dialog from closing Minetest (#10838) --- builtin/fstk/ui.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/builtin/fstk/ui.lua b/builtin/fstk/ui.lua index 7eeebdd47..976659ed3 100644 --- a/builtin/fstk/ui.lua +++ b/builtin/fstk/ui.lua @@ -18,6 +18,8 @@ ui = {} ui.childlist = {} ui.default = nil +-- Whether fstk is currently showing its own formspec instead of active ui elements. +ui.overridden = false -------------------------------------------------------------------------------- function ui.add(child) @@ -55,6 +57,7 @@ end -------------------------------------------------------------------------------- function ui.update() + ui.overridden = false local formspec = {} -- handle errors @@ -71,6 +74,7 @@ function ui.update() "button[2,6.6;4,1;btn_reconnect_yes;" .. fgettext("Reconnect") .. "]", "button[8,6.6;4,1;btn_reconnect_no;" .. fgettext("Main menu") .. "]" } + ui.overridden = true elseif gamedata ~= nil and gamedata.errormessage ~= nil then local error_message = core.formspec_escape(gamedata.errormessage) @@ -89,6 +93,7 @@ function ui.update() error_title, error_message), "button[5,6.6;4,1;btn_error_confirm;" .. fgettext("OK") .. "]" } + ui.overridden = true else local active_toplevel_ui_elements = 0 for key,value in pairs(ui.childlist) do @@ -185,6 +190,16 @@ end -------------------------------------------------------------------------------- core.event_handler = function(event) + -- Handle error messages + if ui.overridden then + if event == "MenuQuit" then + gamedata.errormessage = nil + gamedata.reconnect_requested = false + ui.update() + end + return + end + if ui.handle_events(event) then ui.update() return From 6a55c03dabf7b5337233fc80078a300d485fcec4 Mon Sep 17 00:00:00 2001 From: Vincent Robinson Date: Sat, 23 Jan 2021 14:48:57 -0800 Subject: [PATCH 357/624] Make hypertext and textarea have proper scroll event propagation. (#10860) --- games/devtest/mods/testformspec/formspec.lua | 2 ++ src/gui/guiEditBox.cpp | 1 + src/gui/guiHyperText.cpp | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/games/devtest/mods/testformspec/formspec.lua b/games/devtest/mods/testformspec/formspec.lua index 0eef859a9..62578b740 100644 --- a/games/devtest/mods/testformspec/formspec.lua +++ b/games/devtest/mods/testformspec/formspec.lua @@ -220,6 +220,8 @@ local scroll_fs = "tooltip[0,11;3,2;Buz;#f00;#000]".. "box[0,11;3,2;#00ff00]".. "hypertext[3,13;3,3;;" .. hypertext_basic .. "]" .. + "hypertext[3,17;3,3;;Hypertext with no scrollbar\\; the scroll container should scroll.]" .. + "textarea[3,21;3,1;textarea;;More scroll within scroll]" .. "container[0,18]".. "box[1,2;3,2;#0a0a]".. "scroll_container[1,2;3,2;scrbar2;horizontal;0.06]".. diff --git a/src/gui/guiEditBox.cpp b/src/gui/guiEditBox.cpp index 1214125a8..79979dbc3 100644 --- a/src/gui/guiEditBox.cpp +++ b/src/gui/guiEditBox.cpp @@ -787,6 +787,7 @@ bool GUIEditBox::processMouse(const SEvent &event) s32 pos = m_vscrollbar->getPos(); s32 step = m_vscrollbar->getSmallStep(); m_vscrollbar->setPos(pos - event.MouseInput.Wheel * step); + return true; } break; default: diff --git a/src/gui/guiHyperText.cpp b/src/gui/guiHyperText.cpp index 88931cdf9..ccfdcb81d 100644 --- a/src/gui/guiHyperText.cpp +++ b/src/gui/guiHyperText.cpp @@ -1088,7 +1088,7 @@ bool GUIHyperText::OnEvent(const SEvent &event) if (event.MouseInput.Event == EMIE_MOUSE_MOVED) checkHover(event.MouseInput.X, event.MouseInput.Y); - if (event.MouseInput.Event == EMIE_MOUSE_WHEEL) { + if (event.MouseInput.Event == EMIE_MOUSE_WHEEL && m_vscrollbar->isVisible()) { m_vscrollbar->setPos(m_vscrollbar->getPos() - event.MouseInput.Wheel * m_vscrollbar->getSmallStep()); m_text_scrollpos.Y = -m_vscrollbar->getPos(); From ad9adcb88444b4a7063d5c2f5debd85729e8ce42 Mon Sep 17 00:00:00 2001 From: Vincent Robinson Date: Sat, 23 Jan 2021 14:49:13 -0800 Subject: [PATCH 358/624] Fix formspec list spacing (#10861) --- src/gui/guiFormSpecMenu.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 7b37de6f8..e4678bcd1 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -507,10 +507,13 @@ void GUIFormSpecMenu::parseList(parserData *data, const std::string &element) v2f32 slot_spacing = style.getVector2f(StyleSpec::SPACING, v2f32(-1, -1)); if (data->real_coordinates) { - slot_spacing.X = slot_spacing.X < 0 ? imgsize.X * 1.25f : - slot_spacing.X * imgsize.X + imgsize.X; - slot_spacing.Y = slot_spacing.Y < 0 ? imgsize.Y * 1.25f : - slot_spacing.Y * imgsize.Y + imgsize.Y; + slot_spacing.X = slot_spacing.X < 0 ? imgsize.X * 0.25f : + imgsize.X * slot_spacing.X; + slot_spacing.Y = slot_spacing.Y < 0 ? imgsize.Y * 0.25f : + imgsize.Y * slot_spacing.Y; + + slot_spacing.X += slot_size.X; + slot_spacing.Y += slot_size.Y; } else { slot_spacing.X = slot_spacing.X < 0 ? spacing.X : slot_spacing.X * spacing.X; From 8dae7b47fcc1c26251c8006efbc9ee8af152f87a Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Sun, 24 Jan 2021 17:40:34 +0300 Subject: [PATCH 359/624] Improve irr_ptr (#10808) --- src/irr_ptr.h | 89 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 76 insertions(+), 13 deletions(-) diff --git a/src/irr_ptr.h b/src/irr_ptr.h index 5022adb9d..42b409676 100644 --- a/src/irr_ptr.h +++ b/src/irr_ptr.h @@ -27,9 +27,14 @@ with this program; if not, write to the Free Software Foundation, Inc., * It should only be used for user-managed objects, i.e. those created with * the @c new operator or @c create* functions, like: * `irr_ptr buf{new scene::SMeshBuffer()};` + * The reference counting is *not* balanced as new objects have reference + * count set to one, and the @c irr_ptr constructor (and @c reset) assumes + * ownership of that reference. * - * It should *never* be used for engine-managed objects, including - * those created with @c addTexture and similar methods. + * It shouldn’t be used for engine-managed objects, including those created + * with @c addTexture and similar methods. Constructing @c irr_ptr directly + * from such object is a bug and may lead to a crash. Indirect construction + * is possible though; see the @c grab free function for details and use cases. */ template grab(); - reset(object); - } - public: irr_ptr() {} @@ -71,8 +66,10 @@ public: reset(b.release()); } - /** Constructs a shared pointer out of a plain one + /** Constructs a shared pointer out of a plain one to control object lifetime. + * @param object The object, usually returned by some @c create* function. * @note Move semantics: reference counter is *not* increased. + * @warning Never wrap any @c add* function with this! */ explicit irr_ptr(ReferenceCounted *object) noexcept { reset(object); } @@ -134,4 +131,70 @@ public: value->drop(); value = object; } + + /** Drops stored pointer replacing it with the given one. + * @note Copy semantics: reference counter *is* increased. + */ + void grab(ReferenceCounted *object) noexcept + { + if (object) + object->grab(); + reset(object); + } }; + +// clang-format off +// ^ dislikes long lines + +/** Constructs a shared pointer as a *secondary* reference to an object + * + * This function is intended to make a temporary reference to an object which + * is owned elsewhere so that it is not destroyed too early. To acheive that + * it does balanced reference counting, i.e. reference count is increased + * in this function and decreased when the returned pointer is destroyed. + */ +template +irr_ptr grab(ReferenceCounted *object) noexcept +{ + irr_ptr ptr; + ptr.grab(object); + return ptr; +} + +template +bool operator==(const irr_ptr &a, const irr_ptr &b) noexcept +{ + return a.get() == b.get(); +} + +template +bool operator==(const irr_ptr &a, const ReferenceCounted *b) noexcept +{ + return a.get() == b; +} + +template +bool operator==(const ReferenceCounted *a, const irr_ptr &b) noexcept +{ + return a == b.get(); +} + +template +bool operator!=(const irr_ptr &a, const irr_ptr &b) noexcept +{ + return a.get() != b.get(); +} + +template +bool operator!=(const irr_ptr &a, const ReferenceCounted *b) noexcept +{ + return a.get() != b; +} + +template +bool operator!=(const ReferenceCounted *a, const irr_ptr &b) noexcept +{ + return a != b.get(); +} + +// clang-format on From 44a9510c8143cfe54587b09c233501ba3a8533f6 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Wed, 27 Jan 2021 19:42:02 +0100 Subject: [PATCH 360/624] Consistently use "health points" (#10868) --- doc/lua_api.txt | 4 ++-- src/constants.h | 2 +- util/wireshark/minetest.lua | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index f751eb512..12ea85345 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6221,8 +6221,8 @@ object you are working with still exists. * `time_from_last_punch` = time since last punch action of the puncher * `direction`: can be `nil` * `right_click(clicker)`; `clicker` is another `ObjectRef` -* `get_hp()`: returns number of hitpoints (2 * number of hearts) -* `set_hp(hp, reason)`: set number of hitpoints (2 * number of hearts). +* `get_hp()`: returns number of health points +* `set_hp(hp, reason)`: set number of health points * See reason in register_on_player_hpchange * Is limited to the range of 0 ... 65535 (2^16 - 1) * For players: HP are also limited by `hp_max` specified in the player's diff --git a/src/constants.h b/src/constants.h index c17f3b6af..3cc3af094 100644 --- a/src/constants.h +++ b/src/constants.h @@ -89,7 +89,7 @@ with this program; if not, write to the Free Software Foundation, Inc., // Size of player's main inventory #define PLAYER_INVENTORY_SIZE (8 * 4) -// Default maximum hit points of a player +// Default maximum health points of a player #define PLAYER_MAX_HP_DEFAULT 20 // Default maximal breath of a player diff --git a/util/wireshark/minetest.lua b/util/wireshark/minetest.lua index 13cd6d482..dd0507c3e 100644 --- a/util/wireshark/minetest.lua +++ b/util/wireshark/minetest.lua @@ -873,7 +873,7 @@ end -- TOCLIENT_HP do - local f_hp = ProtoField.uint16("minetest.server.hp", "Hitpoints", base.DEC) + local f_hp = ProtoField.uint16("minetest.server.hp", "Health points", base.DEC) minetest_server_commands[0x33] = { "HP", 4, From 82deed2d7d5573f1fa463516732475563da59569 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Thu, 28 Jan 2021 11:24:36 +0000 Subject: [PATCH 361/624] ContentDB: Order installed content first (#10864) --- builtin/mainmenu/dlg_contentstore.lua | 36 +++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua index 3ad9ed28a..7328f3358 100644 --- a/builtin/mainmenu/dlg_contentstore.lua +++ b/builtin/mainmenu/dlg_contentstore.lua @@ -23,7 +23,9 @@ if not minetest.get_http_api then return end -local store = { packages = {}, packages_full = {} } +-- Unordered preserves the original order of the ContentDB API, +-- before the package list is ordered based on installed state. +local store = { packages = {}, packages_full = {}, packages_full_unordered = {} } local http = minetest.get_http_api() @@ -572,6 +574,7 @@ function store.load() end end + store.packages_full_unordered = store.packages_full store.packages = store.packages_full store.loaded = true end @@ -619,6 +622,33 @@ function store.update_paths() end end +function store.sort_packages() + local ret = {} + + -- Add installed content + for i=1, #store.packages_full_unordered do + local package = store.packages_full_unordered[i] + if package.path then + ret[#ret + 1] = package + end + end + + -- Sort installed content by title + table.sort(ret, function(a, b) + return a.title < b.title + end) + + -- Add uninstalled content + for i=1, #store.packages_full_unordered do + local package = store.packages_full_unordered[i] + if not package.path then + ret[#ret + 1] = package + end + end + + store.packages_full = ret +end + function store.filter_packages(query) if query == "" and filter_type == 1 then store.packages = store.packages_full @@ -652,7 +682,6 @@ function store.filter_packages(query) store.packages[#store.packages + 1] = package end end - end function store.get_formspec(dlgdata) @@ -960,6 +989,9 @@ function create_store_dlg(type) store.load() end + store.update_paths() + store.sort_packages() + search_string = "" cur_page = 1 From ed0882fd58fb0f663cc115d23a11643874facc06 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 28 Jan 2021 23:25:13 +0300 Subject: [PATCH 362/624] Include irrlichttypes.h first to work around Irrlicht#433 (#10872) Fixes the PcgRandom::PcgRandom linker issue, caused by inconsistent data type definition. --- src/client/fontengine.h | 1 + src/client/gameui.h | 1 + src/client/shader.h | 2 +- src/client/sky.h | 2 +- src/gui/guiEditBox.h | 1 + src/gui/touchscreengui.h | 1 + 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/client/fontengine.h b/src/client/fontengine.h index c6efa0df4..d62e9b8ef 100644 --- a/src/client/fontengine.h +++ b/src/client/fontengine.h @@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include "util/basic_macros.h" +#include "irrlichttypes.h" #include #include #include diff --git a/src/client/gameui.h b/src/client/gameui.h index 67c6a9921..b6c8a224d 100644 --- a/src/client/gameui.h +++ b/src/client/gameui.h @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include "irrlichttypes.h" #include #include "gui/guiFormSpecMenu.h" #include "util/enriched_string.h" diff --git a/src/client/shader.h b/src/client/shader.h index d99182693..38ab76704 100644 --- a/src/client/shader.h +++ b/src/client/shader.h @@ -20,8 +20,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -#include #include "irrlichttypes_bloated.h" +#include #include #include "tile.h" #include "nodedef.h" diff --git a/src/client/sky.h b/src/client/sky.h index 10e1cd976..342a97596 100644 --- a/src/client/sky.h +++ b/src/client/sky.h @@ -17,10 +17,10 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include "irrlichttypes_extrabloated.h" #include #include #include "camera.h" -#include "irrlichttypes_extrabloated.h" #include "irr_ptr.h" #include "shader.h" #include "skyparams.h" diff --git a/src/gui/guiEditBox.h b/src/gui/guiEditBox.h index a20eb61d7..c616d75d1 100644 --- a/src/gui/guiEditBox.h +++ b/src/gui/guiEditBox.h @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include "irrlichttypes.h" #include "IGUIEditBox.h" #include "IOSOperator.h" #include "guiScrollBar.h" diff --git a/src/gui/touchscreengui.h b/src/gui/touchscreengui.h index 761d33207..0349624fa 100644 --- a/src/gui/touchscreengui.h +++ b/src/gui/touchscreengui.h @@ -18,6 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include "irrlichttypes.h" #include #include #include From b5956bde259faa240a81060ff4e598e25ad52dae Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Thu, 28 Jan 2021 16:32:37 +0000 Subject: [PATCH 363/624] Sanitize ItemStack meta text --- src/itemstackmetadata.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/itemstackmetadata.cpp b/src/itemstackmetadata.cpp index 4aa1a0903..7a26fbb0e 100644 --- a/src/itemstackmetadata.cpp +++ b/src/itemstackmetadata.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "itemstackmetadata.h" #include "util/serialize.h" #include "util/strfnd.h" +#include #define DESERIALIZE_START '\x01' #define DESERIALIZE_KV_DELIM '\x02' @@ -37,10 +38,22 @@ void ItemStackMetadata::clear() updateToolCapabilities(); } +static void sanitize_string(std::string &str) +{ + str.erase(std::remove(str.begin(), str.end(), DESERIALIZE_START), str.end()); + str.erase(std::remove(str.begin(), str.end(), DESERIALIZE_KV_DELIM), str.end()); + str.erase(std::remove(str.begin(), str.end(), DESERIALIZE_PAIR_DELIM), str.end()); +} + bool ItemStackMetadata::setString(const std::string &name, const std::string &var) { - bool result = Metadata::setString(name, var); - if (name == TOOLCAP_KEY) + std::string clean_name = name; + std::string clean_var = var; + sanitize_string(clean_name); + sanitize_string(clean_var); + + bool result = Metadata::setString(clean_name, clean_var); + if (clean_name == TOOLCAP_KEY) updateToolCapabilities(); return result; } From 5e9dd1667b244df4e7767be404d4a12966d6a90a Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Wed, 25 Nov 2020 20:16:08 +0100 Subject: [PATCH 364/624] RemotePlayer: Remove Settings writer to Files database --- src/database/database-files.cpp | 125 +++++++++++++++++++++++++++----- src/database/database-files.h | 9 ++- src/remoteplayer.cpp | 116 ----------------------------- src/remoteplayer.h | 9 --- 4 files changed, 115 insertions(+), 144 deletions(-) diff --git a/src/database/database-files.cpp b/src/database/database-files.cpp index d2b0b1543..529fb8763 100644 --- a/src/database/database-files.cpp +++ b/src/database/database-files.cpp @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include +#include "convert_json.h" #include "database-files.h" #include "remoteplayer.h" #include "settings.h" @@ -36,29 +37,117 @@ PlayerDatabaseFiles::PlayerDatabaseFiles(const std::string &savedir) : m_savedir fs::CreateDir(m_savedir); } -void PlayerDatabaseFiles::serialize(std::ostringstream &os, RemotePlayer *player) +void PlayerDatabaseFiles::deSerialize(RemotePlayer *p, std::istream &is, + const std::string &playername, PlayerSAO *sao) +{ + Settings args("PlayerArgsEnd"); + + if (!args.parseConfigLines(is)) { + throw SerializationError("PlayerArgsEnd of player " + playername + " not found!"); + } + + p->m_dirty = true; + //args.getS32("version"); // Version field value not used + const std::string &name = args.get("name"); + strlcpy(p->m_name, name.c_str(), PLAYERNAME_SIZE); + + if (sao) { + try { + sao->setHPRaw(args.getU16("hp")); + } catch(SettingNotFoundException &e) { + sao->setHPRaw(PLAYER_MAX_HP_DEFAULT); + } + + try { + sao->setBasePosition(args.getV3F("position")); + } catch (SettingNotFoundException &e) {} + + try { + sao->setLookPitch(args.getFloat("pitch")); + } catch (SettingNotFoundException &e) {} + try { + sao->setPlayerYaw(args.getFloat("yaw")); + } catch (SettingNotFoundException &e) {} + + try { + sao->setBreath(args.getU16("breath"), false); + } catch (SettingNotFoundException &e) {} + + try { + const std::string &extended_attributes = args.get("extended_attributes"); + std::istringstream iss(extended_attributes); + Json::CharReaderBuilder builder; + builder.settings_["collectComments"] = false; + std::string errs; + + Json::Value attr_root; + Json::parseFromStream(builder, iss, &attr_root, &errs); + + const Json::Value::Members attr_list = attr_root.getMemberNames(); + for (const auto &it : attr_list) { + Json::Value attr_value = attr_root[it]; + sao->getMeta().setString(it, attr_value.asString()); + } + sao->getMeta().setModified(false); + } catch (SettingNotFoundException &e) {} + } + + try { + p->inventory.deSerialize(is); + } catch (SerializationError &e) { + errorstream << "Failed to deserialize player inventory. player_name=" + << name << " " << e.what() << std::endl; + } + + if (!p->inventory.getList("craftpreview") && p->inventory.getList("craftresult")) { + // Convert players without craftpreview + p->inventory.addList("craftpreview", 1); + + bool craftresult_is_preview = true; + if(args.exists("craftresult_is_preview")) + craftresult_is_preview = args.getBool("craftresult_is_preview"); + if(craftresult_is_preview) + { + // Clear craftresult + p->inventory.getList("craftresult")->changeItem(0, ItemStack()); + } + } +} + +void PlayerDatabaseFiles::serialize(RemotePlayer *p, std::ostream &os) { // Utilize a Settings object for storing values - Settings args; + Settings args("PlayerArgsEnd"); args.setS32("version", 1); - args.set("name", player->getName()); + args.set("name", p->m_name); - sanity_check(player->getPlayerSAO()); - args.setU16("hp", player->getPlayerSAO()->getHP()); - args.setV3F("position", player->getPlayerSAO()->getBasePosition()); - args.setFloat("pitch", player->getPlayerSAO()->getLookPitch()); - args.setFloat("yaw", player->getPlayerSAO()->getRotation().Y); - args.setU16("breath", player->getPlayerSAO()->getBreath()); + // This should not happen + assert(m_sao); + args.setU16("hp", p->m_sao->getHP()); + args.setV3F("position", p->m_sao->getBasePosition()); + args.setFloat("pitch", p->m_sao->getLookPitch()); + args.setFloat("yaw", p->m_sao->getRotation().Y); + args.setU16("breath", p->m_sao->getBreath()); std::string extended_attrs; - player->serializeExtraAttributes(extended_attrs); + { + // serializeExtraAttributes + PlayerSAO *sao = p->getPlayerSAO(); + assert(sao); + Json::Value json_root; + + const StringMap &attrs = sao->getMeta().getStrings(); + for (const auto &attr : attrs) { + json_root[attr.first] = attr.second; + } + + extended_attrs = fastWriteJson(json_root); + } args.set("extended_attributes", extended_attrs); args.writeLines(os); - os << "PlayerArgsEnd\n"; - - player->inventory.serialize(os); + p->inventory.serialize(os); } void PlayerDatabaseFiles::savePlayer(RemotePlayer *player) @@ -83,7 +172,7 @@ void PlayerDatabaseFiles::savePlayer(RemotePlayer *player) return; } - testplayer.deSerialize(is, path, NULL); + deSerialize(&testplayer, is, path, NULL); is.close(); if (strcmp(testplayer.getName(), player->getName()) == 0) { path_found = true; @@ -101,7 +190,7 @@ void PlayerDatabaseFiles::savePlayer(RemotePlayer *player) // Open and serialize file std::ostringstream ss(std::ios_base::binary); - serialize(ss, player); + serialize(&testplayer, ss); if (!fs::safeWriteToFile(path, ss.str())) { infostream << "Failed to write " << path << std::endl; } @@ -121,7 +210,7 @@ bool PlayerDatabaseFiles::removePlayer(const std::string &name) if (!is.good()) continue; - temp_player.deSerialize(is, path, NULL); + deSerialize(&temp_player, is, path, NULL); is.close(); if (temp_player.getName() == name) { @@ -147,7 +236,7 @@ bool PlayerDatabaseFiles::loadPlayer(RemotePlayer *player, PlayerSAO *sao) if (!is.good()) continue; - player->deSerialize(is, path, sao); + deSerialize(player, is, path, sao); is.close(); if (player->getName() == player_to_load) @@ -180,7 +269,7 @@ void PlayerDatabaseFiles::listPlayers(std::vector &res) // Null env & dummy peer_id PlayerSAO playerSAO(NULL, &player, 15789, false); - player.deSerialize(is, "", &playerSAO); + deSerialize(&player, is, "", &playerSAO); is.close(); res.emplace_back(player.getName()); diff --git a/src/database/database-files.h b/src/database/database-files.h index cb830a3ed..a041cb1ff 100644 --- a/src/database/database-files.h +++ b/src/database/database-files.h @@ -38,7 +38,14 @@ public: void listPlayers(std::vector &res); private: - void serialize(std::ostringstream &os, RemotePlayer *player); + void deSerialize(RemotePlayer *p, std::istream &is, + const std::string &playername, PlayerSAO *sao); + /* + serialize() writes a bunch of text that can contain + any characters except a '\0', and such an ending that + deSerialize stops reading exactly at the right point. + */ + void serialize(RemotePlayer *p, std::ostream &os); std::string m_savedir; }; diff --git a/src/remoteplayer.cpp b/src/remoteplayer.cpp index bef60c792..925ad001b 100644 --- a/src/remoteplayer.cpp +++ b/src/remoteplayer.cpp @@ -83,122 +83,6 @@ RemotePlayer::RemotePlayer(const char *name, IItemDefManager *idef): m_star_params = sky_defaults.getStarDefaults(); } -void RemotePlayer::serializeExtraAttributes(std::string &output) -{ - assert(m_sao); - Json::Value json_root; - - const StringMap &attrs = m_sao->getMeta().getStrings(); - for (const auto &attr : attrs) { - json_root[attr.first] = attr.second; - } - - output = fastWriteJson(json_root); -} - - -void RemotePlayer::deSerialize(std::istream &is, const std::string &playername, - PlayerSAO *sao) -{ - Settings args; - - if (!args.parseConfigLines(is, "PlayerArgsEnd")) { - throw SerializationError("PlayerArgsEnd of player " + playername + " not found!"); - } - - m_dirty = true; - //args.getS32("version"); // Version field value not used - const std::string &name = args.get("name"); - strlcpy(m_name, name.c_str(), PLAYERNAME_SIZE); - - if (sao) { - try { - sao->setHPRaw(args.getU16("hp")); - } catch(SettingNotFoundException &e) { - sao->setHPRaw(PLAYER_MAX_HP_DEFAULT); - } - - try { - sao->setBasePosition(args.getV3F("position")); - } catch (SettingNotFoundException &e) {} - - try { - sao->setLookPitch(args.getFloat("pitch")); - } catch (SettingNotFoundException &e) {} - try { - sao->setPlayerYaw(args.getFloat("yaw")); - } catch (SettingNotFoundException &e) {} - - try { - sao->setBreath(args.getU16("breath"), false); - } catch (SettingNotFoundException &e) {} - - try { - const std::string &extended_attributes = args.get("extended_attributes"); - std::istringstream iss(extended_attributes); - Json::CharReaderBuilder builder; - builder.settings_["collectComments"] = false; - std::string errs; - - Json::Value attr_root; - Json::parseFromStream(builder, iss, &attr_root, &errs); - - const Json::Value::Members attr_list = attr_root.getMemberNames(); - for (const auto &it : attr_list) { - Json::Value attr_value = attr_root[it]; - sao->getMeta().setString(it, attr_value.asString()); - } - sao->getMeta().setModified(false); - } catch (SettingNotFoundException &e) {} - } - - try { - inventory.deSerialize(is); - } catch (SerializationError &e) { - errorstream << "Failed to deserialize player inventory. player_name=" - << name << " " << e.what() << std::endl; - } - - if (!inventory.getList("craftpreview") && inventory.getList("craftresult")) { - // Convert players without craftpreview - inventory.addList("craftpreview", 1); - - bool craftresult_is_preview = true; - if(args.exists("craftresult_is_preview")) - craftresult_is_preview = args.getBool("craftresult_is_preview"); - if(craftresult_is_preview) - { - // Clear craftresult - inventory.getList("craftresult")->changeItem(0, ItemStack()); - } - } -} - -void RemotePlayer::serialize(std::ostream &os) -{ - // Utilize a Settings object for storing values - Settings args; - args.setS32("version", 1); - args.set("name", m_name); - - // This should not happen - assert(m_sao); - args.setU16("hp", m_sao->getHP()); - args.setV3F("position", m_sao->getBasePosition()); - args.setFloat("pitch", m_sao->getLookPitch()); - args.setFloat("yaw", m_sao->getRotation().Y); - args.setU16("breath", m_sao->getBreath()); - - std::string extended_attrs; - serializeExtraAttributes(extended_attrs); - args.set("extended_attributes", extended_attrs); - - args.writeLines(os); - - os<<"PlayerArgsEnd\n"; - - inventory.serialize(os); -} const RemotePlayerChatResult RemotePlayer::canSendChatMessage() { diff --git a/src/remoteplayer.h b/src/remoteplayer.h index e4209c54f..b82cbc08e 100644 --- a/src/remoteplayer.h +++ b/src/remoteplayer.h @@ -44,8 +44,6 @@ public: RemotePlayer(const char *name, IItemDefManager *idef); virtual ~RemotePlayer() = default; - void deSerialize(std::istream &is, const std::string &playername, PlayerSAO *sao); - PlayerSAO *getPlayerSAO() { return m_sao; } void setPlayerSAO(PlayerSAO *sao) { m_sao = sao; } @@ -142,13 +140,6 @@ public: void onSuccessfulSave(); private: - /* - serialize() writes a bunch of text that can contain - any characters except a '\0', and such an ending that - deSerialize stops reading exactly at the right point. - */ - void serialize(std::ostream &os); - void serializeExtraAttributes(std::string &output); PlayerSAO *m_sao = nullptr; bool m_dirty = false; From 37a05ec8d6cbf9ff4432225cffe78c16fdd0647d Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 22 Nov 2020 17:49:30 +0100 Subject: [PATCH 365/624] Settings: Proper priority hierarchy Remove old defaults system Introduce priority-based fallback list Use new functions for map_meta special functions Change groups to use end tags Unittest changes: * Adapt unittest to the new code * Compare Settings objects --- src/content/subgames.cpp | 24 +- src/database/database-files.cpp | 15 +- src/database/database-files.h | 4 +- src/defaultsettings.cpp | 4 +- src/defaultsettings.h | 9 +- src/gui/guiKeyChangeMenu.cpp | 2 +- src/main.cpp | 6 +- src/map.cpp | 2 +- src/map_settings_manager.cpp | 67 ++--- src/map_settings_manager.h | 5 +- src/remoteplayer.h | 1 - src/script/lua_api/l_mapgen.cpp | 2 +- src/script/lua_api/l_settings.cpp | 2 +- src/script/scripting_mainmenu.cpp | 2 +- src/server.cpp | 3 + src/server.h | 1 + src/serverenvironment.cpp | 7 +- src/settings.cpp | 298 ++++++++++----------- src/settings.h | 43 +-- src/unittest/test_map_settings_manager.cpp | 86 +++--- src/unittest/test_settings.cpp | 73 ++++- 21 files changed, 358 insertions(+), 298 deletions(-) diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp index c6350f2dd..e9dc609b0 100644 --- a/src/content/subgames.cpp +++ b/src/content/subgames.cpp @@ -329,18 +329,16 @@ void loadGameConfAndInitWorld(const std::string &path, const std::string &name, } } - // Override defaults with those provided by the game. - // We clear and reload the defaults because the defaults - // might have been overridden by other subgame config - // files that were loaded before. - g_settings->clearDefaults(); - set_default_settings(g_settings); + Settings *game_settings = Settings::getLayer(SL_GAME); + const bool new_game_settings = (game_settings == nullptr); + if (new_game_settings) { + // Called by main-menu without a Server instance running + // -> create and free manually + game_settings = Settings::createLayer(SL_GAME); + } - Settings game_defaults; - getGameMinetestConfig(gamespec.path, game_defaults); - game_defaults.removeSecureSettings(); - - g_settings->overrideDefaults(&game_defaults); + getGameMinetestConfig(gamespec.path, *game_settings); + game_settings->removeSecureSettings(); infostream << "Initializing world at " << final_path << std::endl; @@ -381,4 +379,8 @@ void loadGameConfAndInitWorld(const std::string &path, const std::string &name, fs::safeWriteToFile(map_meta_path, oss.str()); } + + // The Settings object is no longer needed for created worlds + if (new_game_settings) + delete game_settings; } diff --git a/src/database/database-files.cpp b/src/database/database-files.cpp index 529fb8763..d9e8f24ea 100644 --- a/src/database/database-files.cpp +++ b/src/database/database-files.cpp @@ -122,18 +122,17 @@ void PlayerDatabaseFiles::serialize(RemotePlayer *p, std::ostream &os) args.set("name", p->m_name); // This should not happen - assert(m_sao); - args.setU16("hp", p->m_sao->getHP()); - args.setV3F("position", p->m_sao->getBasePosition()); - args.setFloat("pitch", p->m_sao->getLookPitch()); - args.setFloat("yaw", p->m_sao->getRotation().Y); - args.setU16("breath", p->m_sao->getBreath()); + PlayerSAO *sao = p->getPlayerSAO(); + assert(sao); + args.setU16("hp", sao->getHP()); + args.setV3F("position", sao->getBasePosition()); + args.setFloat("pitch", sao->getLookPitch()); + args.setFloat("yaw", sao->getRotation().Y); + args.setU16("breath", sao->getBreath()); std::string extended_attrs; { // serializeExtraAttributes - PlayerSAO *sao = p->getPlayerSAO(); - assert(sao); Json::Value json_root; const StringMap &attrs = sao->getMeta().getStrings(); diff --git a/src/database/database-files.h b/src/database/database-files.h index a041cb1ff..e647a2e24 100644 --- a/src/database/database-files.h +++ b/src/database/database-files.h @@ -38,8 +38,8 @@ public: void listPlayers(std::vector &res); private: - void deSerialize(RemotePlayer *p, std::istream &is, - const std::string &playername, PlayerSAO *sao); + void deSerialize(RemotePlayer *p, std::istream &is, const std::string &playername, + PlayerSAO *sao); /* serialize() writes a bunch of text that can contain any characters except a '\0', and such an ending that diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 114351d86..d34ec324b 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -27,8 +27,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mapgen/mapgen.h" // Mapgen::setDefaultSettings #include "util/string.h" -void set_default_settings(Settings *settings) +void set_default_settings() { + Settings *settings = Settings::createLayer(SL_DEFAULTS); + // Client and server settings->setDefault("language", ""); settings->setDefault("name", ""); diff --git a/src/defaultsettings.h b/src/defaultsettings.h index c81e88502..c239b3c12 100644 --- a/src/defaultsettings.h +++ b/src/defaultsettings.h @@ -25,11 +25,4 @@ class Settings; * initialize basic default settings * @param settings pointer to settings */ -void set_default_settings(Settings *settings); - -/** - * override a default settings by settings from another settings element - * @param settings target settings pointer - * @param from source settings pointer - */ -void override_default_settings(Settings *settings, Settings *from); +void set_default_settings(); diff --git a/src/gui/guiKeyChangeMenu.cpp b/src/gui/guiKeyChangeMenu.cpp index eb641d952..4dcb47779 100644 --- a/src/gui/guiKeyChangeMenu.cpp +++ b/src/gui/guiKeyChangeMenu.cpp @@ -248,7 +248,7 @@ bool GUIKeyChangeMenu::acceptInput() { for (key_setting *k : key_settings) { std::string default_key; - g_settings->getDefaultNoEx(k->setting_name, default_key); + Settings::getLayer(SL_DEFAULTS)->getNoEx(k->setting_name, default_key); if (k->key.sym() != default_key) g_settings->set(k->setting_name, k->key.sym()); diff --git a/src/main.cpp b/src/main.cpp index f7238176b..57768dbb2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -487,12 +487,15 @@ static bool create_userdata_path() static bool init_common(const Settings &cmd_args, int argc, char *argv[]) { startup_message(); - set_default_settings(g_settings); + set_default_settings(); // Initialize sockets sockets_init(); atexit(sockets_cleanup); + // Initialize g_settings + Settings::createLayer(SL_GLOBAL); + if (!read_config_file(cmd_args)) return false; @@ -524,6 +527,7 @@ static bool read_config_file(const Settings &cmd_args) // Path of configuration file in use sanity_check(g_settings_path == ""); // Sanity check + if (cmd_args.exists("config")) { bool r = g_settings->readConfigFile(cmd_args.get("config").c_str()); if (!r) { diff --git a/src/map.cpp b/src/map.cpp index aff545921..7c59edbaa 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1184,7 +1184,7 @@ bool Map::isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes) ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef, EmergeManager *emerge, MetricsBackend *mb): Map(gamedef), - settings_mgr(g_settings, savedir + DIR_DELIM + "map_meta.txt"), + settings_mgr(savedir + DIR_DELIM + "map_meta.txt"), m_emerge(emerge) { verbosestream<overrideDefaults(user_settings); + m_map_settings = Settings::createLayer(SL_MAP, "[end_of_params]"); + Mapgen::setDefaultSettings(Settings::getLayer(SL_DEFAULTS)); } @@ -49,22 +43,23 @@ MapSettingsManager::~MapSettingsManager() bool MapSettingsManager::getMapSetting( const std::string &name, std::string *value_out) { + // Get from map_meta.txt, then try from all other sources if (m_map_settings->getNoEx(name, *value_out)) return true; // Compatibility kludge - if (m_user_settings == g_settings && name == "seed") - return m_user_settings->getNoEx("fixed_map_seed", *value_out); + if (name == "seed") + return Settings::getLayer(SL_GLOBAL)->getNoEx("fixed_map_seed", *value_out); - return m_user_settings->getNoEx(name, *value_out); + return false; } bool MapSettingsManager::getMapSettingNoiseParams( const std::string &name, NoiseParams *value_out) { - return m_map_settings->getNoiseParams(name, *value_out) || - m_user_settings->getNoiseParams(name, *value_out); + // TODO: Rename to "getNoiseParams" + return m_map_settings->getNoiseParams(name, *value_out); } @@ -77,7 +72,7 @@ bool MapSettingsManager::setMapSetting( if (override_meta) m_map_settings->set(name, value); else - m_map_settings->setDefault(name, value); + Settings::getLayer(SL_GLOBAL)->set(name, value); return true; } @@ -89,7 +84,11 @@ bool MapSettingsManager::setMapSettingNoiseParams( if (mapgen_params) return false; - m_map_settings->setNoiseParams(name, *value, !override_meta); + if (override_meta) + m_map_settings->setNoiseParams(name, *value); + else + Settings::getLayer(SL_GLOBAL)->setNoiseParams(name, *value); + return true; } @@ -104,8 +103,8 @@ bool MapSettingsManager::loadMapMeta() return false; } - if (!m_map_settings->parseConfigLines(is, "[end_of_params]")) { - errorstream << "loadMapMeta: [end_of_params] not found!" << std::endl; + if (!m_map_settings->parseConfigLines(is)) { + errorstream << "loadMapMeta: Format error. '[end_of_params]' missing?" << std::endl; return false; } @@ -116,28 +115,22 @@ bool MapSettingsManager::loadMapMeta() bool MapSettingsManager::saveMapMeta() { // If mapgen params haven't been created yet; abort - if (!mapgen_params) + if (!mapgen_params) { + errorstream << "saveMapMeta: mapgen_params not present!" << std::endl; return false; + } + // Paths set up by subgames.cpp, but not in unittests if (!fs::CreateAllDirs(fs::RemoveLastPathComponent(m_map_meta_path))) { errorstream << "saveMapMeta: could not create dirs to " << m_map_meta_path; return false; } - std::ostringstream oss(std::ios_base::binary); - Settings conf; + mapgen_params->MapgenParams::writeParams(m_map_settings); + mapgen_params->writeParams(m_map_settings); - mapgen_params->MapgenParams::writeParams(&conf); - mapgen_params->writeParams(&conf); - conf.writeLines(oss); - - // NOTE: If there are ever types of map settings other than - // those relating to map generation, save them here - - oss << "[end_of_params]\n"; - - if (!fs::safeWriteToFile(m_map_meta_path, oss.str())) { + if (!m_map_settings->updateConfigFile(m_map_meta_path.c_str())) { errorstream << "saveMapMeta: could not write " << m_map_meta_path << std::endl; return false; @@ -152,23 +145,21 @@ MapgenParams *MapSettingsManager::makeMapgenParams() if (mapgen_params) return mapgen_params; - assert(m_user_settings != NULL); assert(m_map_settings != NULL); // At this point, we have (in order of precedence): - // 1). m_mapgen_settings->m_settings containing map_meta.txt settings or + // 1). SL_MAP containing map_meta.txt settings or // explicit overrides from scripts - // 2). m_mapgen_settings->m_defaults containing script-set mgparams without - // overrides - // 3). g_settings->m_settings containing all user-specified config file + // 2). SL_GLOBAL containing all user-specified config file // settings - // 4). g_settings->m_defaults containing any low-priority settings from + // 3). SL_DEFAULTS containing any low-priority settings from // scripts, e.g. mods using Lua as an enhanced config file) // Now, get the mapgen type so we can create the appropriate MapgenParams std::string mg_name; MapgenType mgtype = getMapSetting("mg_name", &mg_name) ? Mapgen::getMapgenType(mg_name) : MAPGEN_DEFAULT; + if (mgtype == MAPGEN_INVALID) { errorstream << "EmergeManager: mapgen '" << mg_name << "' not valid; falling back to " << diff --git a/src/map_settings_manager.h b/src/map_settings_manager.h index 5baa38455..9258d3032 100644 --- a/src/map_settings_manager.h +++ b/src/map_settings_manager.h @@ -44,8 +44,7 @@ struct MapgenParams; */ class MapSettingsManager { public: - MapSettingsManager(Settings *user_settings, - const std::string &map_meta_path); + MapSettingsManager(const std::string &map_meta_path); ~MapSettingsManager(); // Finalized map generation parameters @@ -71,6 +70,6 @@ public: private: std::string m_map_meta_path; + // TODO: Rename to "m_settings" Settings *m_map_settings; - Settings *m_user_settings; }; diff --git a/src/remoteplayer.h b/src/remoteplayer.h index b82cbc08e..8d086fc5a 100644 --- a/src/remoteplayer.h +++ b/src/remoteplayer.h @@ -140,7 +140,6 @@ public: void onSuccessfulSave(); private: - PlayerSAO *m_sao = nullptr; bool m_dirty = false; diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index fad08e1f6..183f20540 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -982,7 +982,7 @@ int ModApiMapgen::l_set_noiseparams(lua_State *L) bool set_default = !lua_isboolean(L, 3) || readParam(L, 3); - g_settings->setNoiseParams(name, np, set_default); + Settings::getLayer(set_default ? SL_DEFAULTS : SL_GLOBAL)->setNoiseParams(name, np); return 0; } diff --git a/src/script/lua_api/l_settings.cpp b/src/script/lua_api/l_settings.cpp index 33eb02392..bcbaf15fa 100644 --- a/src/script/lua_api/l_settings.cpp +++ b/src/script/lua_api/l_settings.cpp @@ -197,7 +197,7 @@ int LuaSettings::l_set_np_group(lua_State *L) SET_SECURITY_CHECK(L, key); - o->m_settings->setNoiseParams(key, value, false); + o->m_settings->setNoiseParams(key, value); return 0; } diff --git a/src/script/scripting_mainmenu.cpp b/src/script/scripting_mainmenu.cpp index 0f672f917..9b377366e 100644 --- a/src/script/scripting_mainmenu.cpp +++ b/src/script/scripting_mainmenu.cpp @@ -31,7 +31,7 @@ with this program; if not, write to the Free Software Foundation, Inc., extern "C" { #include "lualib.h" } - +#include "settings.h" #define MAINMENU_NUM_ASYNC_THREADS 4 diff --git a/src/server.cpp b/src/server.cpp index b5352749c..aba7b6401 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -351,6 +351,7 @@ Server::~Server() // Deinitialize scripting infostream << "Server: Deinitializing scripting" << std::endl; delete m_script; + delete m_game_settings; while (!m_unsent_map_edit_queue.empty()) { delete m_unsent_map_edit_queue.front(); @@ -368,6 +369,8 @@ void Server::init() infostream << "- world: " << m_path_world << std::endl; infostream << "- game: " << m_gamespec.path << std::endl; + m_game_settings = Settings::createLayer(SL_GAME); + // Create world if it doesn't exist try { loadGameConfAndInitWorld(m_path_world, diff --git a/src/server.h b/src/server.h index a7e85d0e1..1dd181794 100644 --- a/src/server.h +++ b/src/server.h @@ -524,6 +524,7 @@ private: u16 m_max_chatmessage_length; // For "dedicated" server list flag bool m_dedicated; + Settings *m_game_settings = nullptr; // Thread can set; step() will throw as ServerError MutexedVariable m_async_fatal_error; diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp index 56dbb0632..3d9ba132b 100644 --- a/src/serverenvironment.cpp +++ b/src/serverenvironment.cpp @@ -632,7 +632,7 @@ void ServerEnvironment::saveMeta() // Open file and serialize std::ostringstream ss(std::ios_base::binary); - Settings args; + Settings args("EnvArgsEnd"); args.setU64("game_time", m_game_time); args.setU64("time_of_day", getTimeOfDay()); args.setU64("last_clear_objects_time", m_last_clear_objects_time); @@ -641,7 +641,6 @@ void ServerEnvironment::saveMeta() m_lbm_mgr.createIntroductionTimesString()); args.setU64("day_count", m_day_count); args.writeLines(ss); - ss<<"EnvArgsEnd\n"; if(!fs::safeWriteToFile(path, ss.str())) { @@ -676,9 +675,9 @@ void ServerEnvironment::loadMeta() throw SerializationError("Couldn't load env meta"); } - Settings args; + Settings args("EnvArgsEnd"); - if (!args.parseConfigLines(is, "EnvArgsEnd")) { + if (!args.parseConfigLines(is)) { throw SerializationError("ServerEnvironment::loadMeta(): " "EnvArgsEnd not found!"); } diff --git a/src/settings.cpp b/src/settings.cpp index f30ef34e9..cf2a16aa6 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -33,27 +33,50 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include -static Settings main_settings; -Settings *g_settings = &main_settings; +Settings *g_settings = nullptr; std::string g_settings_path; -Settings::~Settings() +Settings *Settings::s_layers[SL_TOTAL_COUNT] = {0}; // Zeroed by compiler +std::unordered_map Settings::s_flags; + + +Settings *Settings::createLayer(SettingsLayer sl, const std::string &end_tag) { - clear(); + if ((int)sl < 0 || sl >= SL_TOTAL_COUNT) + throw new BaseException("Invalid settings layer"); + + Settings *&pos = s_layers[(size_t)sl]; + if (pos) + throw new BaseException("Setting layer " + std::to_string(sl) + " already exists"); + + pos = new Settings(end_tag); + pos->m_settingslayer = sl; + + if (sl == SL_GLOBAL) + g_settings = pos; + return pos; } -Settings & Settings::operator += (const Settings &other) +Settings *Settings::getLayer(SettingsLayer sl) { - if (&other == this) - return *this; + sanity_check((int)sl >= 0 && sl < SL_TOTAL_COUNT); + return s_layers[(size_t)sl]; +} + +Settings::~Settings() +{ MutexAutoLock lock(m_mutex); - MutexAutoLock lock2(other.m_mutex); - updateNoLock(other); + if (m_settingslayer < SL_TOTAL_COUNT) + s_layers[(size_t)m_settingslayer] = nullptr; - return *this; + // Compatibility + if (m_settingslayer == SL_GLOBAL) + g_settings = nullptr; + + clearNoLock(); } @@ -62,11 +85,15 @@ Settings & Settings::operator = (const Settings &other) if (&other == this) return *this; + FATAL_ERROR_IF(m_settingslayer != SL_TOTAL_COUNT && other.m_settingslayer != SL_TOTAL_COUNT, + ("Tried to copy unique Setting layer " + std::to_string(m_settingslayer)).c_str()); + MutexAutoLock lock(m_mutex); MutexAutoLock lock2(other.m_mutex); clearNoLock(); - updateNoLock(other); + m_settings = other.m_settings; + m_callbacks = other.m_callbacks; return *this; } @@ -130,11 +157,11 @@ bool Settings::readConfigFile(const char *filename) if (!is.good()) return false; - return parseConfigLines(is, ""); + return parseConfigLines(is); } -bool Settings::parseConfigLines(std::istream &is, const std::string &end) +bool Settings::parseConfigLines(std::istream &is) { MutexAutoLock lock(m_mutex); @@ -142,7 +169,7 @@ bool Settings::parseConfigLines(std::istream &is, const std::string &end) while (is.good()) { std::getline(is, line); - SettingsParseEvent event = parseConfigObject(line, end, name, value); + SettingsParseEvent event = parseConfigObject(line, name, value); switch (event) { case SPE_NONE: @@ -155,8 +182,8 @@ bool Settings::parseConfigLines(std::istream &is, const std::string &end) case SPE_END: return true; case SPE_GROUP: { - Settings *group = new Settings; - if (!group->parseConfigLines(is, "}")) { + Settings *group = new Settings("}"); + if (!group->parseConfigLines(is)) { delete group; return false; } @@ -169,7 +196,8 @@ bool Settings::parseConfigLines(std::istream &is, const std::string &end) } } - return end.empty(); + // false (failure) if end tag not found + return m_end_tag.empty(); } @@ -179,6 +207,13 @@ void Settings::writeLines(std::ostream &os, u32 tab_depth) const for (const auto &setting_it : m_settings) printEntry(os, setting_it.first, setting_it.second, tab_depth); + + if (!m_end_tag.empty()) { + for (u32 i = 0; i < tab_depth; i++) + os << "\t"; + + os << m_end_tag << "\n"; + } } @@ -193,9 +228,7 @@ void Settings::printEntry(std::ostream &os, const std::string &name, entry.group->writeLines(os, tab_depth + 1); - for (u32 i = 0; i != tab_depth; i++) - os << "\t"; - os << "}\n"; + // Closing bracket handled by writeLines } else { os << name << " = "; @@ -207,8 +240,7 @@ void Settings::printEntry(std::ostream &os, const std::string &name, } -bool Settings::updateConfigObject(std::istream &is, std::ostream &os, - const std::string &end, u32 tab_depth) +bool Settings::updateConfigObject(std::istream &is, std::ostream &os, u32 tab_depth) { SettingEntries::const_iterator it; std::set present_entries; @@ -220,11 +252,11 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os, // in the object if existing while (is.good() && !end_found) { std::getline(is, line); - SettingsParseEvent event = parseConfigObject(line, end, name, value); + SettingsParseEvent event = parseConfigObject(line, name, value); switch (event) { case SPE_END: - os << line << (is.eof() ? "" : "\n"); + // Skip end tag. Append later. end_found = true; break; case SPE_MULTILINE: @@ -252,14 +284,13 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os, if (it != m_settings.end() && it->second.is_group) { os << line << "\n"; sanity_check(it->second.group != NULL); - was_modified |= it->second.group->updateConfigObject(is, os, - "}", tab_depth + 1); + was_modified |= it->second.group->updateConfigObject(is, os, tab_depth + 1); } else if (it == m_settings.end()) { // Remove by skipping was_modified = true; - Settings removed_group; // Move 'is' to group end + Settings removed_group("}"); // Move 'is' to group end std::stringstream ss; - removed_group.updateConfigObject(is, ss, "}", tab_depth + 1); + removed_group.updateConfigObject(is, ss, tab_depth + 1); break; } else { printEntry(os, name, it->second, tab_depth); @@ -273,6 +304,9 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os, } } + if (!line.empty() && is.eof()) + os << "\n"; + // Add any settings in the object that don't exist in the config file yet for (it = m_settings.begin(); it != m_settings.end(); ++it) { if (present_entries.find(it->first) != present_entries.end()) @@ -282,6 +316,12 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os, was_modified = true; } + // Append ending tag + if (!m_end_tag.empty()) { + os << m_end_tag << "\n"; + was_modified |= !end_found; + } + return was_modified; } @@ -293,7 +333,7 @@ bool Settings::updateConfigFile(const char *filename) std::ifstream is(filename); std::ostringstream os(std::ios_base::binary); - bool was_modified = updateConfigObject(is, os, ""); + bool was_modified = updateConfigObject(is, os); is.close(); if (!was_modified) @@ -366,29 +406,37 @@ bool Settings::parseCommandLine(int argc, char *argv[], * Getters * ***********/ - -const SettingsEntry &Settings::getEntry(const std::string &name) const +Settings *Settings::getParent() const { - MutexAutoLock lock(m_mutex); + // If the Settings object is within the hierarchy structure, + // iterate towards the origin (0) to find the next fallback layer + if (m_settingslayer >= SL_TOTAL_COUNT) + return nullptr; - SettingEntries::const_iterator n; - if ((n = m_settings.find(name)) == m_settings.end()) { - if ((n = m_defaults.find(name)) == m_defaults.end()) - throw SettingNotFoundException("Setting [" + name + "] not found."); + for (int i = (int)m_settingslayer - 1; i >= 0; --i) { + if (s_layers[i]) + return s_layers[i]; } - return n->second; + + // No parent + return nullptr; } -const SettingsEntry &Settings::getEntryDefault(const std::string &name) const +const SettingsEntry &Settings::getEntry(const std::string &name) const { - MutexAutoLock lock(m_mutex); + { + MutexAutoLock lock(m_mutex); - SettingEntries::const_iterator n; - if ((n = m_defaults.find(name)) == m_defaults.end()) { - throw SettingNotFoundException("Setting [" + name + "] not found."); + SettingEntries::const_iterator n; + if ((n = m_settings.find(name)) != m_settings.end()) + return n->second; } - return n->second; + + if (auto parent = getParent()) + return parent->getEntry(name); + + throw SettingNotFoundException("Setting [" + name + "] not found."); } @@ -412,10 +460,15 @@ const std::string &Settings::get(const std::string &name) const const std::string &Settings::getDefault(const std::string &name) const { - const SettingsEntry &entry = getEntryDefault(name); - if (entry.is_group) + const SettingsEntry *entry; + if (auto parent = getParent()) + entry = &parent->getEntry(name); + else + entry = &getEntry(name); // Bottom of the chain + + if (entry->is_group) throw SettingNotFoundException("Setting [" + name + "] is a group."); - return entry.value; + return entry->value; } @@ -491,29 +544,25 @@ u32 Settings::getFlagStr(const std::string &name, const FlagDesc *flagdesc, u32 *flagmask) const { u32 flags = 0; - u32 mask_default = 0; - std::string value; // Read default value (if there is any) - if (getDefaultNoEx(name, value)) { - flags = std::isdigit(value[0]) - ? stoi(value) - : readFlagString(value, flagdesc, &mask_default); - } + if (auto parent = getParent()) + flags = parent->getFlagStr(name, flagdesc, flagmask); // Apply custom flags "on top" - value = get(name); - u32 flags_user; - u32 mask_user = U32_MAX; - flags_user = std::isdigit(value[0]) - ? stoi(value) // Override default - : readFlagString(value, flagdesc, &mask_user); + if (m_settings.find(name) != m_settings.end()) { + std::string value = get(name); + u32 flags_user; + u32 mask_user = U32_MAX; + flags_user = std::isdigit(value[0]) + ? stoi(value) // Override default + : readFlagString(value, flagdesc, &mask_user); - flags &= ~mask_user; - flags |= flags_user; - - if (flagmask) - *flagmask = mask_default | mask_user; + flags &= ~mask_user; + flags |= flags_user; + if (flagmask) + *flagmask |= mask_user; + } return flags; } @@ -521,7 +570,12 @@ u32 Settings::getFlagStr(const std::string &name, const FlagDesc *flagdesc, bool Settings::getNoiseParams(const std::string &name, NoiseParams &np) const { - return getNoiseParamsFromGroup(name, np) || getNoiseParamsFromValue(name, np); + if (getNoiseParamsFromGroup(name, np) || getNoiseParamsFromValue(name, np)) + return true; + if (auto parent = getParent()) + return parent->getNoiseParams(name, np); + + return false; } @@ -583,13 +637,18 @@ bool Settings::exists(const std::string &name) const { MutexAutoLock lock(m_mutex); - return (m_settings.find(name) != m_settings.end() || - m_defaults.find(name) != m_defaults.end()); + if (m_settings.find(name) != m_settings.end()) + return true; + if (auto parent = getParent()) + return parent->exists(name); + return false; } std::vector Settings::getNames() const { + MutexAutoLock lock(m_mutex); + std::vector names; for (const auto &settings_it : m_settings) { names.push_back(settings_it.first); @@ -625,17 +684,6 @@ bool Settings::getNoEx(const std::string &name, std::string &val) const } -bool Settings::getDefaultNoEx(const std::string &name, std::string &val) const -{ - try { - val = getDefault(name); - return true; - } catch (SettingNotFoundException &e) { - return false; - } -} - - bool Settings::getFlag(const std::string &name) const { try { @@ -746,24 +794,25 @@ bool Settings::getFlagStrNoEx(const std::string &name, u32 &val, ***********/ bool Settings::setEntry(const std::string &name, const void *data, - bool set_group, bool set_default) + bool set_group) { - Settings *old_group = NULL; - if (!checkNameValid(name)) return false; if (!set_group && !checkValueValid(*(const std::string *)data)) return false; + Settings *old_group = NULL; { MutexAutoLock lock(m_mutex); - SettingsEntry &entry = set_default ? m_defaults[name] : m_settings[name]; + SettingsEntry &entry = m_settings[name]; old_group = entry.group; entry.value = set_group ? "" : *(const std::string *)data; entry.group = set_group ? *(Settings **)data : NULL; entry.is_group = set_group; + if (set_group) + entry.group->m_end_tag = "}"; } delete old_group; @@ -774,7 +823,7 @@ bool Settings::setEntry(const std::string &name, const void *data, bool Settings::set(const std::string &name, const std::string &value) { - if (!setEntry(name, &value, false, false)) + if (!setEntry(name, &value, false)) return false; doCallbacks(name); @@ -782,9 +831,10 @@ bool Settings::set(const std::string &name, const std::string &value) } +// TODO: Remove this function bool Settings::setDefault(const std::string &name, const std::string &value) { - return setEntry(name, &value, false, true); + return getLayer(SL_DEFAULTS)->set(name, value); } @@ -794,17 +844,7 @@ bool Settings::setGroup(const std::string &name, const Settings &group) // avoid double-free by copying the source Settings *copy = new Settings(); *copy = group; - return setEntry(name, ©, true, false); -} - - -bool Settings::setGroupDefault(const std::string &name, const Settings &group) -{ - // Settings must own the group pointer - // avoid double-free by copying the source - Settings *copy = new Settings(); - *copy = group; - return setEntry(name, ©, true, true); + return setEntry(name, ©, true); } @@ -874,8 +914,7 @@ bool Settings::setFlagStr(const std::string &name, u32 flags, } -bool Settings::setNoiseParams(const std::string &name, - const NoiseParams &np, bool set_default) +bool Settings::setNoiseParams(const std::string &name, const NoiseParams &np) { Settings *group = new Settings; @@ -888,7 +927,7 @@ bool Settings::setNoiseParams(const std::string &name, group->setFloat("lacunarity", np.lacunarity); group->setFlagStr("flags", np.flags, flagdesc_noiseparams, np.flags); - return setEntry(name, &group, true, set_default); + return setEntry(name, &group, true); } @@ -912,20 +951,8 @@ bool Settings::remove(const std::string &name) } -void Settings::clear() -{ - MutexAutoLock lock(m_mutex); - clearNoLock(); -} - -void Settings::clearDefaults() -{ - MutexAutoLock lock(m_mutex); - clearDefaultsNoLock(); -} - SettingsParseEvent Settings::parseConfigObject(const std::string &line, - const std::string &end, std::string &name, std::string &value) + std::string &name, std::string &value) { std::string trimmed_line = trim(line); @@ -933,7 +960,7 @@ SettingsParseEvent Settings::parseConfigObject(const std::string &line, return SPE_NONE; if (trimmed_line[0] == '#') return SPE_COMMENT; - if (trimmed_line == end) + if (trimmed_line == m_end_tag) return SPE_END; size_t pos = trimmed_line.find('='); @@ -952,67 +979,26 @@ SettingsParseEvent Settings::parseConfigObject(const std::string &line, } -void Settings::updateNoLock(const Settings &other) -{ - m_settings.insert(other.m_settings.begin(), other.m_settings.end()); - m_defaults.insert(other.m_defaults.begin(), other.m_defaults.end()); -} - - void Settings::clearNoLock() { - for (SettingEntries::const_iterator it = m_settings.begin(); it != m_settings.end(); ++it) delete it->second.group; m_settings.clear(); - - clearDefaultsNoLock(); } -void Settings::clearDefaultsNoLock() -{ - for (SettingEntries::const_iterator it = m_defaults.begin(); - it != m_defaults.end(); ++it) - delete it->second.group; - m_defaults.clear(); -} void Settings::setDefault(const std::string &name, const FlagDesc *flagdesc, u32 flags) { - m_flags[name] = flagdesc; + s_flags[name] = flagdesc; setDefault(name, writeFlagString(flags, flagdesc, U32_MAX)); } -void Settings::overrideDefaults(Settings *other) -{ - for (const auto &setting : other->m_settings) { - if (setting.second.is_group) { - setGroupDefault(setting.first, *setting.second.group); - continue; - } - const FlagDesc *flagdesc = getFlagDescFallback(setting.first); - if (flagdesc) { - // Flags cannot be copied directly. - // 1) Get the current set flags - u32 flags = getFlagStr(setting.first, flagdesc, nullptr); - // 2) Set the flags as defaults - other->setDefault(setting.first, flagdesc, flags); - // 3) Get the newly set flags and override the default setting value - setDefault(setting.first, flagdesc, - other->getFlagStr(setting.first, flagdesc, nullptr)); - continue; - } - // Also covers FlagDesc settings - setDefault(setting.first, setting.second.value); - } -} - const FlagDesc *Settings::getFlagDescFallback(const std::string &name) const { - auto it = m_flags.find(name); - return it == m_flags.end() ? nullptr : it->second; + auto it = s_flags.find(name); + return it == s_flags.end() ? nullptr : it->second; } void Settings::registerChangedCallback(const std::string &name, diff --git a/src/settings.h b/src/settings.h index 6db2f9481..af4cae3cd 100644 --- a/src/settings.h +++ b/src/settings.h @@ -30,7 +30,7 @@ class Settings; struct NoiseParams; // Global objects -extern Settings *g_settings; +extern Settings *g_settings; // Same as Settings::getLayer(SL_GLOBAL); extern std::string g_settings_path; // Type for a settings changed callback function @@ -60,6 +60,14 @@ enum SettingsParseEvent { SPE_MULTILINE, }; +enum SettingsLayer { + SL_DEFAULTS, + SL_GAME, + SL_GLOBAL, + SL_MAP, + SL_TOTAL_COUNT +}; + struct ValueSpec { ValueSpec(ValueType a_type, const char *a_help=NULL) { @@ -92,8 +100,13 @@ typedef std::unordered_map SettingEntries; class Settings { public: - Settings() = default; + static Settings *createLayer(SettingsLayer sl, const std::string &end_tag = ""); + static Settings *getLayer(SettingsLayer sl); + SettingsLayer getLayerType() const { return m_settingslayer; } + Settings(const std::string &end_tag = "") : + m_end_tag(end_tag) + {} ~Settings(); Settings & operator += (const Settings &other); @@ -110,7 +123,7 @@ public: // NOTE: Types of allowed_options are ignored. Returns success. bool parseCommandLine(int argc, char *argv[], std::map &allowed_options); - bool parseConfigLines(std::istream &is, const std::string &end = ""); + bool parseConfigLines(std::istream &is); void writeLines(std::ostream &os, u32 tab_depth=0) const; /*********** @@ -146,7 +159,6 @@ public: bool getGroupNoEx(const std::string &name, Settings *&val) const; bool getNoEx(const std::string &name, std::string &val) const; - bool getDefaultNoEx(const std::string &name, std::string &val) const; bool getFlag(const std::string &name) const; bool getU16NoEx(const std::string &name, u16 &val) const; bool getS16NoEx(const std::string &name, s16 &val) const; @@ -170,11 +182,10 @@ public: // N.B. Groups not allocated with new must be set to NULL in the settings // tree before object destruction. bool setEntry(const std::string &name, const void *entry, - bool set_group, bool set_default); + bool set_group); bool set(const std::string &name, const std::string &value); bool setDefault(const std::string &name, const std::string &value); bool setGroup(const std::string &name, const Settings &group); - bool setGroupDefault(const std::string &name, const Settings &group); bool setBool(const std::string &name, bool value); bool setS16(const std::string &name, s16 value); bool setU16(const std::string &name, u16 value); @@ -185,21 +196,16 @@ public: bool setV3F(const std::string &name, v3f value); bool setFlagStr(const std::string &name, u32 flags, const FlagDesc *flagdesc = nullptr, u32 flagmask = U32_MAX); - bool setNoiseParams(const std::string &name, const NoiseParams &np, - bool set_default=false); + bool setNoiseParams(const std::string &name, const NoiseParams &np); // remove a setting bool remove(const std::string &name); - void clear(); - void clearDefaults(); /************** * Miscellany * **************/ void setDefault(const std::string &name, const FlagDesc *flagdesc, u32 flags); - // Takes the provided setting values and uses them as new defaults - void overrideDefaults(Settings *other); const FlagDesc *getFlagDescFallback(const std::string &name) const; void registerChangedCallback(const std::string &name, @@ -215,9 +221,9 @@ private: ***********************/ SettingsParseEvent parseConfigObject(const std::string &line, - const std::string &end, std::string &name, std::string &value); + std::string &name, std::string &value); bool updateConfigObject(std::istream &is, std::ostream &os, - const std::string &end, u32 tab_depth=0); + u32 tab_depth=0); static bool checkNameValid(const std::string &name); static bool checkValueValid(const std::string &value); @@ -228,9 +234,9 @@ private: /*********** * Getters * ***********/ + Settings *getParent() const; const SettingsEntry &getEntry(const std::string &name) const; - const SettingsEntry &getEntryDefault(const std::string &name) const; // Allow TestSettings to run sanity checks using private functions. friend class TestSettings; @@ -242,14 +248,15 @@ private: void doCallbacks(const std::string &name) const; SettingEntries m_settings; - SettingEntries m_defaults; - std::unordered_map m_flags; - SettingsCallbackMap m_callbacks; + std::string m_end_tag; mutable std::mutex m_callback_mutex; // All methods that access m_settings/m_defaults directly should lock this. mutable std::mutex m_mutex; + static Settings *s_layers[SL_TOTAL_COUNT]; + SettingsLayer m_settingslayer = SL_TOTAL_COUNT; + static std::unordered_map s_flags; }; diff --git a/src/unittest/test_map_settings_manager.cpp b/src/unittest/test_map_settings_manager.cpp index 3d642a9b4..81ca68705 100644 --- a/src/unittest/test_map_settings_manager.cpp +++ b/src/unittest/test_map_settings_manager.cpp @@ -30,7 +30,7 @@ public: TestMapSettingsManager() { TestManager::registerTestModule(this); } const char *getName() { return "TestMapSettingsManager"; } - void makeUserConfig(Settings *conf); + void makeUserConfig(); std::string makeMetaFile(bool make_corrupt); void runTests(IGameDef *gamedef); @@ -65,8 +65,11 @@ void check_noise_params(const NoiseParams *np1, const NoiseParams *np2) } -void TestMapSettingsManager::makeUserConfig(Settings *conf) +void TestMapSettingsManager::makeUserConfig() { + delete Settings::getLayer(SL_GLOBAL); + Settings *conf = Settings::createLayer(SL_GLOBAL); + conf->set("mg_name", "v7"); conf->set("seed", "5678"); conf->set("water_level", "20"); @@ -103,12 +106,11 @@ std::string TestMapSettingsManager::makeMetaFile(bool make_corrupt) void TestMapSettingsManager::testMapSettingsManager() { - Settings user_settings; - makeUserConfig(&user_settings); + makeUserConfig(); std::string test_mapmeta_path = makeMetaFile(false); - MapSettingsManager mgr(&user_settings, test_mapmeta_path); + MapSettingsManager mgr(test_mapmeta_path); std::string value; UASSERT(mgr.getMapSetting("mg_name", &value)); @@ -140,6 +142,12 @@ void TestMapSettingsManager::testMapSettingsManager() mgr.setMapSettingNoiseParams("mgv5_np_height", &script_np_height); mgr.setMapSettingNoiseParams("mgv5_np_factor", &script_np_factor); + { + NoiseParams dummy; + mgr.getMapSettingNoiseParams("mgv5_np_factor", &dummy); + check_noise_params(&dummy, &script_np_factor); + } + // Now make our Params and see if the values are correctly sourced MapgenParams *params = mgr.makeMapgenParams(); UASSERT(params->mgtype == MAPGEN_V5); @@ -188,50 +196,66 @@ void TestMapSettingsManager::testMapSettingsManager() void TestMapSettingsManager::testMapMetaSaveLoad() { - Settings conf; std::string path = getTestTempDirectory() + DIR_DELIM + "foobar" + DIR_DELIM + "map_meta.txt"; + makeUserConfig(); + Settings &conf = *Settings::getLayer(SL_GLOBAL); + + // There cannot be two MapSettingsManager + // copy the mapgen params to compare them + MapgenParams params1, params2; // Create a set of mapgen params and save them to map meta - conf.set("seed", "12345"); - conf.set("water_level", "5"); - MapSettingsManager mgr1(&conf, path); - MapgenParams *params1 = mgr1.makeMapgenParams(); - UASSERT(params1); - UASSERT(mgr1.saveMapMeta()); + { + conf.set("seed", "12345"); + conf.set("water_level", "5"); + MapSettingsManager mgr(path); + MapgenParams *params = mgr.makeMapgenParams(); + UASSERT(params); + params1 = *params; + params1.bparams = nullptr; // No double-free + UASSERT(mgr.saveMapMeta()); + } // Now try loading the map meta to mapgen params - conf.set("seed", "67890"); - conf.set("water_level", "32"); - MapSettingsManager mgr2(&conf, path); - UASSERT(mgr2.loadMapMeta()); - MapgenParams *params2 = mgr2.makeMapgenParams(); - UASSERT(params2); + { + conf.set("seed", "67890"); + conf.set("water_level", "32"); + MapSettingsManager mgr(path); + UASSERT(mgr.loadMapMeta()); + MapgenParams *params = mgr.makeMapgenParams(); + UASSERT(params); + params2 = *params; + params2.bparams = nullptr; // No double-free + } // Check that both results are correct - UASSERTEQ(u64, params1->seed, 12345); - UASSERTEQ(s16, params1->water_level, 5); - UASSERTEQ(u64, params2->seed, 12345); - UASSERTEQ(s16, params2->water_level, 5); + UASSERTEQ(u64, params1.seed, 12345); + UASSERTEQ(s16, params1.water_level, 5); + UASSERTEQ(u64, params2.seed, 12345); + UASSERTEQ(s16, params2.water_level, 5); } void TestMapSettingsManager::testMapMetaFailures() { std::string test_mapmeta_path; - Settings conf; // Check to see if it'll fail on a non-existent map meta file - test_mapmeta_path = "woobawooba/fgdfg/map_meta.txt"; - UASSERT(!fs::PathExists(test_mapmeta_path)); + { + test_mapmeta_path = "woobawooba/fgdfg/map_meta.txt"; + UASSERT(!fs::PathExists(test_mapmeta_path)); - MapSettingsManager mgr1(&conf, test_mapmeta_path); - UASSERT(!mgr1.loadMapMeta()); + MapSettingsManager mgr1(test_mapmeta_path); + UASSERT(!mgr1.loadMapMeta()); + } // Check to see if it'll fail on a corrupt map meta file - test_mapmeta_path = makeMetaFile(true); - UASSERT(fs::PathExists(test_mapmeta_path)); + { + test_mapmeta_path = makeMetaFile(true); + UASSERT(fs::PathExists(test_mapmeta_path)); - MapSettingsManager mgr2(&conf, test_mapmeta_path); - UASSERT(!mgr2.loadMapMeta()); + MapSettingsManager mgr2(test_mapmeta_path); + UASSERT(!mgr2.loadMapMeta()); + } } diff --git a/src/unittest/test_settings.cpp b/src/unittest/test_settings.cpp index f91ba5b67..d2d35c357 100644 --- a/src/unittest/test_settings.cpp +++ b/src/unittest/test_settings.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "settings.h" +#include "defaultsettings.h" #include "noise.h" class TestSettings : public TestBase { @@ -31,6 +32,7 @@ public: void runTests(IGameDef *gamedef); void testAllSettings(); + void testDefaults(); void testFlagDesc(); static const char *config_text_before; @@ -42,6 +44,7 @@ static TestSettings g_test_instance; void TestSettings::runTests(IGameDef *gamedef) { TEST(testAllSettings); + TEST(testDefaults); TEST(testFlagDesc); } @@ -70,7 +73,8 @@ const char *TestSettings::config_text_before = " with leading whitespace!\n" "\"\"\"\n" "np_terrain = 5, 40, (250, 250, 250), 12341, 5, 0.7, 2.4\n" - "zoop = true"; + "zoop = true\n" + "[dummy_eof_end_tag]\n"; const std::string TestSettings::config_text_after = "leet = 1337\n" @@ -111,12 +115,34 @@ const std::string TestSettings::config_text_after = " animals = cute\n" " num_apples = 4\n" " num_oranges = 53\n" - "}\n"; + "}\n" + "[dummy_eof_end_tag]"; + +void compare_settings(const std::string &name, Settings *a, Settings *b) +{ + auto keys = a->getNames(); + Settings *group1, *group2; + std::string value1, value2; + for (auto &key : keys) { + if (a->getGroupNoEx(key, group1)) { + UASSERT(b->getGroupNoEx(key, group2)); + + compare_settings(name + "->" + key, group1, group2); + continue; + } + + UASSERT(b->getNoEx(key, value1)); + // For identification + value1 = name + "->" + key + "=" + value1; + value2 = name + "->" + key + "=" + a->get(key); + UASSERTCMP(std::string, ==, value2, value1); + } +} void TestSettings::testAllSettings() { try { - Settings s; + Settings s("[dummy_eof_end_tag]"); // Test reading of settings std::istringstream is(config_text_before); @@ -197,21 +223,44 @@ void TestSettings::testAllSettings() is.clear(); is.seekg(0); - UASSERT(s.updateConfigObject(is, os, "", 0) == true); - //printf(">>>> expected config:\n%s\n", TEST_CONFIG_TEXT_AFTER); - //printf(">>>> actual config:\n%s\n", os.str().c_str()); -#if __cplusplus < 201103L - // This test only works in older C++ versions than C++11 because we use unordered_map - UASSERT(os.str() == config_text_after); -#endif + UASSERT(s.updateConfigObject(is, os, 0) == true); + + { + // Confirm settings + Settings s2("[dummy_eof_end_tag]"); + std::istringstream is(config_text_after, std::ios_base::binary); + s2.parseConfigLines(is); + + compare_settings("(main)", &s, &s2); + } + } catch (SettingNotFoundException &e) { UASSERT(!"Setting not found!"); } } +void TestSettings::testDefaults() +{ + Settings *game = Settings::createLayer(SL_GAME); + Settings *def = Settings::getLayer(SL_DEFAULTS); + + def->set("name", "FooBar"); + UASSERT(def->get("name") == "FooBar"); + UASSERT(game->get("name") == "FooBar"); + + game->set("name", "Baz"); + UASSERT(game->get("name") == "Baz"); + + delete game; + + // Restore default settings + delete Settings::getLayer(SL_DEFAULTS); + set_default_settings(); +} + void TestSettings::testFlagDesc() { - Settings s; + Settings &s = *Settings::createLayer(SL_GAME); FlagDesc flagdesc[] = { { "biomes", 0x01 }, { "trees", 0x02 }, @@ -242,4 +291,6 @@ void TestSettings::testFlagDesc() // Enabled: tables s.set("test_flags", "16"); UASSERT(s.getFlagStr("test_flags", flagdesc, nullptr) == 0x10); + + delete &s; } From 2760371d8e43327e94d1b4ecb79fbcb56278db90 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 29 Nov 2020 17:56:25 +0100 Subject: [PATCH 366/624] Settings: Purge getDefault, clean FontEngine --- src/client/clientlauncher.cpp | 2 +- src/client/fontengine.cpp | 65 +++++++++++++++---------------- src/client/fontengine.h | 8 +--- src/main.cpp | 1 - src/script/scripting_mainmenu.cpp | 1 - src/settings.cpp | 18 ++------- src/settings.h | 1 - src/unittest/test_settings.cpp | 2 +- 8 files changed, 38 insertions(+), 60 deletions(-) diff --git a/src/client/clientlauncher.cpp b/src/client/clientlauncher.cpp index 7245f29f0..2bb0bc385 100644 --- a/src/client/clientlauncher.cpp +++ b/src/client/clientlauncher.cpp @@ -175,7 +175,7 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) } } #endif - g_fontengine = new FontEngine(g_settings, guienv); + g_fontengine = new FontEngine(guienv); FATAL_ERROR_IF(g_fontengine == NULL, "Font engine creation failed."); #if (IRRLICHT_VERSION_MAJOR >= 1 && IRRLICHT_VERSION_MINOR >= 8) || IRRLICHT_VERSION_MAJOR >= 2 diff --git a/src/client/fontengine.cpp b/src/client/fontengine.cpp index a55420846..47218c0d9 100644 --- a/src/client/fontengine.cpp +++ b/src/client/fontengine.cpp @@ -42,8 +42,7 @@ static void font_setting_changed(const std::string &name, void *userdata) } /******************************************************************************/ -FontEngine::FontEngine(Settings* main_settings, gui::IGUIEnvironment* env) : - m_settings(main_settings), +FontEngine::FontEngine(gui::IGUIEnvironment* env) : m_env(env) { @@ -51,34 +50,34 @@ FontEngine::FontEngine(Settings* main_settings, gui::IGUIEnvironment* env) : i = (FontMode) FONT_SIZE_UNSPECIFIED; } - assert(m_settings != NULL); // pre-condition + assert(g_settings != NULL); // pre-condition assert(m_env != NULL); // pre-condition assert(m_env->getSkin() != NULL); // pre-condition readSettings(); if (m_currentMode == FM_Standard) { - m_settings->registerChangedCallback("font_size", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_bold", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_italic", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_size", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_bold", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_italic", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL); } else if (m_currentMode == FM_Fallback) { - m_settings->registerChangedCallback("fallback_font_size", font_setting_changed, NULL); - m_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL); - m_settings->registerChangedCallback("fallback_font_shadow", font_setting_changed, NULL); - m_settings->registerChangedCallback("fallback_font_shadow_alpha", font_setting_changed, NULL); + g_settings->registerChangedCallback("fallback_font_size", font_setting_changed, NULL); + g_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL); + g_settings->registerChangedCallback("fallback_font_shadow", font_setting_changed, NULL); + g_settings->registerChangedCallback("fallback_font_shadow_alpha", font_setting_changed, NULL); } - m_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL); - m_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL); - m_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL); - m_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL); + g_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL); + g_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL); + g_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL); + g_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL); } /******************************************************************************/ @@ -205,9 +204,9 @@ unsigned int FontEngine::getFontSize(FontMode mode) void FontEngine::readSettings() { if (USE_FREETYPE && g_settings->getBool("freetype")) { - m_default_size[FM_Standard] = m_settings->getU16("font_size"); - m_default_size[FM_Fallback] = m_settings->getU16("fallback_font_size"); - m_default_size[FM_Mono] = m_settings->getU16("mono_font_size"); + m_default_size[FM_Standard] = g_settings->getU16("font_size"); + m_default_size[FM_Fallback] = g_settings->getU16("fallback_font_size"); + m_default_size[FM_Mono] = g_settings->getU16("mono_font_size"); /*~ DO NOT TRANSLATE THIS LITERALLY! This is a special string. Put either "no" or "yes" @@ -220,15 +219,15 @@ void FontEngine::readSettings() m_currentMode = is_yes(gettext("needs_fallback_font")) ? FM_Fallback : FM_Standard; - m_default_bold = m_settings->getBool("font_bold"); - m_default_italic = m_settings->getBool("font_italic"); + m_default_bold = g_settings->getBool("font_bold"); + m_default_italic = g_settings->getBool("font_italic"); } else { m_currentMode = FM_Simple; } - m_default_size[FM_Simple] = m_settings->getU16("font_size"); - m_default_size[FM_SimpleMono] = m_settings->getU16("mono_font_size"); + m_default_size[FM_Simple] = g_settings->getU16("font_size"); + m_default_size[FM_SimpleMono] = g_settings->getU16("mono_font_size"); cleanCache(); updateFontCache(); @@ -244,7 +243,7 @@ void FontEngine::updateSkin() m_env->getSkin()->setFont(font); else errorstream << "FontEngine: Default font file: " << - "\n\t\"" << m_settings->get("font_path") << "\"" << + "\n\t\"" << g_settings->get("font_path") << "\"" << "\n\trequired for current screen configuration was not found" << " or was invalid file format." << "\n\tUsing irrlicht default font." << std::endl; @@ -292,7 +291,7 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec) setting_suffix.append("_italic"); u32 size = std::floor(RenderingEngine::getDisplayDensity() * - m_settings->getFloat("gui_scaling") * spec.size); + g_settings->getFloat("gui_scaling") * spec.size); if (size == 0) { errorstream << "FontEngine: attempt to use font size 0" << std::endl; @@ -311,8 +310,8 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec) std::string fallback_settings[] = { wanted_font_path, - m_settings->get("fallback_font_path"), - m_settings->getDefault(setting_prefix + "font_path") + g_settings->get("fallback_font_path"), + Settings::getLayer(SL_DEFAULTS)->get(setting_prefix + "font_path") }; #if USE_FREETYPE @@ -346,7 +345,7 @@ gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec) assert(spec.mode == FM_Simple || spec.mode == FM_SimpleMono); assert(spec.size != FONT_SIZE_UNSPECIFIED); - const std::string &font_path = m_settings->get( + const std::string &font_path = g_settings->get( (spec.mode == FM_SimpleMono) ? "mono_font_path" : "font_path"); size_t pos_dot = font_path.find_last_of('.'); @@ -364,7 +363,7 @@ gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec) u32 size = std::floor( RenderingEngine::getDisplayDensity() * - m_settings->getFloat("gui_scaling") * + g_settings->getFloat("gui_scaling") * spec.size); irr::gui::IGUIFont *font = nullptr; diff --git a/src/client/fontengine.h b/src/client/fontengine.h index d62e9b8ef..e27ef60e9 100644 --- a/src/client/fontengine.h +++ b/src/client/fontengine.h @@ -62,7 +62,7 @@ class FontEngine { public: - FontEngine(Settings* main_settings, gui::IGUIEnvironment* env); + FontEngine(gui::IGUIEnvironment* env); ~FontEngine(); @@ -128,9 +128,6 @@ public: /** get font size for a specific mode */ unsigned int getFontSize(FontMode mode); - /** initialize font engine */ - void initialize(Settings* main_settings, gui::IGUIEnvironment* env); - /** update internal parameters from settings */ void readSettings(); @@ -150,9 +147,6 @@ private: /** clean cache */ void cleanCache(); - /** pointer to settings for registering callbacks or reading config */ - Settings* m_settings = nullptr; - /** pointer to irrlicht gui environment */ gui::IGUIEnvironment* m_env = nullptr; diff --git a/src/main.cpp b/src/main.cpp index 57768dbb2..39b441d2c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -527,7 +527,6 @@ static bool read_config_file(const Settings &cmd_args) // Path of configuration file in use sanity_check(g_settings_path == ""); // Sanity check - if (cmd_args.exists("config")) { bool r = g_settings->readConfigFile(cmd_args.get("config").c_str()); if (!r) { diff --git a/src/script/scripting_mainmenu.cpp b/src/script/scripting_mainmenu.cpp index 9b377366e..b102a66a1 100644 --- a/src/script/scripting_mainmenu.cpp +++ b/src/script/scripting_mainmenu.cpp @@ -31,7 +31,6 @@ with this program; if not, write to the Free Software Foundation, Inc., extern "C" { #include "lualib.h" } -#include "settings.h" #define MAINMENU_NUM_ASYNC_THREADS 4 diff --git a/src/settings.cpp b/src/settings.cpp index cf2a16aa6..3415ff818 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -33,7 +33,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include -Settings *g_settings = nullptr; +Settings *g_settings = nullptr; // Populated in main() std::string g_settings_path; Settings *Settings::s_layers[SL_TOTAL_COUNT] = {0}; // Zeroed by compiler @@ -85,6 +85,7 @@ Settings & Settings::operator = (const Settings &other) if (&other == this) return *this; + // TODO: Avoid copying Settings objects. Make this private. FATAL_ERROR_IF(m_settingslayer != SL_TOTAL_COUNT && other.m_settingslayer != SL_TOTAL_COUNT, ("Tried to copy unique Setting layer " + std::to_string(m_settingslayer)).c_str()); @@ -208,6 +209,7 @@ void Settings::writeLines(std::ostream &os, u32 tab_depth) const for (const auto &setting_it : m_settings) printEntry(os, setting_it.first, setting_it.second, tab_depth); + // For groups this must be "}" ! if (!m_end_tag.empty()) { for (u32 i = 0; i < tab_depth; i++) os << "\t"; @@ -458,20 +460,6 @@ const std::string &Settings::get(const std::string &name) const } -const std::string &Settings::getDefault(const std::string &name) const -{ - const SettingsEntry *entry; - if (auto parent = getParent()) - entry = &parent->getEntry(name); - else - entry = &getEntry(name); // Bottom of the chain - - if (entry->is_group) - throw SettingNotFoundException("Setting [" + name + "] is a group."); - return entry->value; -} - - bool Settings::getBool(const std::string &name) const { return is_yes(get(name)); diff --git a/src/settings.h b/src/settings.h index af4cae3cd..b5e859ee0 100644 --- a/src/settings.h +++ b/src/settings.h @@ -132,7 +132,6 @@ public: Settings *getGroup(const std::string &name) const; const std::string &get(const std::string &name) const; - const std::string &getDefault(const std::string &name) const; bool getBool(const std::string &name) const; u16 getU16(const std::string &name) const; s16 getS16(const std::string &name) const; diff --git a/src/unittest/test_settings.cpp b/src/unittest/test_settings.cpp index d2d35c357..6b493c9e4 100644 --- a/src/unittest/test_settings.cpp +++ b/src/unittest/test_settings.cpp @@ -229,7 +229,7 @@ void TestSettings::testAllSettings() // Confirm settings Settings s2("[dummy_eof_end_tag]"); std::istringstream is(config_text_after, std::ios_base::binary); - s2.parseConfigLines(is); + UASSERT(s2.parseConfigLines(is) == true); compare_settings("(main)", &s, &s2); } From e6e5910cb432f0fb25a8af3dc6cb9950fd9a05f5 Mon Sep 17 00:00:00 2001 From: Graham Northup Date: Fri, 29 Jan 2021 11:34:00 -0500 Subject: [PATCH 367/624] Clarify key_value_swap's edge case (#10799) In compiler design especially, leaving behavior as "undefined" is a _strong_ condition that basically states that all possible integrity is violated; it's the kind of thing that happens when, say, dereferencing a pointer with unknown provenance, and most typically leads to a crash, but can result in all sorts of spectacular errors--thus, "it is undefined" how your program will melt down. The pure-Lua implementation of `key_value_swap` does not permit UB _per se_ (assuming the implementation of Lua itself is sound), but does deterministically choose the value to which a key is mapped (the last in visitation order wins--since visitation order is arbitrary, _some_ value _will_ be chosen). Most importantly, the program won't do something wildly unexpected. --- doc/lua_api.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 12ea85345..cfc150edc 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -3275,7 +3275,8 @@ Helper functions * Appends all values in `other_table` to `table` - uses `#table + 1` to find new indices. * `table.key_value_swap(t)`: returns a table with keys and values swapped - * If multiple keys in `t` map to the same value, the result is undefined. + * If multiple keys in `t` map to the same value, it is unspecified which + value maps to that key. * `table.shuffle(table, [from], [to], [random_func])`: * Shuffles elements `from` to `to` in `table` in place * `from` defaults to `1` From edd8c3c664ad005eb32e1968ce80091851ffb817 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 16 Jan 2021 22:16:04 +0100 Subject: [PATCH 368/624] Drop never documented 'alpha' property from nodedef Includes minimal support code for practical reasons. We'll need it for a slightly different purpose next commit. --- builtin/game/item.lua | 1 - games/devtest/mods/testnodes/textures.lua | 15 ++++----------- src/nodedef.cpp | 20 -------------------- src/nodedef.h | 9 --------- src/script/common/c_content.cpp | 5 ++++- 5 files changed, 8 insertions(+), 42 deletions(-) diff --git a/builtin/game/item.lua b/builtin/game/item.lua index 0df25b455..63f8d50e5 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -715,7 +715,6 @@ core.nodedef_default = { -- {name="", backface_culling=true}, -- {name="", backface_culling=true}, --}, - alpha = 255, post_effect_color = {a=0, r=0, g=0, b=0}, paramtype = "none", paramtype2 = "none", diff --git a/games/devtest/mods/testnodes/textures.lua b/games/devtest/mods/testnodes/textures.lua index e0724c229..af3b7f468 100644 --- a/games/devtest/mods/testnodes/textures.lua +++ b/games/devtest/mods/testnodes/textures.lua @@ -51,23 +51,16 @@ for a=1,#alphas do groups = { dig_immediate = 3 }, }) - -- Transparency set via "alpha" parameter + -- Transparency set via texture modifier minetest.register_node("testnodes:alpha_"..alpha, { description = S("Alpha Test Node (@1)", alpha), - -- It seems that only the liquid drawtype supports the alpha parameter - drawtype = "liquid", + drawtype = "glasslike", paramtype = "light", tiles = { - "testnodes_alpha.png", + "testnodes_alpha.png^[opacity:" .. alpha, }, - alpha = alpha, + use_texture_alpha = true, - - liquidtype = "source", - liquid_range = 0, - liquid_viscosity = 0, - liquid_alternative_source = "testnodes:alpha_"..alpha, - liquid_alternative_flowing = "testnodes:alpha_"..alpha, groups = { dig_immediate = 3 }, }) end diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 1740b010a..b2cfd1f87 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -491,21 +491,6 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const writeU8(os, leveled_max); } -void ContentFeatures::correctAlpha(TileDef *tiles, int length) -{ - // alpha == 0 means that the node is using texture alpha - if (alpha == 0 || alpha == 255) - return; - - for (int i = 0; i < length; i++) { - if (tiles[i].name.empty()) - continue; - std::stringstream s; - s << tiles[i].name << "^[noalpha^[opacity:" << ((int)alpha); - tiles[i].name = s.str(); - } -} - void ContentFeatures::deSerialize(std::istream &is) { // version detection @@ -874,11 +859,6 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc } if (is_liquid) { - // Vertex alpha is no longer supported, correct if necessary. - correctAlpha(tdef, 6); - correctAlpha(tdef_overlay, 6); - correctAlpha(tdef_spec, CF_SPECIAL_COUNT); - if (waving == 3) { material_type = (alpha == 255) ? TILE_MATERIAL_WAVING_LIQUID_OPAQUE : TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT; diff --git a/src/nodedef.h b/src/nodedef.h index 66c21cc07..63b9474b9 100644 --- a/src/nodedef.h +++ b/src/nodedef.h @@ -418,15 +418,6 @@ struct ContentFeatures void serialize(std::ostream &os, u16 protocol_version) const; void deSerialize(std::istream &is); - /*! - * Since vertex alpha is no longer supported, this method - * adds opacity directly to the texture pixels. - * - * \param tiles array of the tile definitions. - * \param length length of tiles - */ - void correctAlpha(TileDef *tiles, int length); - #ifndef SERVER /* * Checks if any tile texture has any transparent pixels. diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 4316f412d..5d29422af 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -618,7 +618,10 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) } lua_pop(L, 1); - f.alpha = getintfield_default(L, index, "alpha", 255); + warn_if_field_exists(L, index, "alpha", + "Obsolete, only limited compatibility provided"); + if (getintfield_default(L, index, "alpha", 255) != 255) + f.alpha = 0; bool usealpha = getboolfield_default(L, index, "use_texture_alpha", false); From 83229921e5f378625d9ef63ede3dffbe778e1798 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 17 Jan 2021 01:56:50 +0100 Subject: [PATCH 369/624] Rework use_texture_alpha to provide three opaque/clip/blend modes The change that turns nodeboxes and meshes opaque when possible is kept, as is the compatibility code that warns modders to adjust their nodedefs. --- builtin/game/features.lua | 1 + doc/lua_api.txt | 18 ++++-- src/nodedef.cpp | 110 +++++++++++++++++++++----------- src/nodedef.h | 56 ++++++++++++---- src/script/common/c_content.cpp | 32 +++++++--- src/script/cpp_api/s_node.cpp | 8 +++ src/script/cpp_api/s_node.h | 1 + src/unittest/test.cpp | 4 +- 8 files changed, 164 insertions(+), 66 deletions(-) diff --git a/builtin/game/features.lua b/builtin/game/features.lua index 4d3c90ff0..36ff1f0b0 100644 --- a/builtin/game/features.lua +++ b/builtin/game/features.lua @@ -18,6 +18,7 @@ core.features = { pathfinder_works = true, object_step_has_moveresult = true, direct_velocity_on_players = true, + use_texture_alpha_string_modes = true, } function core.has_feature(arg) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index cfc150edc..8156f785a 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -4386,6 +4386,8 @@ Utilities object_step_has_moveresult = true, -- Whether get_velocity() and add_velocity() can be used on players (5.4.0) direct_velocity_on_players = true, + -- nodedef's use_texture_alpha accepts new string modes (5.4.0) + use_texture_alpha_string_modes = true, } * `minetest.has_feature(arg)`: returns `boolean, missing_features` @@ -7340,10 +7342,18 @@ Used by `minetest.register_node`. -- If the node has a palette, then this setting only has an effect in -- the inventory and on the wield item. - use_texture_alpha = false, - -- Use texture's alpha channel - -- If this is set to false, the node will be rendered fully opaque - -- regardless of any texture transparency. + use_texture_alpha = ..., + -- Specifies how the texture's alpha channel will be used for rendering. + -- possible values: + -- * "opaque": Node is rendered opaque regardless of alpha channel + -- * "clip": A given pixel is either fully see-through or opaque + -- depending on the alpha channel being below/above 50% in value + -- * "blend": The alpha channel specifies how transparent a given pixel + -- of the rendered node is + -- The default is "opaque" for drawtypes normal, liquid and flowingliquid; + -- "clip" otherwise. + -- If set to a boolean value (deprecated): true either sets it to blend + -- or clip, false sets it to clip or opaque mode depending on the drawtype. palette = "palette.png", -- The node's `param2` is used to select a pixel from the image. diff --git a/src/nodedef.cpp b/src/nodedef.cpp index b2cfd1f87..57d4c008f 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -360,7 +360,7 @@ void ContentFeatures::reset() i = TileDef(); for (auto &j : tiledef_special) j = TileDef(); - alpha = 255; + alpha = ALPHAMODE_OPAQUE; post_effect_color = video::SColor(0, 0, 0, 0); param_type = CPT_NONE; param_type_2 = CPT2_NONE; @@ -405,6 +405,31 @@ void ContentFeatures::reset() node_dig_prediction = "air"; } +void ContentFeatures::setAlphaFromLegacy(u8 legacy_alpha) +{ + // No special handling for nodebox/mesh here as it doesn't make sense to + // throw warnings when the server is too old to support the "correct" way + switch (drawtype) { + case NDT_NORMAL: + alpha = legacy_alpha == 255 ? ALPHAMODE_OPAQUE : ALPHAMODE_CLIP; + break; + case NDT_LIQUID: + case NDT_FLOWINGLIQUID: + alpha = legacy_alpha == 255 ? ALPHAMODE_OPAQUE : ALPHAMODE_BLEND; + break; + default: + alpha = legacy_alpha == 255 ? ALPHAMODE_CLIP : ALPHAMODE_BLEND; + break; + } +} + +u8 ContentFeatures::getAlphaForLegacy() const +{ + // This is so simple only because 255 and 0 mean wildly different things + // depending on drawtype... + return alpha == ALPHAMODE_OPAQUE ? 255 : 0; +} + void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const { const u8 version = CONTENTFEATURES_VERSION; @@ -433,7 +458,7 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const for (const TileDef &td : tiledef_special) { td.serialize(os, protocol_version); } - writeU8(os, alpha); + writeU8(os, getAlphaForLegacy()); writeU8(os, color.getRed()); writeU8(os, color.getGreen()); writeU8(os, color.getBlue()); @@ -489,6 +514,7 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const os << serializeString16(node_dig_prediction); writeU8(os, leveled_max); + writeU8(os, alpha); } void ContentFeatures::deSerialize(std::istream &is) @@ -524,7 +550,7 @@ void ContentFeatures::deSerialize(std::istream &is) throw SerializationError("unsupported CF_SPECIAL_COUNT"); for (TileDef &td : tiledef_special) td.deSerialize(is, version, drawtype); - alpha = readU8(is); + setAlphaFromLegacy(readU8(is)); color.setRed(readU8(is)); color.setGreen(readU8(is)); color.setBlue(readU8(is)); @@ -582,10 +608,16 @@ void ContentFeatures::deSerialize(std::istream &is) try { node_dig_prediction = deSerializeString16(is); - u8 tmp_leveled_max = readU8(is); + + u8 tmp = readU8(is); if (is.eof()) /* readU8 doesn't throw exceptions so we have to do this */ throw SerializationError(""); - leveled_max = tmp_leveled_max; + leveled_max = tmp; + + tmp = readU8(is); + if (is.eof()) + throw SerializationError(""); + alpha = static_cast(tmp); } catch(SerializationError &e) {}; } @@ -677,6 +709,7 @@ bool ContentFeatures::textureAlphaCheck(ITextureSource *tsrc, const TileDef *til video::IVideoDriver *driver = RenderingEngine::get_video_driver(); static thread_local bool long_warning_printed = false; std::set seen; + for (int i = 0; i < length; i++) { if (seen.find(tiles[i].name) != seen.end()) continue; @@ -701,20 +734,21 @@ bool ContentFeatures::textureAlphaCheck(ITextureSource *tsrc, const TileDef *til break_loop: image->drop(); - if (!ok) { - warningstream << "Texture \"" << tiles[i].name << "\" of " - << name << " has transparent pixels, assuming " - "use_texture_alpha = true." << std::endl; - if (!long_warning_printed) { - warningstream << " This warning can be a false-positive if " - "unused pixels in the texture are transparent. However if " - "it is meant to be transparent, you *MUST* update the " - "nodedef and set use_texture_alpha = true! This compatibility " - "code will be removed in a few releases." << std::endl; - long_warning_printed = true; - } - return true; + if (ok) + continue; + warningstream << "Texture \"" << tiles[i].name << "\" of " + << name << " has transparency, assuming " + "use_texture_alpha = \"clip\"." << std::endl; + if (!long_warning_printed) { + warningstream << " This warning can be a false-positive if " + "unused pixels in the texture are transparent. However if " + "it is meant to be transparent, you *MUST* update the " + "nodedef and set use_texture_alpha = \"clip\"! This " + "compatibility code will be removed in a few releases." + << std::endl; + long_warning_printed = true; } + return true; } return false; } @@ -759,14 +793,18 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc bool is_liquid = false; - MaterialType material_type = (alpha == 255) ? - TILE_MATERIAL_BASIC : TILE_MATERIAL_ALPHA; + if (alpha == ALPHAMODE_LEGACY_COMPAT) { + // Before working with the alpha mode, resolve any legacy kludges + alpha = textureAlphaCheck(tsrc, tdef, 6) ? ALPHAMODE_CLIP : ALPHAMODE_OPAQUE; + } + + MaterialType material_type = alpha == ALPHAMODE_OPAQUE ? + TILE_MATERIAL_OPAQUE : (alpha == ALPHAMODE_CLIP ? TILE_MATERIAL_BASIC : + TILE_MATERIAL_ALPHA); switch (drawtype) { default: case NDT_NORMAL: - material_type = (alpha == 255) ? - TILE_MATERIAL_OPAQUE : TILE_MATERIAL_ALPHA; solidness = 2; break; case NDT_AIRLIKE: @@ -774,14 +812,14 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc break; case NDT_LIQUID: if (tsettings.opaque_water) - alpha = 255; + alpha = ALPHAMODE_OPAQUE; solidness = 1; is_liquid = true; break; case NDT_FLOWINGLIQUID: solidness = 0; if (tsettings.opaque_water) - alpha = 255; + alpha = ALPHAMODE_OPAQUE; is_liquid = true; break; case NDT_GLASSLIKE: @@ -833,19 +871,16 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc break; case NDT_MESH: case NDT_NODEBOX: - if (alpha == 255 && textureAlphaCheck(tsrc, tdef, 6)) - alpha = 0; - solidness = 0; - if (waving == 1) + if (waving == 1) { material_type = TILE_MATERIAL_WAVING_PLANTS; - else if (waving == 2) + } else if (waving == 2) { material_type = TILE_MATERIAL_WAVING_LEAVES; - else if (waving == 3) - material_type = (alpha == 255) ? TILE_MATERIAL_WAVING_LIQUID_OPAQUE : - TILE_MATERIAL_WAVING_LIQUID_BASIC; - else if (alpha == 255) - material_type = TILE_MATERIAL_OPAQUE; + } else if (waving == 3) { + material_type = alpha == ALPHAMODE_OPAQUE ? + TILE_MATERIAL_WAVING_LIQUID_OPAQUE : (alpha == ALPHAMODE_CLIP ? + TILE_MATERIAL_WAVING_LIQUID_BASIC : TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT); + } break; case NDT_TORCHLIKE: case NDT_SIGNLIKE: @@ -860,10 +895,11 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc if (is_liquid) { if (waving == 3) { - material_type = (alpha == 255) ? TILE_MATERIAL_WAVING_LIQUID_OPAQUE : - TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT; + material_type = alpha == ALPHAMODE_OPAQUE ? + TILE_MATERIAL_WAVING_LIQUID_OPAQUE : (alpha == ALPHAMODE_CLIP ? + TILE_MATERIAL_WAVING_LIQUID_BASIC : TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT); } else { - material_type = (alpha == 255) ? TILE_MATERIAL_LIQUID_OPAQUE : + material_type = alpha == ALPHAMODE_OPAQUE ? TILE_MATERIAL_LIQUID_OPAQUE : TILE_MATERIAL_LIQUID_TRANSPARENT; } } diff --git a/src/nodedef.h b/src/nodedef.h index 63b9474b9..6fc20518d 100644 --- a/src/nodedef.h +++ b/src/nodedef.h @@ -231,6 +231,14 @@ enum AlignStyle : u8 { ALIGN_STYLE_USER_DEFINED, }; +enum AlphaMode : u8 { + ALPHAMODE_BLEND, + ALPHAMODE_CLIP, + ALPHAMODE_OPAQUE, + ALPHAMODE_LEGACY_COMPAT, /* means either opaque or clip */ +}; + + /* Stand-alone definition of a TileSpec (basically a server-side TileSpec) */ @@ -315,9 +323,7 @@ struct ContentFeatures // These will be drawn over the base tiles. TileDef tiledef_overlay[6]; TileDef tiledef_special[CF_SPECIAL_COUNT]; // eg. flowing liquid - // If 255, the node is opaque. - // Otherwise it uses texture alpha. - u8 alpha; + AlphaMode alpha; // The color of the node. video::SColor color; std::string palette_name; @@ -418,20 +424,27 @@ struct ContentFeatures void serialize(std::ostream &os, u16 protocol_version) const; void deSerialize(std::istream &is); -#ifndef SERVER - /* - * Checks if any tile texture has any transparent pixels. - * Prints a warning and returns true if that is the case, false otherwise. - * This is supposed to be used for use_texture_alpha backwards compatibility. - */ - bool textureAlphaCheck(ITextureSource *tsrc, const TileDef *tiles, - int length); -#endif - - /* Some handy methods */ + void setDefaultAlphaMode() + { + switch (drawtype) { + case NDT_NORMAL: + case NDT_LIQUID: + case NDT_FLOWINGLIQUID: + alpha = ALPHAMODE_OPAQUE; + break; + case NDT_NODEBOX: + case NDT_MESH: + alpha = ALPHAMODE_LEGACY_COMPAT; // this should eventually be OPAQUE + break; + default: + alpha = ALPHAMODE_CLIP; + break; + } + } + bool needsBackfaceCulling() const { switch (drawtype) { @@ -465,6 +478,21 @@ struct ContentFeatures void updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc, scene::IMeshManipulator *meshmanip, Client *client, const TextureSettings &tsettings); #endif + +private: +#ifndef SERVER + /* + * Checks if any tile texture has any transparent pixels. + * Prints a warning and returns true if that is the case, false otherwise. + * This is supposed to be used for use_texture_alpha backwards compatibility. + */ + bool textureAlphaCheck(ITextureSource *tsrc, const TileDef *tiles, + int length); +#endif + + void setAlphaFromLegacy(u8 legacy_alpha); + + u8 getAlphaForLegacy() const; }; /*! diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 5d29422af..ecab7baa1 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -618,25 +618,39 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) } lua_pop(L, 1); + /* alpha & use_texture_alpha */ + // This is a bit complicated due to compatibility + + f.setDefaultAlphaMode(); + warn_if_field_exists(L, index, "alpha", - "Obsolete, only limited compatibility provided"); + "Obsolete, only limited compatibility provided; " + "replaced by \"use_texture_alpha\""); if (getintfield_default(L, index, "alpha", 255) != 255) - f.alpha = 0; + f.alpha = ALPHAMODE_BLEND; - bool usealpha = getboolfield_default(L, index, - "use_texture_alpha", false); - if (usealpha) - f.alpha = 0; + lua_getfield(L, index, "use_texture_alpha"); + if (lua_isboolean(L, -1)) { + warn_if_field_exists(L, index, "use_texture_alpha", + "Boolean values are deprecated; use the new choices"); + if (lua_toboolean(L, -1)) + f.alpha = (f.drawtype == NDT_NORMAL) ? ALPHAMODE_CLIP : ALPHAMODE_BLEND; + } else if (check_field_or_nil(L, -1, LUA_TSTRING, "use_texture_alpha")) { + int result = f.alpha; + string_to_enum(ScriptApiNode::es_TextureAlphaMode, result, + std::string(lua_tostring(L, -1))); + f.alpha = static_cast(result); + } + lua_pop(L, 1); + + /* Other stuff */ - // Read node color. lua_getfield(L, index, "color"); read_color(L, -1, &f.color); lua_pop(L, 1); getstringfield(L, index, "palette", f.palette_name); - /* Other stuff */ - lua_getfield(L, index, "post_effect_color"); read_color(L, -1, &f.post_effect_color); lua_pop(L, 1); diff --git a/src/script/cpp_api/s_node.cpp b/src/script/cpp_api/s_node.cpp index e0f9bcd78..269ebacb2 100644 --- a/src/script/cpp_api/s_node.cpp +++ b/src/script/cpp_api/s_node.cpp @@ -93,6 +93,14 @@ struct EnumString ScriptApiNode::es_NodeBoxType[] = {0, NULL}, }; +struct EnumString ScriptApiNode::es_TextureAlphaMode[] = + { + {ALPHAMODE_OPAQUE, "opaque"}, + {ALPHAMODE_CLIP, "clip"}, + {ALPHAMODE_BLEND, "blend"}, + {0, NULL}, + }; + bool ScriptApiNode::node_on_punch(v3s16 p, MapNode node, ServerActiveObject *puncher, const PointedThing &pointed) { diff --git a/src/script/cpp_api/s_node.h b/src/script/cpp_api/s_node.h index 81b44f0f0..3f771c838 100644 --- a/src/script/cpp_api/s_node.h +++ b/src/script/cpp_api/s_node.h @@ -54,4 +54,5 @@ public: static struct EnumString es_ContentParamType2[]; static struct EnumString es_LiquidType[]; static struct EnumString es_NodeBoxType[]; + static struct EnumString es_TextureAlphaMode[]; }; diff --git a/src/unittest/test.cpp b/src/unittest/test.cpp index a783ccd32..af324e1b1 100644 --- a/src/unittest/test.cpp +++ b/src/unittest/test.cpp @@ -180,7 +180,7 @@ void TestGameDef::defineSomeNodes() "{default_water.png"; f = ContentFeatures(); f.name = itemdef.name; - f.alpha = 128; + f.alpha = ALPHAMODE_BLEND; f.liquid_type = LIQUID_SOURCE; f.liquid_viscosity = 4; f.is_ground_content = true; @@ -201,7 +201,7 @@ void TestGameDef::defineSomeNodes() "{default_lava.png"; f = ContentFeatures(); f.name = itemdef.name; - f.alpha = 128; + f.alpha = ALPHAMODE_OPAQUE; f.liquid_type = LIQUID_SOURCE; f.liquid_viscosity = 7; f.light_source = LIGHT_MAX-1; From 5c005ad081a23a1c048ef2c1066f60e0e041c956 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 17 Jan 2021 02:25:33 +0100 Subject: [PATCH 370/624] devtest: Fix deprecated alpha usage --- games/devtest/mods/basenodes/init.lua | 36 ++++++++++++--------- games/devtest/mods/soundstuff/init.lua | 11 ++++--- games/devtest/mods/testnodes/drawtypes.lua | 8 ++--- games/devtest/mods/testnodes/liquids.lua | 8 ++--- games/devtest/mods/testnodes/properties.lua | 4 +-- games/devtest/mods/testnodes/textures.lua | 4 +-- 6 files changed, 38 insertions(+), 33 deletions(-) diff --git a/games/devtest/mods/basenodes/init.lua b/games/devtest/mods/basenodes/init.lua index 0cb85d808..2c808c35e 100644 --- a/games/devtest/mods/basenodes/init.lua +++ b/games/devtest/mods/basenodes/init.lua @@ -1,4 +1,4 @@ -local WATER_ALPHA = 160 +local WATER_ALPHA = "^[opacity:" .. 160 local WATER_VISC = 1 local LAVA_VISC = 7 @@ -128,12 +128,12 @@ minetest.register_node("basenodes:water_source", { "Drowning damage: 1", drawtype = "liquid", waving = 3, - tiles = {"default_water.png"}, + tiles = {"default_water.png"..WATER_ALPHA}, special_tiles = { - {name = "default_water.png", backface_culling = false}, - {name = "default_water.png", backface_culling = true}, + {name = "default_water.png"..WATER_ALPHA, backface_culling = false}, + {name = "default_water.png"..WATER_ALPHA, backface_culling = true}, }, - alpha = WATER_ALPHA, + use_texture_alpha = "blend", paramtype = "light", walkable = false, pointable = false, @@ -156,10 +156,12 @@ minetest.register_node("basenodes:water_flowing", { waving = 3, tiles = {"default_water_flowing.png"}, special_tiles = { - {name = "default_water_flowing.png", backface_culling = false}, - {name = "default_water_flowing.png", backface_culling = false}, + {name = "default_water_flowing.png"..WATER_ALPHA, + backface_culling = false}, + {name = "default_water_flowing.png"..WATER_ALPHA, + backface_culling = false}, }, - alpha = WATER_ALPHA, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", walkable = false, @@ -181,12 +183,12 @@ minetest.register_node("basenodes:river_water_source", { "Drowning damage: 1", drawtype = "liquid", waving = 3, - tiles = { "default_river_water.png" }, + tiles = { "default_river_water.png"..WATER_ALPHA }, special_tiles = { - {name = "default_river_water.png", backface_culling = false}, - {name = "default_river_water.png", backface_culling = true}, + {name = "default_river_water.png"..WATER_ALPHA, backface_culling = false}, + {name = "default_river_water.png"..WATER_ALPHA, backface_culling = true}, }, - alpha = WATER_ALPHA, + use_texture_alpha = "blend", paramtype = "light", walkable = false, pointable = false, @@ -209,12 +211,14 @@ minetest.register_node("basenodes:river_water_flowing", { "Drowning damage: 1", drawtype = "flowingliquid", waving = 3, - tiles = {"default_river_water_flowing.png"}, + tiles = {"default_river_water_flowing.png"..WATER_ALPHA}, special_tiles = { - {name = "default_river_water_flowing.png", backface_culling = false}, - {name = "default_river_water_flowing.png", backface_culling = false}, + {name = "default_river_water_flowing.png"..WATER_ALPHA, + backface_culling = false}, + {name = "default_river_water_flowing.png"..WATER_ALPHA, + backface_culling = false}, }, - alpha = WATER_ALPHA, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", walkable = false, diff --git a/games/devtest/mods/soundstuff/init.lua b/games/devtest/mods/soundstuff/init.lua index 40ad8f562..b263a3f35 100644 --- a/games/devtest/mods/soundstuff/init.lua +++ b/games/devtest/mods/soundstuff/init.lua @@ -60,11 +60,13 @@ minetest.register_node("soundstuff:footstep_liquid", { description = "Liquid Footstep Sound Node", drawtype = "liquid", tiles = { - "soundstuff_node_sound.png^[colorize:#0000FF:127", + "soundstuff_node_sound.png^[colorize:#0000FF:127^[opacity:190", }, special_tiles = { - {name = "soundstuff_node_sound.png^[colorize:#0000FF:127", backface_culling = false}, - {name = "soundstuff_node_sound.png^[colorize:#0000FF:127", backface_culling = true}, + {name = "soundstuff_node_sound.png^[colorize:#0000FF:127^[opacity:190", + backface_culling = false}, + {name = "soundstuff_node_sound.png^[colorize:#0000FF:127^[opacity:190", + backface_culling = true}, }, liquids_pointable = true, liquidtype = "source", @@ -73,7 +75,7 @@ minetest.register_node("soundstuff:footstep_liquid", { liquid_renewable = false, liquid_range = 0, liquid_viscosity = 0, - alpha = 190, + use_texture_alpha = "blend", paramtype = "light", walkable = false, pointable = false, @@ -92,7 +94,6 @@ minetest.register_node("soundstuff:footstep_climbable", { tiles = { "soundstuff_node_climbable.png", }, - alpha = 120, paramtype = "light", sunlight_propagates = true, walkable = false, diff --git a/games/devtest/mods/testnodes/drawtypes.lua b/games/devtest/mods/testnodes/drawtypes.lua index d71c3a121..ff970144d 100644 --- a/games/devtest/mods/testnodes/drawtypes.lua +++ b/games/devtest/mods/testnodes/drawtypes.lua @@ -364,7 +364,7 @@ for r = 0, 8 do {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false}, {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=true}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", walkable = false, @@ -386,7 +386,7 @@ for r = 0, 8 do {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false}, {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", walkable = false, @@ -411,7 +411,7 @@ minetest.register_node("testnodes:liquid_waving", { {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=false}, {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=true}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", waving = 3, @@ -434,7 +434,7 @@ minetest.register_node("testnodes:liquid_flowing_waving", { {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false}, {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", waving = 3, diff --git a/games/devtest/mods/testnodes/liquids.lua b/games/devtest/mods/testnodes/liquids.lua index abef9e0b7..3d2ea17f5 100644 --- a/games/devtest/mods/testnodes/liquids.lua +++ b/games/devtest/mods/testnodes/liquids.lua @@ -9,7 +9,7 @@ for d=0, 8 do {name = "testnodes_liquidsource_r"..d..".png", backface_culling = false}, {name = "testnodes_liquidsource_r"..d..".png", backface_culling = true}, }, - alpha = 192, + use_texture_alpha = "blend", paramtype = "light", walkable = false, buildable_to = true, @@ -28,7 +28,7 @@ for d=0, 8 do {name = "testnodes_liquidflowing_r"..d..".png", backface_culling = false}, {name = "testnodes_liquidflowing_r"..d..".png", backface_culling = false}, }, - alpha = 192, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", walkable = false, @@ -49,7 +49,7 @@ for d=0, 8 do {name = "testnodes_liquidsource_r"..d..".png"..mod, backface_culling = false}, {name = "testnodes_liquidsource_r"..d..".png"..mod, backface_culling = true}, }, - alpha = 192, + use_texture_alpha = "blend", paramtype = "light", walkable = false, buildable_to = true, @@ -68,7 +68,7 @@ for d=0, 8 do {name = "testnodes_liquidflowing_r"..d..".png"..mod, backface_culling = false}, {name = "testnodes_liquidflowing_r"..d..".png"..mod, backface_culling = false}, }, - alpha = 192, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", walkable = false, diff --git a/games/devtest/mods/testnodes/properties.lua b/games/devtest/mods/testnodes/properties.lua index c6331a6ed..a52cd1d6f 100644 --- a/games/devtest/mods/testnodes/properties.lua +++ b/games/devtest/mods/testnodes/properties.lua @@ -114,7 +114,7 @@ minetest.register_node("testnodes:liquid_nojump", { {name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = false}, {name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = true}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", paramtype = "light", pointable = false, liquids_pointable = true, @@ -142,7 +142,7 @@ minetest.register_node("testnodes:liquidflowing_nojump", { {name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false}, {name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", pointable = false, diff --git a/games/devtest/mods/testnodes/textures.lua b/games/devtest/mods/testnodes/textures.lua index af3b7f468..a508b6a4d 100644 --- a/games/devtest/mods/testnodes/textures.lua +++ b/games/devtest/mods/testnodes/textures.lua @@ -46,7 +46,7 @@ for a=1,#alphas do tiles = { "testnodes_alpha"..alpha..".png", }, - use_texture_alpha = true, + use_texture_alpha = "blend", groups = { dig_immediate = 3 }, }) @@ -59,7 +59,7 @@ for a=1,#alphas do tiles = { "testnodes_alpha.png^[opacity:" .. alpha, }, - use_texture_alpha = true, + use_texture_alpha = "blend", groups = { dig_immediate = 3 }, }) From 9c91cbf50c06f615449cb9ec1a5d0fbe9bc0bfa5 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 29 Jan 2021 17:35:29 +0100 Subject: [PATCH 371/624] Handle changes caused by CMake minimum version bump (#10859) fixes #10806 --- CMakeLists.txt | 2 ++ src/CMakeLists.txt | 25 +++++++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d53fcffd..2549bd25d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 3.5) +cmake_policy(SET CMP0025 OLD) + # This can be read from ${PROJECT_NAME} after project() is called project(minetest) set(PROJECT_NAME_CAPITALIZED "Minetest") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b6bba6e8d..7bcf8d6c7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -532,7 +532,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin") if(BUILD_CLIENT) add_executable(${PROJECT_NAME} ${client_SRCS} ${extra_windows_SRCS}) add_dependencies(${PROJECT_NAME} GenerateVersion) - set(client_LIBS + target_link_libraries( ${PROJECT_NAME} ${ZLIB_LIBRARIES} ${IRRLICHT_LIBRARY} @@ -548,9 +548,14 @@ if(BUILD_CLIENT) ${PLATFORM_LIBS} ${CLIENT_PLATFORM_LIBS} ) - target_link_libraries( - ${client_LIBS} - ) + if(NOT USE_LUAJIT) + set_target_properties(${PROJECT_NAME} PROPERTIES + # This is necessary for dynamic Lua modules + # to work when Lua is statically linked (issue #10806) + ENABLE_EXPORTS 1 + ) + endif() + if(ENABLE_GLES) target_link_libraries( ${PROJECT_NAME} @@ -621,7 +626,15 @@ if(BUILD_SERVER) ${PLATFORM_LIBS} ) set_target_properties(${PROJECT_NAME}server PROPERTIES - COMPILE_DEFINITIONS "SERVER") + COMPILE_DEFINITIONS "SERVER") + if(NOT USE_LUAJIT) + set_target_properties(${PROJECT_NAME}server PROPERTIES + # This is necessary for dynamic Lua modules + # to work when Lua is statically linked (issue #10806) + ENABLE_EXPORTS 1 + ) + endif() + if (USE_GETTEXT) target_link_libraries(${PROJECT_NAME}server ${GETTEXT_LIBRARY}) endif() @@ -666,7 +679,7 @@ option(APPLY_LOCALE_BLACKLIST "Use a blacklist to avoid broken locales" TRUE) if (GETTEXTLIB_FOUND AND APPLY_LOCALE_BLACKLIST) set(GETTEXT_USED_LOCALES "") foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES}) - if (NOT ";${GETTEXT_BLACKLISTED_LOCALES};" MATCHES ";${LOCALE};") + if (NOT "${LOCALE}" IN_LIST GETTEXT_BLACKLISTED_LOCALES) list(APPEND GETTEXT_USED_LOCALES ${LOCALE}) endif() endforeach() From 9a177f009b4ed8d4e9f88d36e65d8b06b2c390e6 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Fri, 29 Jan 2021 18:02:40 +0100 Subject: [PATCH 372/624] PlayerDatabaseFiles: Fix segfault while saving a player Corrects a typo introduced in 5e9dd166 --- src/database/database-files.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/database/database-files.cpp b/src/database/database-files.cpp index d9e8f24ea..d9d113b4e 100644 --- a/src/database/database-files.cpp +++ b/src/database/database-files.cpp @@ -121,9 +121,9 @@ void PlayerDatabaseFiles::serialize(RemotePlayer *p, std::ostream &os) args.setS32("version", 1); args.set("name", p->m_name); - // This should not happen PlayerSAO *sao = p->getPlayerSAO(); - assert(sao); + // This should not happen + sanity_check(sao); args.setU16("hp", sao->getHP()); args.setV3F("position", sao->getBasePosition()); args.setFloat("pitch", sao->getLookPitch()); @@ -189,7 +189,7 @@ void PlayerDatabaseFiles::savePlayer(RemotePlayer *player) // Open and serialize file std::ostringstream ss(std::ios_base::binary); - serialize(&testplayer, ss); + serialize(player, ss); if (!fs::safeWriteToFile(path, ss.str())) { infostream << "Failed to write " << path << std::endl; } From 3fa82326071d01b74b127d655578e2d17d20bfee Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 29 Jan 2021 22:43:29 +0100 Subject: [PATCH 373/624] Set UTF-8 codepage in Windows manifest (#10881) --- misc/minetest.exe.manifest | 2 ++ 1 file changed, 2 insertions(+) diff --git a/misc/minetest.exe.manifest b/misc/minetest.exe.manifest index 3c32b0f8b..dcad3fcde 100644 --- a/misc/minetest.exe.manifest +++ b/misc/minetest.exe.manifest @@ -1,5 +1,6 @@ + @@ -10,6 +11,7 @@ true + UTF-8 From 27dfe653feaef4f3a1b6b8db2c6ae240f9a00d36 Mon Sep 17 00:00:00 2001 From: daretmavi Date: Wed, 8 Jul 2020 22:28:32 +0000 Subject: [PATCH 374/624] Translated using Weblate (Slovak) Currently translated at 22.3% (302 of 1350 strings) --- po/sk/minetest.po | 1714 +++++++++++++++++++++++++++++---------------- 1 file changed, 1122 insertions(+), 592 deletions(-) diff --git a/po/sk/minetest.po b/po/sk/minetest.po index 843c924e3..405e574c9 100644 --- a/po/sk/minetest.po +++ b/po/sk/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: rubenwardy \n" +"PO-Revision-Date: 2020-07-17 08:41+0000\n" +"Last-Translator: daretmavi \n" "Language-Team: Slovak \n" "Language: sk\n" @@ -138,11 +138,11 @@ msgstr "Nájdi viac rozšírení" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Deaktivuj rozšírenie" +msgstr "Deaktivuj balíček rozšírení" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Povoľ rozšírenie" +msgstr "Aktivuj balíček rozšírení" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" @@ -466,7 +466,7 @@ msgstr "Premenuj balíček rozšírení:" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "Zablokované" +msgstr "Vypnuté" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" @@ -648,7 +648,7 @@ msgstr "Nainštalované balíčky:" #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "Prehliadaj online obsah" +msgstr "Hľadaj nový obsah na internete" #: builtin/mainmenu/tab_content.lua msgid "No package description available" @@ -680,11 +680,11 @@ msgstr "Odinštaluj balíček" #: builtin/mainmenu/tab_content.lua msgid "Content" -msgstr "Obsah" +msgstr "Doplnky" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "Uznanie" +msgstr "Poďakovanie" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" @@ -704,7 +704,7 @@ msgstr "Predchádzajúci prispievatelia" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "Inštaluj hru z ContentDB" +msgstr "Inštaluj hry z ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Configure" @@ -724,7 +724,7 @@ msgstr "Kreatívny mód" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Enable Damage" -msgstr "Povoľ poškodenie" +msgstr "Povoľ zranenie" #: builtin/mainmenu/tab_local.lua msgid "Host Server" @@ -756,296 +756,296 @@ msgstr "Port servera" #: builtin/mainmenu/tab_local.lua msgid "Play Game" -msgstr "" +msgstr "Hraj hru" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" -msgstr "" +msgstr "Nie je vytvorený ani zvolený svet!" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "" +msgstr "Spusti hru" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "" +msgstr "Adresa / Port" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" -msgstr "" +msgstr "Meno / Heslo" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Connect" -msgstr "" +msgstr "Pripojiť sa" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Del. Favorite" -msgstr "" +msgstr "Zmaž obľúbené" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Favorite" -msgstr "" +msgstr "Obľúbené" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Ping" -msgstr "" +msgstr "Ping" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative mode" -msgstr "" +msgstr "Kreatívny mód" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Damage enabled" -msgstr "" +msgstr "Poškodenie je povolené" #. ~ PvP = Player versus Player #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "PvP enabled" -msgstr "" +msgstr "PvP je povolené" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "" +msgstr "Pripoj sa do hry" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" -msgstr "" +msgstr "Nepriehľadné listy" #: builtin/mainmenu/tab_settings.lua msgid "Simple Leaves" -msgstr "" +msgstr "Jednoduché listy" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" -msgstr "" +msgstr "Ozdobné listy" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" -msgstr "" +msgstr "Obrys bloku" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "" +msgstr "Nasvietenie bloku" #: builtin/mainmenu/tab_settings.lua msgid "None" -msgstr "" +msgstr "Žiadne" #: builtin/mainmenu/tab_settings.lua msgid "No Filter" -msgstr "" +msgstr "Žiaden filter" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" -msgstr "" +msgstr "Bilineárny filter" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" -msgstr "" +msgstr "Trilineárny filter" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" -msgstr "" +msgstr "Žiadne Mipmapy" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" -msgstr "" +msgstr "Mipmapy" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" -msgstr "" +msgstr "Mipmapy + Aniso. filter" #: builtin/mainmenu/tab_settings.lua msgid "2x" -msgstr "" +msgstr "2x" #: builtin/mainmenu/tab_settings.lua msgid "4x" -msgstr "" +msgstr "4x" #: builtin/mainmenu/tab_settings.lua msgid "8x" -msgstr "" +msgstr "8x" #: builtin/mainmenu/tab_settings.lua msgid "Are you sure to reset your singleplayer world?" -msgstr "" +msgstr "Si si istý, že chceš vynulovať svoj svet jedného hráča?" #: builtin/mainmenu/tab_settings.lua msgid "Yes" -msgstr "" +msgstr "Áno" #: builtin/mainmenu/tab_settings.lua msgid "No" -msgstr "" +msgstr "Nie" #: builtin/mainmenu/tab_settings.lua msgid "Smooth Lighting" -msgstr "" +msgstr "Jemné osvetlenie" #: builtin/mainmenu/tab_settings.lua msgid "Particles" -msgstr "" +msgstr "Častice" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" -msgstr "" +msgstr "3D mraky" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Water" -msgstr "" +msgstr "Nepriehľadná voda" #: builtin/mainmenu/tab_settings.lua msgid "Connected Glass" -msgstr "" +msgstr "Prepojené sklo" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" -msgstr "" +msgstr "Textúrovanie:" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "" +msgstr "Vyhladzovanie:" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "" +msgstr "Zobrazenie:" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "" +msgstr "Automat. ulož. veľkosti okna" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" -msgstr "" +msgstr "Shadery" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" -msgstr "" +msgstr "Shadery (nedostupné)" #: builtin/mainmenu/tab_settings.lua msgid "Reset singleplayer world" -msgstr "" +msgstr "Vynuluj svet jedného hráča" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" -msgstr "" +msgstr "Zmeň ovládacie klávesy" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" -msgstr "" +msgstr "Všetky nastavenia" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" -msgstr "" +msgstr "Dotykový prah: (px)" #: builtin/mainmenu/tab_settings.lua msgid "Bump Mapping" -msgstr "" +msgstr "Ilúzia nerovnosti (Bump Mapping)" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "" +msgstr "Tone Mapping (Optim. farieb)" #: builtin/mainmenu/tab_settings.lua msgid "Generate Normal Maps" -msgstr "" +msgstr "Normal Maps (nerovnosti)" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Parallax Occlusion" -msgstr "" +msgstr "Parallax Occlusion (nerovnosti)" #: builtin/mainmenu/tab_settings.lua msgid "Waving Liquids" -msgstr "" +msgstr "Vlniace sa kvapaliny" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" -msgstr "" +msgstr "Vlniace sa listy" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" -msgstr "" +msgstr "Vlniace sa rastliny" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" +msgstr "Aby mohli byť povolené shadery, musí sa použiť OpenGL." #: builtin/mainmenu/tab_settings.lua msgid "Settings" -msgstr "" +msgstr "Nastavenia" #: builtin/mainmenu/tab_simple_main.lua msgid "Start Singleplayer" -msgstr "" +msgstr "Spusti hru pre jedného hráča" #: builtin/mainmenu/tab_simple_main.lua msgid "Config mods" -msgstr "" +msgstr "Nastav rozšírenia" #: builtin/mainmenu/tab_simple_main.lua msgid "Main" -msgstr "" +msgstr "Hlavné" #: src/client/client.cpp msgid "Connection timed out." -msgstr "" +msgstr "Časový limit pripojenia vypršal." #: src/client/client.cpp msgid "Loading textures..." -msgstr "" +msgstr "Nahrávam textúry..." #: src/client/client.cpp msgid "Rebuilding shaders..." -msgstr "" +msgstr "Obnovujem shadery..." #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "" +msgstr "Inicializujem bloky..." #: src/client/client.cpp msgid "Initializing nodes" -msgstr "" +msgstr "Inicializujem bloky" #: src/client/client.cpp msgid "Done!" -msgstr "" +msgstr "Hotovo!" #: src/client/clientlauncher.cpp msgid "Main Menu" -msgstr "" +msgstr "Hlavné menu" #: src/client/clientlauncher.cpp msgid "Player name too long." -msgstr "" +msgstr "Meno hráča je príliš dlhé." #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" -msgstr "" +msgstr "Chyba spojenia (časový limit?)" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "" +msgstr "Dodaný súbor s heslom nie je možné otvoriť: " #: src/client/clientlauncher.cpp msgid "Please choose a name!" -msgstr "" +msgstr "Prosím zvoľ si meno!" #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." -msgstr "" +msgstr "Nie je zvolený svet ani poskytnutá adresa. Niet čo robiť." #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " -msgstr "" +msgstr "Zadaná cesta k svetu neexistuje: " #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" -msgstr "" +msgstr "Nie je možné nájsť alebo nahrať hru \"" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." -msgstr "" +msgstr "Chybná špec. hry." #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" @@ -1057,231 +1057,231 @@ msgstr "" #. When in doubt, test your translation. #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "no" #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "Vypínam..." #: src/client/game.cpp msgid "Creating server..." -msgstr "" +msgstr "Vytváram server..." #: src/client/game.cpp msgid "Creating client..." -msgstr "" +msgstr "Vytváram klienta..." #: src/client/game.cpp msgid "Resolving address..." -msgstr "" +msgstr "Prekladám adresu..." #: src/client/game.cpp msgid "Connecting to server..." -msgstr "" +msgstr "Pripájam sa k serveru..." #: src/client/game.cpp msgid "Item definitions..." -msgstr "" +msgstr "Definície vecí..." #: src/client/game.cpp msgid "Node definitions..." -msgstr "" +msgstr "Definície blokov..." #: src/client/game.cpp msgid "Media..." -msgstr "" +msgstr "Média..." #: src/client/game.cpp msgid "KiB/s" -msgstr "" +msgstr "KiB/s" #: src/client/game.cpp msgid "MiB/s" -msgstr "" +msgstr "MiB/s" #: src/client/game.cpp msgid "Client side scripting is disabled" -msgstr "" +msgstr "Skriptovanie na strane klienta je zakázané" #: src/client/game.cpp msgid "Sound muted" -msgstr "" +msgstr "Zvuk je stlmený" #: src/client/game.cpp msgid "Sound unmuted" -msgstr "" +msgstr "Zvuk je obnovený" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Zvukový systém je zakázaný" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr "Hlasitosť zmenená na %d%%" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Zvukový systém nie je podporovaný v tomto zostavení" #: src/client/game.cpp msgid "ok" -msgstr "" +msgstr "ok" #: src/client/game.cpp msgid "Fly mode enabled" -msgstr "" +msgstr "Režim lietania je povolený" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" +msgstr "Režim lietania je povolený (poznámka: chýba právo 'fly')" #: src/client/game.cpp msgid "Fly mode disabled" -msgstr "" +msgstr "Režim lietania je zakázaný" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "" +msgstr "Režim pohybu podľa sklonu je povolený" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "" +msgstr "Režim pohybu podľa sklonu je zakázaný" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "" +msgstr "Rýchly režim je povolený" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" +msgstr "Rýchly režim je povolený (poznámka: chýba právo 'fast')" #: src/client/game.cpp msgid "Fast mode disabled" -msgstr "" +msgstr "Rýchly režim je zakázaný" #: src/client/game.cpp msgid "Noclip mode enabled" -msgstr "" +msgstr "Režim prechádzania stenami je povolený" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" +msgstr "Režim prechádzania stenami je povolený (poznámka: chýba právo 'noclip')" #: src/client/game.cpp msgid "Noclip mode disabled" -msgstr "" +msgstr "Režim prechádzania stenami je zakázaný" #: src/client/game.cpp msgid "Cinematic mode enabled" -msgstr "" +msgstr "Filmový režim je povolený" #: src/client/game.cpp msgid "Cinematic mode disabled" -msgstr "" +msgstr "Filmový režim je zakázaný" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "" +msgstr "Automatický pohyb vpred je povolený" #: src/client/game.cpp msgid "Automatic forward disabled" -msgstr "" +msgstr "Automatický pohyb vpred je zakázaný" #: src/client/game.cpp msgid "Minimap in surface mode, Zoom x1" -msgstr "" +msgstr "Minimapa v povrchovom režime, priblíženie x1" #: src/client/game.cpp msgid "Minimap in surface mode, Zoom x2" -msgstr "" +msgstr "Minimapa v povrchovom režime, priblíženie x2" #: src/client/game.cpp msgid "Minimap in surface mode, Zoom x4" -msgstr "" +msgstr "Minimapa v povrchovom režime, priblíženie x4" #: src/client/game.cpp msgid "Minimap in radar mode, Zoom x1" -msgstr "" +msgstr "Minimapa v radarovom režime, priblíženie x1" #: src/client/game.cpp msgid "Minimap in radar mode, Zoom x2" -msgstr "" +msgstr "Minimapa v radarovom režime, priblíženie x2" #: src/client/game.cpp msgid "Minimap in radar mode, Zoom x4" -msgstr "" +msgstr "Minimapa v radarovom režime, priblíženie x4" #: src/client/game.cpp msgid "Minimap hidden" -msgstr "" +msgstr "Minimapa je skrytá" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "" +msgstr "Minimapa je aktuálne zakázaná hrou, alebo rozšírením" #: src/client/game.cpp msgid "Fog disabled" -msgstr "" +msgstr "Hmla je vypnutá" #: src/client/game.cpp msgid "Fog enabled" -msgstr "" +msgstr "Hmla je povolená" #: src/client/game.cpp msgid "Debug info shown" -msgstr "" +msgstr "Ladiace informácie zobrazené" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "Profilový graf je zobrazený" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "" +msgstr "Obrysy zobrazené" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgstr "Ladiace informácie, Profilový graf a Obrysy sú skryté" #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "Ladiace informácie a Profilový graf sú skryté" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "" +msgstr "Aktualizácia kamery je zakázaná" #: src/client/game.cpp msgid "Camera update enabled" -msgstr "" +msgstr "Aktualizácia kamery je povolená" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "Dohľadnosť je na maxime: %d" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "Dohľadnosť je zmenená na %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "Dohľadnosť je na minime: %d" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "" +msgstr "Neobmedzená dohľadnosť je povolená" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "" +msgstr "Neobmedzená dohľadnosť je zakázaná" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "Zväčšenie je zakázané hrou, alebo rozšírením" #: src/client/game.cpp msgid "" @@ -1298,6 +1298,18 @@ msgid "" "- touch&drag, tap 2nd finger\n" " --> place single item to slot\n" msgstr "" +"Štandardné ovládanie:\n" +"Menu nie je zobrazené:\n" +"- jeden klik: tlačidlo aktivuj\n" +"- dvojklik: polož/použi\n" +"- posun prstom: pozeraj sa dookola\n" +"Menu/Inventár je zobrazené/ý:\n" +"- dvojklik (mimo):\n" +" -->zatvor\n" +"- klik na kôpku, klik na pozíciu:\n" +" --> presuň kôpku \n" +"- chyť a prenes, klik druhým prstom\n" +" --> polož jednu vec na pozíciu\n" #: src/client/game.cpp #, c-format @@ -1317,381 +1329,397 @@ msgid "" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" +"Ovládanie:\n" +"- %s: pohyb vpred\n" +"- %s: pohyb vzad\n" +"- %s: pohyb doľava\n" +"- %s: pohyb doprava\n" +"- %s: skoč/vylez\n" +"- %s: ísť utajene/choď dole\n" +"- %s: polož vec\n" +"- %s: inventár\n" +"- Myš: otoč sa/obzeraj sa\n" +"- Myš, ľavé tlačítko: kopaj/udri\n" +"- Myš, pravé tlačítko: polož/použi\n" +"- Myš koliesko: zvoľ si vec\n" +"- %s: komunikácia\n" #: src/client/game.cpp msgid "Continue" -msgstr "" +msgstr "Pokračuj" #: src/client/game.cpp msgid "Change Password" -msgstr "" +msgstr "Zmeniť heslo" #: src/client/game.cpp msgid "Game paused" -msgstr "" +msgstr "Hra je pozastavená" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "Hlasitosť" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "" +msgstr "Návrat do menu" #: src/client/game.cpp msgid "Exit to OS" -msgstr "" +msgstr "Ukončiť hru" #: src/client/game.cpp msgid "Game info:" -msgstr "" +msgstr "Informácie o hre:" #: src/client/game.cpp msgid "- Mode: " -msgstr "" +msgstr "- Mode: " #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "Vzdialený server" #: src/client/game.cpp msgid "- Address: " -msgstr "" +msgstr "- Adresa: " #: src/client/game.cpp msgid "Hosting server" -msgstr "" +msgstr "Beží server" #: src/client/game.cpp msgid "- Port: " -msgstr "" +msgstr "- Port: " #: src/client/game.cpp msgid "Singleplayer" -msgstr "" +msgstr "Hra pre jedného hráča" #: src/client/game.cpp msgid "On" -msgstr "" +msgstr "Zapnúť" #: src/client/game.cpp msgid "Off" -msgstr "" +msgstr "Vypnúť" #: src/client/game.cpp msgid "- Damage: " -msgstr "" +msgstr "- Poškodenie: " #: src/client/game.cpp msgid "- Creative Mode: " -msgstr "" +msgstr "- Kreatívny mód: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "" +msgstr "- PvP: " #: src/client/game.cpp msgid "- Public: " -msgstr "" +msgstr "- Verejný: " #: src/client/game.cpp msgid "- Server Name: " -msgstr "" +msgstr "- Meno servera: " #: src/client/game.cpp msgid "" "\n" "Check debug.txt for details." msgstr "" +"\n" +"Pozri detaily v debug.txt." #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" +msgstr "Komunikačná konzola je zobrazená" #: src/client/gameui.cpp msgid "Chat hidden" -msgstr "" +msgstr "Komunikačná konzola je skrytá" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "HUD je zobrazený" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "HUD je skryrý" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "Profilovanie je zobrazené (strana %d z %d)" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "Profilovanie je skryté" #: src/client/keycode.cpp msgid "Left Button" -msgstr "" +msgstr "Ľavé tlačítko" #: src/client/keycode.cpp msgid "Right Button" -msgstr "" +msgstr "Pravé tlačítko" #: src/client/keycode.cpp msgid "Middle Button" -msgstr "" +msgstr "Stredné tlačítko" #: src/client/keycode.cpp msgid "X Button 1" -msgstr "" +msgstr "X tlačidlo 1" #: src/client/keycode.cpp msgid "X Button 2" -msgstr "" +msgstr "X tlačidlo 2" #: src/client/keycode.cpp msgid "Backspace" -msgstr "" +msgstr "Backspace" #: src/client/keycode.cpp msgid "Tab" -msgstr "" +msgstr "Tab" #: src/client/keycode.cpp msgid "Clear" -msgstr "" +msgstr "Zmaž" #: src/client/keycode.cpp msgid "Return" -msgstr "" +msgstr "Enter" #: src/client/keycode.cpp msgid "Shift" -msgstr "" +msgstr "Shift" #: src/client/keycode.cpp msgid "Control" -msgstr "" +msgstr "CTRL" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" -msgstr "" +msgstr "Menu" #: src/client/keycode.cpp msgid "Pause" -msgstr "" +msgstr "Pause" #: src/client/keycode.cpp msgid "Caps Lock" -msgstr "" +msgstr "Caps Lock" #: src/client/keycode.cpp msgid "Space" -msgstr "" +msgstr "Medzera" #: src/client/keycode.cpp msgid "Page up" -msgstr "" +msgstr "Page up" #: src/client/keycode.cpp msgid "Page down" -msgstr "" +msgstr "Page down" #: src/client/keycode.cpp msgid "End" -msgstr "" +msgstr "End" #: src/client/keycode.cpp msgid "Home" -msgstr "" +msgstr "Home" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "" +msgstr "Vľavo" #: src/client/keycode.cpp msgid "Up" -msgstr "" +msgstr "Hore" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Right" -msgstr "" +msgstr "Vpravo" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "Dole" #. ~ Key name #: src/client/keycode.cpp msgid "Select" -msgstr "" +msgstr "Vybrať" #. ~ "Print screen" key #: src/client/keycode.cpp msgid "Print" -msgstr "" +msgstr "PrtSc" #: src/client/keycode.cpp msgid "Execute" -msgstr "" +msgstr "Spustiť" #: src/client/keycode.cpp msgid "Snapshot" -msgstr "" +msgstr "Snímka" #: src/client/keycode.cpp msgid "Insert" -msgstr "" +msgstr "Vlož" #: src/client/keycode.cpp msgid "Help" -msgstr "" +msgstr "Pomoc" #: src/client/keycode.cpp msgid "Left Windows" -msgstr "" +msgstr "Ľavá klávesa Windows" #: src/client/keycode.cpp msgid "Right Windows" -msgstr "" +msgstr "Pravá klávesa Windows" #: src/client/keycode.cpp msgid "Numpad 0" -msgstr "" +msgstr "Numerická klávesnica 0" #: src/client/keycode.cpp msgid "Numpad 1" -msgstr "" +msgstr "Numerická klávesnica 1" #: src/client/keycode.cpp msgid "Numpad 2" -msgstr "" +msgstr "Numerická klávesnica 2" #: src/client/keycode.cpp msgid "Numpad 3" -msgstr "" +msgstr "Numerická klávesnica 3" #: src/client/keycode.cpp msgid "Numpad 4" -msgstr "" +msgstr "Numerická klávesnica 4" #: src/client/keycode.cpp msgid "Numpad 5" -msgstr "" +msgstr "Numerická klávesnica 5" #: src/client/keycode.cpp msgid "Numpad 6" -msgstr "" +msgstr "Numerická klávesnica 6" #: src/client/keycode.cpp msgid "Numpad 7" -msgstr "" +msgstr "Numerická klávesnica 7" #: src/client/keycode.cpp msgid "Numpad 8" -msgstr "" +msgstr "Numerická klávesnica 8" #: src/client/keycode.cpp msgid "Numpad 9" -msgstr "" +msgstr "Numerická klávesnica 9" #: src/client/keycode.cpp msgid "Numpad *" -msgstr "" +msgstr "Numerická klávesnica *" #: src/client/keycode.cpp msgid "Numpad +" -msgstr "" +msgstr "Numerická klávesnica +" #: src/client/keycode.cpp msgid "Numpad ." -msgstr "" +msgstr "Numerická klávesnica ." #: src/client/keycode.cpp msgid "Numpad -" -msgstr "" +msgstr "Numerická klávesnica -" #: src/client/keycode.cpp msgid "Numpad /" -msgstr "" +msgstr "Numerická klávesnica /" #: src/client/keycode.cpp msgid "Num Lock" -msgstr "" +msgstr "Num Lock" #: src/client/keycode.cpp msgid "Scroll Lock" -msgstr "" +msgstr "Scroll Lock" #: src/client/keycode.cpp msgid "Left Shift" -msgstr "" +msgstr "Ľavý Shift" #: src/client/keycode.cpp msgid "Right Shift" -msgstr "" +msgstr "Pravý Shift" #: src/client/keycode.cpp msgid "Left Control" -msgstr "" +msgstr "Ľavý CRTL" #: src/client/keycode.cpp msgid "Right Control" -msgstr "" +msgstr "Pravý CRTL" #: src/client/keycode.cpp msgid "Left Menu" -msgstr "" +msgstr "Ľavé Menu" #: src/client/keycode.cpp msgid "Right Menu" -msgstr "" +msgstr "Pravé Menu" #: src/client/keycode.cpp msgid "IME Escape" -msgstr "" +msgstr "IME Escape" #: src/client/keycode.cpp msgid "IME Convert" -msgstr "" +msgstr "IME Konvertuj" #: src/client/keycode.cpp msgid "IME Nonconvert" -msgstr "" +msgstr "IME Nekonvertuj" #: src/client/keycode.cpp msgid "IME Accept" -msgstr "" +msgstr "IME Súhlas" #: src/client/keycode.cpp msgid "IME Mode Change" -msgstr "" +msgstr "IME Zmena módu" #: src/client/keycode.cpp msgid "Apps" -msgstr "" +msgstr "Aplikácie" #: src/client/keycode.cpp msgid "Sleep" -msgstr "" +msgstr "Spánok" #: src/client/keycode.cpp msgid "Erase EOF" -msgstr "" +msgstr "Zmaž EOF" #: src/client/keycode.cpp msgid "Play" -msgstr "" +msgstr "Hraj" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" -msgstr "" +msgstr "Priblíž" #: src/client/keycode.cpp msgid "OEM Clear" -msgstr "" +msgstr "OEM Clear" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1702,196 +1730,203 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" +"Chystáš sa pripojiť k serveru \"%s\" po prvý krát.\n" +"Ak budeš pokračovať, bude na tomto serveri vytvorený nový účet s tvojimi " +"údajmi.\n" +"Zapíš znova prosím svoje heslo a klikni 'Registrovať a pripojiť sa' pre " +"potvrdenie súhlasu s vytvorením účtu, alebo klikni 'Zrušiť' pre návrat." #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "Registrovať a pripojiť sa" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "" +msgstr "Hesla sa nezhodujú!" #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" -msgstr "" +msgstr "Pokračuj" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" +"Priradenie kláves. (ak je toto menu rozbité, zmaž zbytočnosti z minetest." +"conf)" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "" +msgstr "\"Špeciál\"=šplhaj dole" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "" +msgstr "2x stlač \"skok\" pre prepnutie lietania" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "" +msgstr "Automatické skákanie" #: src/gui/guiKeyChangeMenu.cpp msgid "Key already in use" -msgstr "" +msgstr "Klávesa sa už používa" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "" +msgstr "stlač klávesu" #: src/gui/guiKeyChangeMenu.cpp msgid "Forward" -msgstr "" +msgstr "Vpred" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" -msgstr "" +msgstr "Vzad" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" +msgstr "Špeciál" #: src/gui/guiKeyChangeMenu.cpp msgid "Jump" -msgstr "" +msgstr "Skok" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" -msgstr "" +msgstr "Ísť utajene" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" -msgstr "" +msgstr "Zahodiť" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" -msgstr "" +msgstr "Inventár" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" -msgstr "" +msgstr "Pred. vec" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" -msgstr "" +msgstr "Ďalšia vec" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "" +msgstr "Zmeň pohľad" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "" +msgstr "Prepni minimapu" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "" +msgstr "Prepni lietanie" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "" +msgstr "Prepni režim pohybu podľa sklonu" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "" +msgstr "Prepni rýchly režim" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" -msgstr "" +msgstr "Prepni režim prechádzania stenami" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "" +msgstr "Vypni zvuk" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" -msgstr "" +msgstr "Zníž hlasitosť" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "" +msgstr "Zvýš hlasitosť" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" -msgstr "" +msgstr "Automaticky pohyb vpred" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "" +msgstr "Komunikácia" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "" +msgstr "Fotka obrazovky" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "" +msgstr "Zmena dohľadu" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" -msgstr "" +msgstr "Zníž dohľad" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" -msgstr "" +msgstr "Zvýš dohľad" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" -msgstr "" +msgstr "Konzola" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" -msgstr "" +msgstr "Príkaz" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "" +msgstr "Lokálny príkaz" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "" +msgstr "Prepni HUD" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "" +msgstr "Prepni logovanie komunikácie" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "" +msgstr "Prepni hmlu" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "" +msgstr "Staré heslo" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "" +msgstr "Nové heslo" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "" +msgstr "Potvrď heslo" #: src/gui/guiPasswordChange.cpp msgid "Change" -msgstr "" +msgstr "Zmeniť" #: src/gui/guiVolumeChange.cpp msgid "Sound Volume: " -msgstr "" +msgstr "Hlasitosť: " #: src/gui/guiVolumeChange.cpp msgid "Exit" -msgstr "" +msgstr "Odísť" #: src/gui/guiVolumeChange.cpp msgid "Muted" -msgstr "" +msgstr "Zvuk stlmený" #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " -msgstr "" +msgstr "Vlož " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -1902,11 +1937,11 @@ msgstr "sk" #: src/settings_translation_file.cpp msgid "Controls" -msgstr "" +msgstr "Ovládanie" #: src/settings_translation_file.cpp msgid "Build inside player" -msgstr "" +msgstr "Stavanie vnútri hráča" #: src/settings_translation_file.cpp msgid "" @@ -1914,40 +1949,48 @@ msgid "" "you stand.\n" "This is helpful when working with nodeboxes in small areas." msgstr "" +"Ak je povolené, môžeš dať bloky na miesto kde stojíš (v úrovni päta + oči).\n" +"Je to užitočné ak pracuješ s kockami v stiesnených priestoroch." #: src/settings_translation_file.cpp msgid "Flying" -msgstr "" +msgstr "Lietanie" #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." msgstr "" +"Hráč je schopný lietať bez ovplyvnenia gravitáciou.\n" +"Toto si na serveri vyžaduje privilégium \"fly\"." #: src/settings_translation_file.cpp msgid "Pitch move mode" -msgstr "" +msgstr "Režim pohybu podľa sklonu" #: src/settings_translation_file.cpp msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." msgstr "" +"Ak je povolené, tak je smer pohybu pri lietaní, alebo plávaní daný sklonom " +"hráča." #: src/settings_translation_file.cpp msgid "Fast movement" -msgstr "" +msgstr "Rýchly pohyb" #: src/settings_translation_file.cpp msgid "" "Fast movement (via the \"special\" key).\n" "This requires the \"fast\" privilege on the server." msgstr "" +"Rýchly pohyb (cez \"špeciálnu\" klávesu).\n" +"Toto si na serveri vyžaduje privilégium \"fast\"." #: src/settings_translation_file.cpp msgid "Noclip" -msgstr "" +msgstr "Prechádzanie stenami" #: src/settings_translation_file.cpp msgid "" @@ -1955,52 +1998,58 @@ msgid "" "nodes.\n" "This requires the \"noclip\" privilege on the server." msgstr "" +"Ak je povolený spolu s režimom lietania, tak je hráč schopný letieť cez " +"pevné bloky.\n" +"Toto si na serveri vyžaduje privilégium \"noclip\"." #: src/settings_translation_file.cpp msgid "Cinematic mode" -msgstr "" +msgstr "Filmový mód" #: src/settings_translation_file.cpp msgid "" "Smooths camera when looking around. Also called look or mouse smoothing.\n" "Useful for recording videos." msgstr "" +"Zjemňuje pohyb kamery pri pohľade po okolí. Tiež sa nazýva zjemnenie " +"pohľady, alebo pohybu myši.\n" +"Užitočné pri nahrávaní videí." #: src/settings_translation_file.cpp msgid "Camera smoothing" -msgstr "" +msgstr "Plynulý pohyb kamery" #: src/settings_translation_file.cpp msgid "Smooths rotation of camera. 0 to disable." -msgstr "" +msgstr "Zjemní rotáciu kamery. 0 je pre vypnuté." #: src/settings_translation_file.cpp msgid "Camera smoothing in cinematic mode" -msgstr "" +msgstr "Plynulý pohyb kamery vo filmovom režime" #: src/settings_translation_file.cpp msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" +msgstr "Zjemní rotáciu kamery vo filmovom režime. 0 je pre vypnuté." #: src/settings_translation_file.cpp msgid "Invert mouse" -msgstr "" +msgstr "Obrátiť smer myši" #: src/settings_translation_file.cpp msgid "Invert vertical mouse movement." -msgstr "" +msgstr "Obráti vertikálny pohyb myši." #: src/settings_translation_file.cpp msgid "Mouse sensitivity" -msgstr "" +msgstr "Citlivosť myši" #: src/settings_translation_file.cpp msgid "Mouse sensitivity multiplier." -msgstr "" +msgstr "Multiplikátor citlivosti myši." #: src/settings_translation_file.cpp msgid "Special key for climbing/descending" -msgstr "" +msgstr "Špeciálna klávesa pre šplhanie hore/dole" #: src/settings_translation_file.cpp msgid "" @@ -2008,18 +2057,21 @@ msgid "" "down and\n" "descending." msgstr "" +"Ak je povolené, použije sa namiesto klávesy pre \"utajený pohyb\" \"špeciálna" +"\" klávesa\n" +"pre klesanie a šplhanie dole." #: src/settings_translation_file.cpp msgid "Double tap jump for fly" -msgstr "" +msgstr "Dvakrát skok pre lietanie" #: src/settings_translation_file.cpp msgid "Double-tapping the jump key toggles fly mode." -msgstr "" +msgstr "Dvojnásobné stlačenie klávesy pre skok prepne režim lietania." #: src/settings_translation_file.cpp msgid "Always fly and fast" -msgstr "" +msgstr "Vždy zapnuté lietanie a rýchlosť" #: src/settings_translation_file.cpp msgid "" @@ -2027,10 +2079,12 @@ msgid "" "are\n" "enabled." msgstr "" +"Ak je vypnuté, použije sa \"špeciálna\" klávesa na lietanie, v prípade,\n" +"že je povolený režim lietania aj rýchlosti." #: src/settings_translation_file.cpp msgid "Rightclick repetition interval" -msgstr "" +msgstr "Interval opakovania pravého kliknutia" #: src/settings_translation_file.cpp msgid "" @@ -2038,60 +2092,70 @@ msgid "" "right\n" "mouse button." msgstr "" +"Čas v sekundách pre zopakovanie pravého kliknutia v prípade\n" +"držania pravého tlačítka myši." #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "Automaticky vyskočí na prekážku vysokú jeden blok." #: src/settings_translation_file.cpp msgid "Safe digging and placing" -msgstr "" +msgstr "Bezpečné kopanie a ukladanie" #: src/settings_translation_file.cpp msgid "" "Prevent digging and placing from repeating when holding the mouse buttons.\n" "Enable this when you dig or place too often by accident." msgstr "" +"Zabráni opakovanému kopaniu a ukladaniu blokov pri držaní tlačítka myši.\n" +"Povoľ, ak príliš často omylom niečo vykopeš, alebo položíš blok." #: src/settings_translation_file.cpp msgid "Random input" -msgstr "" +msgstr "Náhodný vstup" #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." -msgstr "" +msgstr "Povolí náhodný užívateľský vstup (používa sa len pre testovanie)." #: src/settings_translation_file.cpp msgid "Continuous forward" -msgstr "" +msgstr "Neustály pohyb vpred" #: src/settings_translation_file.cpp msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" +"Neustály pohyb vpred, prepína sa klávesou pre \"Automatický pohyb vpred\".\n" +"Opätovne stlač klávesu pre \"Automatický pohyb vpred\", alebo pohyb vzad pre " +"vypnutie." #: src/settings_translation_file.cpp msgid "Touch screen threshold" -msgstr "" +msgstr "Prah citlivosti dotykovej obrazovky" #: src/settings_translation_file.cpp msgid "The length in pixels it takes for touch screen interaction to start." msgstr "" +"Dĺžka v pixloch, ktorú potrebuje dotyková obrazovka pre začiatok interakcie." #: src/settings_translation_file.cpp msgid "Fixed virtual joystick" -msgstr "" +msgstr "Pevný virtuálny joystick" #: src/settings_translation_file.cpp msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android) Zafixuje pozíciu virtuálneho joysticku.\n" +"Ak je vypnuté, virtuálny joystick sa vycentruje na pozícií prvého dotyku." #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "" +msgstr "Virtuálny joystick stlačí tlačidlo aux" #: src/settings_translation_file.cpp msgid "" @@ -2099,50 +2163,57 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" +"(Android) Použije virtuálny joystick na stlačenie tlačidla \"aux\".\n" +"Ak je povolené, virtuálny joystick stlačí tlačidlo \"aux\" keď je mimo " +"hlavný kruh." #: src/settings_translation_file.cpp msgid "Enable joysticks" -msgstr "" +msgstr "Povoľ joysticky" #: src/settings_translation_file.cpp msgid "Joystick ID" -msgstr "" +msgstr "ID joysticku" #: src/settings_translation_file.cpp msgid "The identifier of the joystick to use" -msgstr "" +msgstr "Identifikátor joysticku na použitie" #: src/settings_translation_file.cpp msgid "Joystick type" -msgstr "" +msgstr "Typ joysticku" #: src/settings_translation_file.cpp msgid "The type of joystick" -msgstr "" +msgstr "Typ joysticku" #: src/settings_translation_file.cpp msgid "Joystick button repetition interval" -msgstr "" +msgstr "Interval opakovania tlačidla joysticku" #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" +"Čas v sekundách medzi opakovanými udalosťami\n" +"pri stlačenej kombinácií tlačidiel na joysticku." #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" -msgstr "" +msgstr "Citlivosť otáčania pohľadu joystickom" #: src/settings_translation_file.cpp msgid "" "The sensitivity of the joystick axes for moving the\n" "ingame view frustum around." msgstr "" +"Citlivosť osí joysticku pre pohyb\n" +"otáčania pohľadu v hre." #: src/settings_translation_file.cpp msgid "Forward key" -msgstr "" +msgstr "Tlačidlo Vpred" #: src/settings_translation_file.cpp msgid "" @@ -2150,10 +2221,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre pohyb hráča vpred.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Backward key" -msgstr "" +msgstr "Tlačidlo Vzad" #: src/settings_translation_file.cpp msgid "" @@ -2162,10 +2236,14 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre pohyb hráča vzad.\n" +"Zároveň vypne automatický pohyb hráča dopredu, ak je aktívny.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Left key" -msgstr "" +msgstr "Tlačidlo Vľavo" #: src/settings_translation_file.cpp msgid "" @@ -2173,10 +2251,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre pohyb hráča vľavo.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Right key" -msgstr "" +msgstr "Tlačidlo Vpravo" #: src/settings_translation_file.cpp msgid "" @@ -2184,10 +2265,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre pohyb hráča vpravo.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Jump key" -msgstr "" +msgstr "Tlačidlo Skok" #: src/settings_translation_file.cpp msgid "" @@ -2195,10 +2279,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre skákanie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Sneak key" -msgstr "" +msgstr "Tlačidlo Ísť utajene" #: src/settings_translation_file.cpp msgid "" @@ -2208,10 +2295,15 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre utajený pohyb hráča.\n" +"Tiež sa používa pre zliezanie a ponáranie vo vode ak aux1_descends je " +"vypnutý.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Inventory key" -msgstr "" +msgstr "Tlačidlo Inventár" #: src/settings_translation_file.cpp msgid "" @@ -2219,10 +2311,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre otvorenie inventára.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Special key" -msgstr "" +msgstr "Špeciálne tlačidlo" #: src/settings_translation_file.cpp msgid "" @@ -2230,10 +2325,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre rýchly pohyb hráča v rýchlom móde.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Chat key" -msgstr "" +msgstr "Tlačidlo Komunikácia" #: src/settings_translation_file.cpp msgid "" @@ -2241,10 +2339,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre otvorenie komunikačného okna.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Command key" -msgstr "" +msgstr "Tlačidlo Príkaz" #: src/settings_translation_file.cpp msgid "" @@ -2252,6 +2353,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre otvorenie komunikačného okna pre zadávanie príkazov.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -2259,10 +2363,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre otvorenie komunikačného okna pre zadávanie lokálnych príkazov.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Range select key" -msgstr "" +msgstr "Tlačidlo Dohľad" #: src/settings_translation_file.cpp msgid "" @@ -2270,10 +2377,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie neobmedzeného dohľadu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Fly key" -msgstr "" +msgstr "Tlačidlo Lietanie" #: src/settings_translation_file.cpp msgid "" @@ -2281,10 +2391,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie lietania.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Pitch move key" -msgstr "" +msgstr "Tlačidlo Pohyb podľa sklonu" #: src/settings_translation_file.cpp msgid "" @@ -2292,10 +2405,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie režimu pohyb podľa sklonu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Fast key" -msgstr "" +msgstr "Tlačidlo Rýchlosť" #: src/settings_translation_file.cpp msgid "" @@ -2303,10 +2419,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie režimu rýchlosť.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Noclip key" -msgstr "" +msgstr "Tlačidlo Prechádzanie stenami" #: src/settings_translation_file.cpp msgid "" @@ -2314,10 +2433,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie režimu prechádzania stenami.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar next key" -msgstr "" +msgstr "Tlačidlo Nasledujúca vec na opasku" #: src/settings_translation_file.cpp msgid "" @@ -2325,10 +2447,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber ďalšej veci na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar previous key" -msgstr "" +msgstr "Tlačidlo Predchádzajúcu vec na opasku" #: src/settings_translation_file.cpp msgid "" @@ -2336,10 +2461,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber predchádzajúcej veci na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Mute key" -msgstr "" +msgstr "Tlačidlo Ticho" #: src/settings_translation_file.cpp msgid "" @@ -2347,10 +2475,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre vypnutie hlasitosti v hre.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Inc. volume key" -msgstr "" +msgstr "Tlačidlo Zvýš hlasitosť" #: src/settings_translation_file.cpp msgid "" @@ -2358,10 +2489,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zvýšenie hlasitosti.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Dec. volume key" -msgstr "" +msgstr "Tlačidlo Zníž hlasitosť" #: src/settings_translation_file.cpp msgid "" @@ -2369,10 +2503,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zníženie hlasitosti.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Automatic forward key" -msgstr "" +msgstr "Tlačidlo Automatický pohyb vpred" #: src/settings_translation_file.cpp msgid "" @@ -2380,10 +2517,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie režimu automatického pohybu vpred.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Cinematic mode key" -msgstr "" +msgstr "Tlačidlo Filmový režim" #: src/settings_translation_file.cpp msgid "" @@ -2391,10 +2531,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie filmového režimu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Minimap key" -msgstr "" +msgstr "Tlačidlo Minimapa" #: src/settings_translation_file.cpp msgid "" @@ -2402,6 +2545,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia minimapy.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -2409,10 +2555,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre snímanie obrazovky.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Drop item key" -msgstr "" +msgstr "Tlačidlo Zahoď vec" #: src/settings_translation_file.cpp msgid "" @@ -2420,10 +2569,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zahodenie aktuálne vybranej veci.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "View zoom key" -msgstr "" +msgstr "Tlačidlo Priblíženie pohľadu" #: src/settings_translation_file.cpp msgid "" @@ -2431,10 +2583,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre použitie priblíženia pokiaľ je to možné .\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 1 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 1" #: src/settings_translation_file.cpp msgid "" @@ -2442,10 +2597,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber prvej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 2 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 2" #: src/settings_translation_file.cpp msgid "" @@ -2453,10 +2611,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber druhej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 3 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 3" #: src/settings_translation_file.cpp msgid "" @@ -2464,10 +2625,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber tretej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 4 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 4" #: src/settings_translation_file.cpp msgid "" @@ -2475,10 +2639,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber štvrtej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 5 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 5" #: src/settings_translation_file.cpp msgid "" @@ -2486,10 +2653,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber piatej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 6 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 6" #: src/settings_translation_file.cpp msgid "" @@ -2497,10 +2667,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber šiestej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 7 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 7" #: src/settings_translation_file.cpp msgid "" @@ -2508,10 +2681,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber siedmej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 8 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 8" #: src/settings_translation_file.cpp msgid "" @@ -2519,10 +2695,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber ôsmej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 9 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 9" #: src/settings_translation_file.cpp msgid "" @@ -2530,10 +2709,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber deviatej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 10 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 10" #: src/settings_translation_file.cpp msgid "" @@ -2541,10 +2723,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber desiatej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 11 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 11" #: src/settings_translation_file.cpp msgid "" @@ -2552,10 +2737,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber jedenástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 12 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 12" #: src/settings_translation_file.cpp msgid "" @@ -2563,10 +2751,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber dvanástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 13 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 13" #: src/settings_translation_file.cpp msgid "" @@ -2574,10 +2765,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber trinástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 14 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 14" #: src/settings_translation_file.cpp msgid "" @@ -2585,10 +2779,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber štrnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 15 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 15" #: src/settings_translation_file.cpp msgid "" @@ -2596,10 +2793,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber pätnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 16 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 16" #: src/settings_translation_file.cpp msgid "" @@ -2607,10 +2807,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber šestnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 17 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 17" #: src/settings_translation_file.cpp msgid "" @@ -2618,10 +2821,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber sedemnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 18 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 18" #: src/settings_translation_file.cpp msgid "" @@ -2629,10 +2835,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber osemnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 19 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 19" #: src/settings_translation_file.cpp msgid "" @@ -2640,10 +2849,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber devätnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 20 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 20" #: src/settings_translation_file.cpp msgid "" @@ -2651,10 +2863,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 20. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 21 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 21" #: src/settings_translation_file.cpp msgid "" @@ -2662,10 +2877,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 21. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 22 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 22" #: src/settings_translation_file.cpp msgid "" @@ -2673,10 +2891,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 22. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 23 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 23" #: src/settings_translation_file.cpp msgid "" @@ -2684,10 +2905,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 23. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 24 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 24" #: src/settings_translation_file.cpp msgid "" @@ -2695,10 +2919,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 24. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 25 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 25" #: src/settings_translation_file.cpp msgid "" @@ -2706,10 +2933,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 25. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 26 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 26" #: src/settings_translation_file.cpp msgid "" @@ -2717,10 +2947,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 26. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 27 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 27" #: src/settings_translation_file.cpp msgid "" @@ -2728,10 +2961,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 27. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 28 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 28" #: src/settings_translation_file.cpp msgid "" @@ -2739,10 +2975,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 28. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 29 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 29" #: src/settings_translation_file.cpp msgid "" @@ -2750,10 +2989,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 29. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 30 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 30" #: src/settings_translation_file.cpp msgid "" @@ -2761,10 +3003,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 30. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 31 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 31" #: src/settings_translation_file.cpp msgid "" @@ -2772,10 +3017,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 31. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Hotbar slot 32 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 32" #: src/settings_translation_file.cpp msgid "" @@ -2783,10 +3031,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 32. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "HUD toggle key" -msgstr "" +msgstr "Tlačidlo Prepínanie HUD" #: src/settings_translation_file.cpp msgid "" @@ -2794,10 +3045,14 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia HUD (Head-Up Display - výhľadový displej)." +"\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Chat toggle key" -msgstr "" +msgstr "Tlačidlo Prepnutie komunikácie" #: src/settings_translation_file.cpp msgid "" @@ -2805,10 +3060,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia komunikácie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Large chat console key" -msgstr "" +msgstr "Tlačidlo Veľká komunikačná konzola" #: src/settings_translation_file.cpp msgid "" @@ -2816,10 +3074,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia veľkej konzoly na komunikáciu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Fog toggle key" -msgstr "" +msgstr "Tlačidlo Prepnutie hmly" #: src/settings_translation_file.cpp msgid "" @@ -2827,10 +3088,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia hmly.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Camera update toggle key" -msgstr "" +msgstr "Tlačidlo Aktualizácia pohľadu" #: src/settings_translation_file.cpp msgid "" @@ -2838,10 +3102,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie aktualizácie pohľadu. Používa sa len pre vývoj.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Debug info toggle key" -msgstr "" +msgstr "Tlačidlo Ladiace informácie" #: src/settings_translation_file.cpp msgid "" @@ -2849,10 +3116,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia ladiacich informácií.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Profiler toggle key" -msgstr "" +msgstr "Tlačidlo Prepínanie profileru" #: src/settings_translation_file.cpp msgid "" @@ -2860,10 +3130,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia profileru. Používa sa pri vývoji.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Toggle camera mode key" -msgstr "" +msgstr "Tlačidlo Prepnutie režimu zobrazenia" #: src/settings_translation_file.cpp msgid "" @@ -2871,10 +3144,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepínanie medzi pohľadom z prvej a tretej osoby.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "View range increase key" -msgstr "" +msgstr "Tlačidlo Zvýš dohľad" #: src/settings_translation_file.cpp msgid "" @@ -2882,10 +3158,13 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zvýšenie dohľadu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "View range decrease key" -msgstr "" +msgstr "Tlačidlo Zníž dohľad" #: src/settings_translation_file.cpp msgid "" @@ -2893,40 +3172,45 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zníženie dohľadu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Graphics" -msgstr "" +msgstr "Grafika" #: src/settings_translation_file.cpp msgid "In-Game" -msgstr "" +msgstr "V hre" #: src/settings_translation_file.cpp msgid "Basic" -msgstr "" +msgstr "Základné" #: src/settings_translation_file.cpp msgid "VBO" -msgstr "" +msgstr "VBO" #: src/settings_translation_file.cpp msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" +"Povolí \"vertex buffer objects\".\n" +"Toto by malo viditeľne zvýšiť grafický výkon." #: src/settings_translation_file.cpp msgid "Fog" -msgstr "" +msgstr "Hmla" #: src/settings_translation_file.cpp msgid "Whether to fog out the end of the visible area." -msgstr "" +msgstr "Či zamlžiť okraj viditeľnej oblasti." #: src/settings_translation_file.cpp msgid "Leaves style" -msgstr "" +msgstr "Štýl listov" #: src/settings_translation_file.cpp msgid "" @@ -2935,64 +3219,71 @@ msgid "" "- Simple: only outer faces, if defined special_tiles are used\n" "- Opaque: disable transparency" msgstr "" +"Štýly listov:\n" +"- Ozdobné: všetky plochy sú viditeľné\n" +"- Jednoduché: sú použité len vonkajšie plochy, ak sú použité definované " +"\"special_tiles\"\n" +"- Nepriehľadné: vypne priehliadnosť" #: src/settings_translation_file.cpp msgid "Connect glass" -msgstr "" +msgstr "Prepojené sklo" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." -msgstr "" +msgstr "Prepojí sklo, ak je to podporované blokom." #: src/settings_translation_file.cpp msgid "Smooth lighting" -msgstr "" +msgstr "Jemné osvetlenie" #: src/settings_translation_file.cpp msgid "" "Enable smooth lighting with simple ambient occlusion.\n" "Disable for speed or for different looks." msgstr "" +"Povolí jemné nasvietenie pomocou jednoduchej \"ambient occlusion\".\n" +"Vypni pre zrýchlenie, alebo iný vzhľad." #: src/settings_translation_file.cpp msgid "Clouds" -msgstr "" +msgstr "Mraky" #: src/settings_translation_file.cpp msgid "Clouds are a client side effect." -msgstr "" +msgstr "Mraky sú efektom na strane klienta." #: src/settings_translation_file.cpp msgid "3D clouds" -msgstr "" +msgstr "3D mraky" #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." -msgstr "" +msgstr "Použi 3D mraky namiesto plochých." #: src/settings_translation_file.cpp msgid "Node highlighting" -msgstr "" +msgstr "Zvýrazňovanie blokov" #: src/settings_translation_file.cpp msgid "Method used to highlight selected object." -msgstr "" +msgstr "Metóda použitá pre zvýraznenie vybraných objektov." #: src/settings_translation_file.cpp msgid "Digging particles" -msgstr "" +msgstr "Časticové efekty pri kopaní" #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." -msgstr "" +msgstr "Pridá časticové efekty pri vykopávaní bloku." #: src/settings_translation_file.cpp msgid "Filtering" -msgstr "" +msgstr "Filtrovanie" #: src/settings_translation_file.cpp msgid "Mipmapping" -msgstr "" +msgstr "Mipmapping" #: src/settings_translation_file.cpp msgid "" @@ -3000,34 +3291,37 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" +"Použi mip mapy pre úpravu textúr. Môže jemne zvýšiť výkon,\n" +"obzvlášť použití balíčka textúr s vysokým rozlíšením.\n" +"Gama korektné podvzorkovanie nie je podporované." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" -msgstr "" +msgstr "Anisotropné filtrovanie" #: src/settings_translation_file.cpp msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" +msgstr "Použi anisotropné filtrovanie pri pohľade na textúry zo strany." #: src/settings_translation_file.cpp msgid "Bilinear filtering" -msgstr "" +msgstr "Bilineárne filtrovanie" #: src/settings_translation_file.cpp msgid "Use bilinear filtering when scaling textures." -msgstr "" +msgstr "Použi bilineárne filtrovanie pri zmene mierky textúr." #: src/settings_translation_file.cpp msgid "Trilinear filtering" -msgstr "" +msgstr "Trilineárne filtrovanie" #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." -msgstr "" +msgstr "Použi trilineárne filtrovanie pri zmene mierky textúr." #: src/settings_translation_file.cpp msgid "Clean transparent textures" -msgstr "" +msgstr "Vyčisti priehľadné textúry" #: src/settings_translation_file.cpp msgid "" @@ -3036,10 +3330,15 @@ msgid "" "light edge to transparent textures. Apply this filter to clean that up\n" "at texture load time." msgstr "" +"Filtrované textúry môžu zmiešať svoje RGB hodnoty s plne priehľadnými " +"susedmi,\n" +"s PNG optimizérmi obvykle zmazané, niekdy môžu viesť k tmavým oblastiam\n" +"alebo svetlým rohom na priehľadnej textúre.\n" +"Aplikuj tento filter na ich vyčistenie pri nahrávaní textúry." #: src/settings_translation_file.cpp msgid "Minimum texture size" -msgstr "" +msgstr "Minimálna veľkosť textúry" #: src/settings_translation_file.cpp msgid "" @@ -3053,20 +3352,32 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" +"Pri použití bilineárneho/trilineárneho/anisotropného filtra, textúry s " +"nízkym\n" +"rozlíšením môžu byť rozmazané, tak sa automaticky upravia interpoláciou\n" +"s najbližším susedom aby bola zachovaná ostrosť pixelov.\n" +"Toto nastaví minimálnu veľkosť pre upravenú textúru;\n" +"vyššia hodnota znamená ostrejší vzhľad, ale potrebuje viac pamäti.\n" +"Odporúčané sú mocniny 2. Nastavenie viac než 1 nemusí mať viditeľný efekt,\n" +"kým nie je použité bilineárne/trilineárne/anisotropné filtrovanie.\n" +"Toto sa tiež používa ako základná veľkosť textúry blokov pre\n" +"\"world-aligned autoscaling\" textúr." #: src/settings_translation_file.cpp msgid "FSAA" -msgstr "" +msgstr "FSAA" #: src/settings_translation_file.cpp msgid "" "Experimental option, might cause visible spaces between blocks\n" "when set to higher number than 0." msgstr "" +"Experimentálne nastavenie, môže spôsobiť viditeľné medzery\n" +"medzi blokmi, ak je nastavené väčšie než 0." #: src/settings_translation_file.cpp msgid "Undersampling" -msgstr "" +msgstr "Podvzorkovanie" #: src/settings_translation_file.cpp msgid "" @@ -3076,6 +3387,10 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" +"Podvzorkovanie je podobné ako použiť obrazovku s nižším rozlíšením, ale\n" +"aplikuje sa len na samotný svet, pričom GUI ostáva nezmenené.\n" +"Malo by poskytnúť výrazné zvýšenie výkonu za cenu nižších detailov obrazu.\n" +"Vyššie hodnotu vedú k menej detailnému obrazu." #: src/settings_translation_file.cpp msgid "" @@ -3084,20 +3399,26 @@ msgid "" "cards.\n" "This only works with the OpenGL video backend." msgstr "" +"Shadery umožňujú pokročilé vizuálne efekty a na niektorých grafických " +"kartách\n" +"môžu zvýšiť výkon.\n" +"Toto funguje len s OpenGL." #: src/settings_translation_file.cpp msgid "Shader path" -msgstr "" +msgstr "Cesta k shaderom" #: src/settings_translation_file.cpp msgid "" "Path to shader directory. If no path is defined, default location will be " "used." msgstr "" +"Cesta do adresára so shadermi. Ak nie je definovaná, použije sa predvolená " +"lokácia." #: src/settings_translation_file.cpp msgid "Filmic tone mapping" -msgstr "" +msgstr "Filmový tone mapping" #: src/settings_translation_file.cpp msgid "" @@ -3106,10 +3427,14 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" +"Povolí Hablov 'Uncharted 2' filmový tone mapping.\n" +"Simuluje farebnú krivku fotografického filmu a ako sa približuje\n" +"vzhľadu obrázku s veľkým dynamickým rozsahom. Stredový kontrast je mierne\n" +"zlepšený, nasvietenie a tiene sú postupne zhustené." #: src/settings_translation_file.cpp msgid "Bumpmapping" -msgstr "" +msgstr "Bumpmapping" #: src/settings_translation_file.cpp msgid "" @@ -3118,96 +3443,110 @@ msgid "" "or need to be auto-generated.\n" "Requires shaders to be enabled." msgstr "" +"Povolí bumpmapping pre textúry. Normálové mapy musia byť dodané v balíčku " +"textúr.\n" +"alebo musia byť automaticky generované.\n" +"Vyžaduje aby boli shadery povolené." #: src/settings_translation_file.cpp msgid "Generate normalmaps" -msgstr "" +msgstr "Generuj normálové mapy" #: src/settings_translation_file.cpp msgid "" "Enables on the fly normalmap generation (Emboss effect).\n" "Requires bumpmapping to be enabled." msgstr "" +"Povolí generovanie normálových máp za behu (efekt reliéfu).\n" +"Požaduje aby bol povolený bumpmapping." #: src/settings_translation_file.cpp msgid "Normalmaps strength" -msgstr "" +msgstr "Intenzita normálových máp" #: src/settings_translation_file.cpp msgid "Strength of generated normalmaps." -msgstr "" +msgstr "Intenzita generovaných normálových máp." #: src/settings_translation_file.cpp msgid "Normalmaps sampling" -msgstr "" +msgstr "Vzorkovanie normálových máp" #: src/settings_translation_file.cpp msgid "" "Defines sampling step of texture.\n" "A higher value results in smoother normal maps." msgstr "" +"Definuje vzorkovací krok pre textúry.\n" +"Vyššia hodnota vedie k jemnejším normálovým mapám." #: src/settings_translation_file.cpp msgid "Parallax occlusion" -msgstr "" +msgstr "Parallax occlusion" #: src/settings_translation_file.cpp msgid "" "Enables parallax occlusion mapping.\n" "Requires shaders to be enabled." msgstr "" +"Povolí parallax occlusion mapping.\n" +"Požaduje aby boli povolené shadery." #: src/settings_translation_file.cpp msgid "Parallax occlusion mode" -msgstr "" +msgstr "Režim parallax occlusion" #: src/settings_translation_file.cpp msgid "" "0 = parallax occlusion with slope information (faster).\n" "1 = relief mapping (slower, more accurate)." msgstr "" +"0 = parallax occlusion s informácia o sklone (rýchlejšie).\n" +"1 = mapovanie reliéfu (pomalšie, presnejšie)." #: src/settings_translation_file.cpp msgid "Parallax occlusion iterations" -msgstr "" +msgstr "Opakovania parallax occlusion" #: src/settings_translation_file.cpp msgid "Number of parallax occlusion iterations." -msgstr "" +msgstr "Počet opakovaní výpočtu parallax occlusion." #: src/settings_translation_file.cpp msgid "Parallax occlusion scale" -msgstr "" +msgstr "Mierka parallax occlusion" #: src/settings_translation_file.cpp msgid "Overall scale of parallax occlusion effect." -msgstr "" +msgstr "Celková mierka parallax occlusion efektu." #: src/settings_translation_file.cpp msgid "Parallax occlusion bias" -msgstr "" +msgstr "Skreslenie parallax occlusion" #: src/settings_translation_file.cpp msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" +msgstr "Celkové skreslenie parallax occlusion efektu, obvykle mierka/2." #: src/settings_translation_file.cpp msgid "Waving Nodes" -msgstr "" +msgstr "Vlniace sa bloky" #: src/settings_translation_file.cpp msgid "Waving liquids" -msgstr "" +msgstr "Vlniace sa tekutiny" #: src/settings_translation_file.cpp msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" +"Nastav true pre povolenie vlniacich sa tekutín (ako napr. voda).\n" +"Požaduje aby boli povolené shadery." #: src/settings_translation_file.cpp msgid "Waving liquids wave height" -msgstr "" +msgstr "Výška vlnenia sa tekutín" #: src/settings_translation_file.cpp msgid "" @@ -3217,20 +3556,27 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" +"Maximálna výška povrchu vlniacich sa tekutín.\n" +"4.0 = Výška vlny sú dva bloky.\n" +"0.0 = Vlna sa vôbec nehýbe.\n" +"Štandardná hodnota je 1.0 (1/2 bloku).\n" +"Požaduje, aby boli povolené vlniace sa tekutiny." #: src/settings_translation_file.cpp msgid "Waving liquids wavelength" -msgstr "" +msgstr "Vlnová dĺžka vlniacich sa tekutín" #: src/settings_translation_file.cpp msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" +"Dĺžka vĺn tekutín.\n" +"Požaduje, aby boli povolené vlniace sa tekutiny." #: src/settings_translation_file.cpp msgid "Waving liquids wave speed" -msgstr "" +msgstr "Rýchlosť vlny tekutín" #: src/settings_translation_file.cpp msgid "" @@ -3238,62 +3584,73 @@ msgid "" "If negative, liquid waves will move backwards.\n" "Requires waving liquids to be enabled." msgstr "" +"Ako rýchlo sa budú pohybovať vlny tekutín. Vyššia hodnota = rýchlejšie.\n" +"Ak je záporná, tekutina sa bude pohybovať naspäť.\n" +"Požaduje, aby boli povolené vlniace sa tekutiny." #: src/settings_translation_file.cpp msgid "Waving leaves" -msgstr "" +msgstr "Vlniace sa listy" #: src/settings_translation_file.cpp msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." msgstr "" +"Nastav true pre povolenie vlniacich sa listov.\n" +"Požaduje aby boli povolené shadery." #: src/settings_translation_file.cpp msgid "Waving plants" -msgstr "" +msgstr "Vlniace sa rastliny" #: src/settings_translation_file.cpp msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." msgstr "" +"Nastav true pre povolenie vlniacich sa rastlín.\n" +"Požaduje aby boli povolené shadery." #: src/settings_translation_file.cpp msgid "Advanced" -msgstr "" +msgstr "Pokročilé" #: src/settings_translation_file.cpp msgid "Arm inertia" -msgstr "" +msgstr "Zotrvačnosť ruky" #: src/settings_translation_file.cpp msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" +"Zotrvačnosť ruky, vytvára realistickejší pohyb ruky\n" +"pri pohybe kamery." #: src/settings_translation_file.cpp msgid "Maximum FPS" -msgstr "" +msgstr "Maximálne FPS" #: src/settings_translation_file.cpp msgid "" "If FPS would go higher than this, limit it by sleeping\n" "to not waste CPU power for no benefit." msgstr "" +"Ak by malo byt FPS vyššie, bude obmedzené, aby\n" +"sa bezvýznamne, bez úžitku neplytvalo výkonom CPU." #: src/settings_translation_file.cpp msgid "FPS in pause menu" -msgstr "" +msgstr "FPS v menu pozastavenia hry" #: src/settings_translation_file.cpp msgid "Maximum FPS when game is paused." -msgstr "" +msgstr "Maximálne FPS, ak je hra pozastavená." #: src/settings_translation_file.cpp msgid "Pause on lost window focus" -msgstr "" +msgstr "Pozastav hru, pri strate zamerania okna" #: src/settings_translation_file.cpp msgid "" @@ -3301,18 +3658,20 @@ msgid "" "formspec is\n" "open." msgstr "" +"Otvorí menu pozastavenia, ak aktuálne okno hry nie je vybrané.\n" +"Nepozastaví sa ak je otvorený formspec." #: src/settings_translation_file.cpp msgid "Viewing range" -msgstr "" +msgstr "Vzdialenosť dohľadu" #: src/settings_translation_file.cpp msgid "View distance in nodes." -msgstr "" +msgstr "Vzdialenosť dohľadu v blokoch." #: src/settings_translation_file.cpp msgid "Near plane" -msgstr "" +msgstr "Blízkosť roviny" #: src/settings_translation_file.cpp msgid "" @@ -3321,66 +3680,70 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"Vzdialenosť kamery 'blízko orezanej roviny' v blokoch, medzi 0 a 0.25\n" +"Funguje len na GLES platformách. Väčšina toto nepotrebuje meniť.\n" +"Zvýšenie môže zredukovať artefakty na slabších GPU.\n" +"0.1 = Štandardná hodnota, 0.25 = Dobrá hodnota pre slabé tablety." #: src/settings_translation_file.cpp msgid "Screen width" -msgstr "" +msgstr "Šírka obrazovky" #: src/settings_translation_file.cpp msgid "Width component of the initial window size." -msgstr "" +msgstr "Šírka okna po spustení." #: src/settings_translation_file.cpp msgid "Screen height" -msgstr "" +msgstr "Výška obrazovky" #: src/settings_translation_file.cpp msgid "Height component of the initial window size." -msgstr "" +msgstr "Výška okna po spustení." #: src/settings_translation_file.cpp msgid "Autosave screen size" -msgstr "" +msgstr "Pamätať si veľkosť obrazovky" #: src/settings_translation_file.cpp msgid "Save window size automatically when modified." -msgstr "" +msgstr "Automaticky ulož veľkosť okna po úprave." #: src/settings_translation_file.cpp msgid "Full screen" -msgstr "" +msgstr "Celá obrazovka" #: src/settings_translation_file.cpp msgid "Fullscreen mode." -msgstr "" +msgstr "Režim celej obrazovky." #: src/settings_translation_file.cpp msgid "Full screen BPP" -msgstr "" +msgstr "BPP v režime celej obrazovky" #: src/settings_translation_file.cpp msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" +msgstr "Počet bitov na pixel (farebná hĺbka) v režime celej obrazovky." #: src/settings_translation_file.cpp msgid "VSync" -msgstr "" +msgstr "VSync" #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." -msgstr "" +msgstr "Vertikálna synchronizácia obrazovky." #: src/settings_translation_file.cpp msgid "Field of view" -msgstr "" +msgstr "Zorné pole" #: src/settings_translation_file.cpp msgid "Field of view in degrees." -msgstr "" +msgstr "Zorné pole v stupňoch." #: src/settings_translation_file.cpp msgid "Light curve gamma" -msgstr "" +msgstr "Svetelná gamma krivka" #: src/settings_translation_file.cpp msgid "" @@ -3390,30 +3753,39 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" +"Zmení svetelnú krivku aplikovaním 'gamma korekcie'.\n" +"Vyššie hodnoty robia stredné a nižšie tóny svetlejšími.\n" +"Hodnota '1.0' ponechá svetelnú krivku nezmenenú.\n" +"Toto má vplyv len na denné a umelé svetlo,\n" +"ma len veľmi malý vplyv na prirodzené nočné svetlo." #: src/settings_translation_file.cpp msgid "Light curve low gradient" -msgstr "" +msgstr "Spodný gradient svetelnej krivky" #: src/settings_translation_file.cpp msgid "" "Gradient of light curve at minimum light level.\n" "Controls the contrast of the lowest light levels." msgstr "" +"Gradient svetelnej krivky na minimálnych úrovniach svetlosti.\n" +"Upravuje kontrast najnižších úrovni svetlosti." #: src/settings_translation_file.cpp msgid "Light curve high gradient" -msgstr "" +msgstr "Horný gradient svetelnej krivky" #: src/settings_translation_file.cpp msgid "" "Gradient of light curve at maximum light level.\n" "Controls the contrast of the highest light levels." msgstr "" +"Gradient svetelnej krivky na maximálnych úrovniach svetlosti.\n" +"Upravuje kontrast najvyšších úrovni svetlosti." #: src/settings_translation_file.cpp msgid "Light curve boost" -msgstr "" +msgstr "Zosilnenie svetelnej krivky" #: src/settings_translation_file.cpp msgid "" @@ -3421,20 +3793,25 @@ msgid "" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" +"Sila zosilnenia svetelnej krivky.\n" +"Tri 'zosilňujúce' parametre definujú ktorý rozsah\n" +"svetelnej krivky je zosilnený v jasu." #: src/settings_translation_file.cpp msgid "Light curve boost center" -msgstr "" +msgstr "Stred zosilnenia svetelnej krivky" #: src/settings_translation_file.cpp msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"Centrum rozsahu zosilnenia svetelnej krivky.\n" +"Kde 0.0 je minimálna úroveň, 1.0 je maximálna úroveň ." #: src/settings_translation_file.cpp msgid "Light curve boost spread" -msgstr "" +msgstr "Rozptyl zosilnenia svetelnej krivky" #: src/settings_translation_file.cpp msgid "" @@ -3442,18 +3819,21 @@ msgid "" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" +"Rozptyl zosilnenia svetelnej krivky.\n" +"Určuje šírku rozsahu , ktorý bude zosilnený.\n" +"Štandardné gausovo rozdelenie odchýlky svetelnej krivky." #: src/settings_translation_file.cpp msgid "Texture path" -msgstr "" +msgstr "Cesta k textúram" #: src/settings_translation_file.cpp msgid "Path to texture directory. All textures are first searched from here." -msgstr "" +msgstr "Cesta do adresára s textúrami. Všetky textúry sú najprv hľadané tu." #: src/settings_translation_file.cpp msgid "Video driver" -msgstr "" +msgstr "Grafický ovládač" #: src/settings_translation_file.cpp msgid "" @@ -3464,10 +3844,16 @@ msgid "" "On other platforms, OpenGL is recommended, and it’s the only driver with\n" "shader support currently." msgstr "" +"Renderovací back-end pre Irrlicht.\n" +"Po zmene je vyžadovaný reštart.\n" +"Poznámka: Na Androidw, ak si nie si istý, ponechaj OGLES1! Aplikácia by " +"nemusela naštartovať.\n" +"Na iných platformách, sa odporúča OpenGL, a je to aktuálne jediný ovládač\n" +"s podporou shaderov." #: src/settings_translation_file.cpp msgid "Cloud radius" -msgstr "" +msgstr "Polomer mrakov" #: src/settings_translation_file.cpp msgid "" @@ -3475,30 +3861,36 @@ msgid "" "Values larger than 26 will start to produce sharp cutoffs at cloud area " "corners." msgstr "" +"Polomer oblasti mrakov zadaný v počtoch 64 blokov na štvorcový mrak.\n" +"Hodnoty vyššie než 26 budú produkovať ostré hranice na rohoch oblasti mrakov." #: src/settings_translation_file.cpp msgid "View bobbing factor" -msgstr "" +msgstr "Faktor pohupovania sa" #: src/settings_translation_file.cpp msgid "" "Enable view bobbing and amount of view bobbing.\n" "For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." msgstr "" +"Povolí pohupovanie sa a hodnotu pohupovania.\n" +"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné." #: src/settings_translation_file.cpp msgid "Fall bobbing factor" -msgstr "" +msgstr "Faktor pohupovania sa pri pádu" #: src/settings_translation_file.cpp msgid "" "Multiplier for fall bobbing.\n" "For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." msgstr "" +"Násobiteľ pre pohupovanie sa pri pádu.\n" +"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné." #: src/settings_translation_file.cpp msgid "3D mode" -msgstr "" +msgstr "3D režim" #: src/settings_translation_file.cpp msgid "" @@ -3513,158 +3905,180 @@ msgid "" "- pageflip: quadbuffer based 3d.\n" "Note that the interlaced mode requires shaders to be enabled." msgstr "" +"Podpora 3D.\n" +"Aktuálne sú podporované:\n" +"- none: žiaden 3D režim.\n" +"- anaglyph: tyrkysovo/purpurová farba 3D.\n" +"- interlaced: podpora polarizácie založenej na párnych/nepárnych riadkoch " +"obrazu.\n" +"- topbottom: rozdelená obrazovka hore/dole.\n" +"- sidebyside: rozdelená obrazovka vedľa seba.\n" +"- crossview: 3D prekrížených očí (Cross-eyed)\n" +"- pageflip: 3D založené na quadbuffer\n" +"Režim interlaced požaduje, aby boli povolene shadery." #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "3D režim stupeň paralaxy" #: src/settings_translation_file.cpp msgid "Strength of 3D mode parallax." -msgstr "" +msgstr "Stupeň paralaxy 3D režimu." #: src/settings_translation_file.cpp msgid "Console height" -msgstr "" +msgstr "Výška konzoly" #: src/settings_translation_file.cpp msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" +msgstr "Výška komunikačnej konzoly v hre, medzi 0.1 (10%) a 1.0 (100%)." #: src/settings_translation_file.cpp msgid "Console color" -msgstr "" +msgstr "Farba konzoly" #: src/settings_translation_file.cpp msgid "In-game chat console background color (R,G,B)." -msgstr "" +msgstr "Pozadie (R,G,B) komunikačnej konzoly v hre." #: src/settings_translation_file.cpp msgid "Console alpha" -msgstr "" +msgstr "Priehľadnosť konzoly" #: src/settings_translation_file.cpp msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" +msgstr "Priehľadnosť pozadia konzoly v hre (nepriehľadnosť, medzi 0 a 255)." #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" -msgstr "" +msgstr "Formspec Celo-obrazovková nepriehľadnosť pozadia" #: src/settings_translation_file.cpp msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" +"Nepriehľadnosť pozadia (0-255) v režime celej obrazovky v definícii " +"formulára (Formspec)." #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" -msgstr "" +msgstr "Formspec Celo-obrazovková farba pozadia" #: src/settings_translation_file.cpp msgid "Formspec full-screen background color (R,G,B)." msgstr "" +"Farba pozadia (R,G,B) v režime celej obrazovky v definícii formulára " +"(Formspec)." #: src/settings_translation_file.cpp msgid "Formspec Default Background Opacity" -msgstr "" +msgstr "Formspec štandardná nepriehľadnosť pozadia" #: src/settings_translation_file.cpp msgid "Formspec default background opacity (between 0 and 255)." msgstr "" +"Štandardná nepriehľadnosť pozadia (medzi 0 a 255) v definícii formulára " +"(Formspec)." #: src/settings_translation_file.cpp msgid "Formspec Default Background Color" -msgstr "" +msgstr "Formspec štandardná farba pozadia" #: src/settings_translation_file.cpp msgid "Formspec default background color (R,G,B)." -msgstr "" +msgstr "Štandardná farba pozadia (R,G,B) v definícii formulára (Formspec)." #: src/settings_translation_file.cpp msgid "Selection box color" -msgstr "" +msgstr "Farba obrysu bloku" #: src/settings_translation_file.cpp msgid "Selection box border color (R,G,B)." -msgstr "" +msgstr "Farba obrysu bloku (R,G,B)." #: src/settings_translation_file.cpp msgid "Selection box width" -msgstr "" +msgstr "Šírka obrysu bloku" #: src/settings_translation_file.cpp msgid "Width of the selection box lines around nodes." -msgstr "" +msgstr "Šírka línií obrysu bloku." #: src/settings_translation_file.cpp msgid "Crosshair color" -msgstr "" +msgstr "Farba zameriavača" #: src/settings_translation_file.cpp msgid "Crosshair color (R,G,B)." -msgstr "" +msgstr "Farba zameriavača (R,G,B)." #: src/settings_translation_file.cpp msgid "Crosshair alpha" -msgstr "" +msgstr "Priehľadnosť zameriavača" #: src/settings_translation_file.cpp msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" +msgstr "Priehľadnosť zameriavača (nepriehľadnosť, medzi 0 a 255)." #: src/settings_translation_file.cpp msgid "Recent Chat Messages" -msgstr "" +msgstr "Posledné správy v komunikácií" #: src/settings_translation_file.cpp msgid "Maximum number of recent chat messages to show" -msgstr "" +msgstr "Maximálny počet nedávnych správ v komunikácií, ktoré budú zobrazované" #: src/settings_translation_file.cpp msgid "Desynchronize block animation" -msgstr "" +msgstr "Nesynchronizuj animáciu blokov" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" +msgstr "Či sa nemá animácia textúry bloku synchronizovať." #: src/settings_translation_file.cpp msgid "Maximum hotbar width" -msgstr "" +msgstr "Maximálna šírka opaska" #: src/settings_translation_file.cpp msgid "" "Maximum proportion of current window to be used for hotbar.\n" "Useful if there's something to be displayed right or left of hotbar." msgstr "" +"Maximálny pomer aktuálneho okna, ktorý sa použije pre opasok.\n" +"Užitočné, ak treba zobraziť niečo vpravo, alebo vľavo od opaska." #: src/settings_translation_file.cpp msgid "HUD scale factor" -msgstr "" +msgstr "Mierka HUD" #: src/settings_translation_file.cpp msgid "Modifies the size of the hudbar elements." -msgstr "" +msgstr "Upraví veľkosť elementov v užívateľskom rozhraní." #: src/settings_translation_file.cpp msgid "Mesh cache" -msgstr "" +msgstr "Medzipamäť Mesh" #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." -msgstr "" +msgstr "Povolí ukladanie tvárou rotovaných Mesh objektov do medzipamäti." #: src/settings_translation_file.cpp msgid "Mapblock mesh generation delay" -msgstr "" +msgstr "Oneskorenie generovania Mesh blokov" #: src/settings_translation_file.cpp msgid "" "Delay between mesh updates on the client in ms. Increasing this will slow\n" "down the rate of mesh updates, thus reducing jitter on slower clients." msgstr "" +"Oneskorenie, kým sa Mesh aktualizuje na strane klienta v ms.\n" +"Zvýšenie spomalí množstvo aktualizácie Mesh objektov, teda zníži chvenie na " +"pomalších klientoch." #: src/settings_translation_file.cpp msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" +msgstr "Medzipamäť Mapblock Mesh generátora blokov v MB" #: src/settings_translation_file.cpp msgid "" @@ -3672,26 +4086,29 @@ msgid "" "increase the cache hit %, reducing the data being copied from the main\n" "thread, thus reducing jitter." msgstr "" +"Veľkosť medzipamäte blokov v Mesh generátoru.\n" +"Zvýšenie zvýši využitie medzipamäte %, zníži sa množstvo dát kopírovaných\n" +"z hlavnej vetvy a tým sa zníži chvenie." #: src/settings_translation_file.cpp msgid "Minimap" -msgstr "" +msgstr "Minimapa" #: src/settings_translation_file.cpp msgid "Enables minimap." -msgstr "" +msgstr "Povolí minimapu." #: src/settings_translation_file.cpp msgid "Round minimap" -msgstr "" +msgstr "Okrúhla minimapa" #: src/settings_translation_file.cpp msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" +msgstr "Tvar minimapy. Povolené = okrúhla, vypnuté = štvorcová." #: src/settings_translation_file.cpp msgid "Minimap scan height" -msgstr "" +msgstr "Minimapa výška skenovania" #: src/settings_translation_file.cpp msgid "" @@ -3699,19 +4116,23 @@ msgid "" "False = 128\n" "Usable to make minimap smoother on slower machines." msgstr "" +"Pravda = 256\n" +"Nepravda = 128\n" +"Užitočné pre plynulejšiu minimapu na pomalších strojoch." #: src/settings_translation_file.cpp msgid "Colored fog" -msgstr "" +msgstr "Farebná hmla" #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" +"Prispôsob farbu hmly a oblohy dennej dobe (svitanie/súmrak) a uhlu pohľadu." #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" -msgstr "" +msgstr "Ambient occlusion gamma" #: src/settings_translation_file.cpp msgid "" @@ -3720,34 +4141,38 @@ msgid "" "setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" "set to the nearest valid value." msgstr "" +"Úroveň tieňovania ambient-occlusion bloku (tmavosť).\n" +"Nižšia hodnota je tmavšie, vyššia svetlejšie.\n" +"Platý rozsah hodnôt je od 0.25 po 0.4 vrátane.\n" +"Ak je hodnota mimo rozsah, bude nastavená na najbližšiu platnú hodnotu." #: src/settings_translation_file.cpp msgid "Inventory items animations" -msgstr "" +msgstr "Animácia vecí v inventári" #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." -msgstr "" +msgstr "Povolí animáciu vecí v inventári." #: src/settings_translation_file.cpp msgid "Fog start" -msgstr "" +msgstr "Začiatok hmly" #: src/settings_translation_file.cpp msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" +msgstr "Zlomok viditeľnej vzdialenosti od ktorej začne byť vykresľovaná hmla" #: src/settings_translation_file.cpp msgid "Opaque liquids" -msgstr "" +msgstr "Nepriehľadné tekutiny" #: src/settings_translation_file.cpp msgid "Makes all liquids opaque" -msgstr "" +msgstr "Všetky tekutiny budú nepriehľadné" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "" +msgstr "Režim zarovnaných textúr podľa sveta" #: src/settings_translation_file.cpp msgid "" @@ -3758,10 +4183,16 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" +"Textúry na bloku môžu byť zarovnané buď podľa bloku, alebo sveta.\n" +"Kým prvý režim poslúži lepšie veciam ako sú stroje, nábytok, atď.,\n" +"tak s druhým režimom zapadnú schody a mikrobloky lepšie do svojho okolia.\n" +"Keďže je táto možnosť nová, nemusí byť použitá na starších serveroch,\n" +"toto nastavenie povolí jeho vynútenie pre určité typy blokov. Je potrebné\n" +"si uvedomiť, že táto funkcia je EXPERIMENTÁLNA a nemusí fungovať korektne." #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "" +msgstr "Režim automatickej zmeny mierky" #: src/settings_translation_file.cpp msgid "" @@ -3772,26 +4203,33 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" +"Textúry zarovnané podľa sveta môžu byť zväčšené aby pokryli niekoľko blokov." +"\n" +"Avšak server nemusí poslať mierku akú potrebuješ, obzvlášť ak používaš\n" +"špeciálne dizajnovaný balíček textúr; s týmto nastavením, sa klient pokúsi\n" +"určiť mierku automaticky na základe veľkosti textúry.\n" +"Viď. tiež texture_min_size.\n" +"Varovanie: Toto nastavenie je EXPERIMENTÁLNE!" #: src/settings_translation_file.cpp msgid "Show entity selection boxes" -msgstr "" +msgstr "Zobraz obrys bytosti" #: src/settings_translation_file.cpp msgid "Menus" -msgstr "" +msgstr "Menu" #: src/settings_translation_file.cpp msgid "Clouds in menu" -msgstr "" +msgstr "Mraky v menu" #: src/settings_translation_file.cpp msgid "Use a cloud animation for the main menu background." -msgstr "" +msgstr "Použi animáciu mrakov pre pozadie hlavného menu." #: src/settings_translation_file.cpp msgid "GUI scaling" -msgstr "" +msgstr "Mierka GUI" #: src/settings_translation_file.cpp msgid "" @@ -3801,10 +4239,15 @@ msgid "" "pixels when scaling down, at the cost of blurring some\n" "edge pixels when images are scaled by non-integer sizes." msgstr "" +"Zmeň mierku užívateľského rozhrania (GUI) podľa zadanej hodnoty.\n" +"Pre zmenu mierky GUI použi antialias filter podľa-najbližšieho-suseda.\n" +"Toto zjemní niektoré hrubé hrany a zmieša pixely pri zmenšení,\n" +"za cenu rozmazania niektorých okrajových pixelov ak sa mierka\n" +"obrázkov mení podľa neceločíselných hodnôt." #: src/settings_translation_file.cpp msgid "GUI scaling filter" -msgstr "" +msgstr "Filter mierky GUI" #: src/settings_translation_file.cpp msgid "" @@ -3812,10 +4255,13 @@ msgid "" "filtered in software, but some images are generated directly\n" "to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" +"Ake je gui_scaling_filter povolený, všetky GUI obrázky potrebujú byť\n" +"filtrované softvérom, ale niektoré obrázky sú generované priamo\n" +"pre hardvér (napr. render-to-texture pre bloky v inventári)." #: src/settings_translation_file.cpp msgid "GUI scaling filter txr2img" -msgstr "" +msgstr "Filter mierky GUI txr2img" #: src/settings_translation_file.cpp msgid "" @@ -3824,26 +4270,30 @@ msgid "" "to the old scaling method, for video drivers that don't\n" "properly support downloading textures back from hardware." msgstr "" +"Ake je gui_scaling_filter_txr2img povolený, nakopíruj tieto obrázky\n" +"z hardvéru do softvéru pre zmenu mierky. Ak za vypnutý, vráť sa\n" +"k starej metóde zmeny mierky, pre grafické ovládače, ktoré dostatočne\n" +"nepodporujú sťahovanie textúr z hardvéru." #: src/settings_translation_file.cpp msgid "Tooltip delay" -msgstr "" +msgstr "Oneskorenie popisku" #: src/settings_translation_file.cpp msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" +msgstr "Oneskorenie zobrazenia popisku, zadané v milisekundách." #: src/settings_translation_file.cpp msgid "Append item name" -msgstr "" +msgstr "Pridaj názov položky/veci" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." -msgstr "" +msgstr "Pridaj názov veci do popisku." #: src/settings_translation_file.cpp msgid "FreeType fonts" -msgstr "" +msgstr "FreeType písma" #: src/settings_translation_file.cpp msgid "" @@ -3851,45 +4301,50 @@ msgid "" "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +"Aby boli FreeType písma použité, je nutné aby bola podpora FreeType " +"zakompilovaná.\n" +"Ak je zakázané, budú použité bitmapové a XML vektorové písma." #: src/settings_translation_file.cpp msgid "Font bold by default" -msgstr "" +msgstr "Štandardne tučné písmo" #: src/settings_translation_file.cpp msgid "Font italic by default" -msgstr "" +msgstr "Štandardne šikmé písmo" #: src/settings_translation_file.cpp msgid "Font shadow" -msgstr "" +msgstr "Tieň písma" #: src/settings_translation_file.cpp msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." msgstr "" +"Posun tieňa (v pixeloch) štandardného písma. Ak je 0, tak tieň nebude " +"vykreslený." #: src/settings_translation_file.cpp msgid "Font shadow alpha" -msgstr "" +msgstr "Priehľadnosť tieňa písma" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" +msgstr "Nepriehľadnosť tieňa za štandardným písmom, medzi 0 a 255." #: src/settings_translation_file.cpp msgid "Font size" -msgstr "" +msgstr "Veľkosť písma" #: src/settings_translation_file.cpp msgid "Font size of the default font in point (pt)." -msgstr "" +msgstr "Veľkosť písma štandardného písma v bodoch (pt)." #: src/settings_translation_file.cpp msgid "Regular font path" -msgstr "" +msgstr "Štandardná cesta k písmam" #: src/settings_translation_file.cpp msgid "" @@ -3898,30 +4353,35 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "The fallback font will be used if the font cannot be loaded." msgstr "" +"Cesta k štandardnému písmu.\n" +"Ak je povolené nastavenie “freetype”:Musí to byť TrueType písmo.\n" +"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " +"vektorové písmo.\n" +"Bude použité záložné písmo, ak nebude možné písmo nahrať." #: src/settings_translation_file.cpp msgid "Bold font path" -msgstr "" +msgstr "Cesta k tučnému písmu" #: src/settings_translation_file.cpp msgid "Italic font path" -msgstr "" +msgstr "Cesta k šikmému písmu" #: src/settings_translation_file.cpp msgid "Bold and italic font path" -msgstr "" +msgstr "Cesta k tučnému šikmému písmu" #: src/settings_translation_file.cpp msgid "Monospace font size" -msgstr "" +msgstr "Veľkosť písmo s pevnou šírkou" #: src/settings_translation_file.cpp msgid "Font size of the monospace font in point (pt)." -msgstr "" +msgstr "Veľkosť písma s pevnou šírkou v bodoch (pt)." #: src/settings_translation_file.cpp msgid "Monospace font path" -msgstr "" +msgstr "Cesta k písmu s pevnou šírkou" #: src/settings_translation_file.cpp msgid "" @@ -3930,49 +4390,56 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "This font is used for e.g. the console and profiler screen." msgstr "" +"Cesta k písmu s pevnou šírkou.\n" +"Ak je povolené nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " +"vektorové písmo.\n" +"Toto písmo je použité pre napr. konzolu a okno profilera." #: src/settings_translation_file.cpp msgid "Bold monospace font path" -msgstr "" +msgstr "Cesta k tučnému písmu s pevnou šírkou" #: src/settings_translation_file.cpp msgid "Italic monospace font path" -msgstr "" +msgstr "Cesta k šikmému písmu s pevnou šírkou" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "" +msgstr "Cesta k tučnému šikmému písmu s pevnou šírkou" #: src/settings_translation_file.cpp msgid "Fallback font size" -msgstr "" +msgstr "Veľkosť záložného písma" #: src/settings_translation_file.cpp msgid "Font size of the fallback font in point (pt)." -msgstr "" +msgstr "Veľkosť písma záložného písma v bodoch (pt)." #: src/settings_translation_file.cpp msgid "Fallback font shadow" -msgstr "" +msgstr "Tieň záložného písma" #: src/settings_translation_file.cpp msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." msgstr "" +"Posun tieňa (v pixeloch) záložného písma. Ak je 0, tak tieň nebude " +"vykreslený." #: src/settings_translation_file.cpp msgid "Fallback font shadow alpha" -msgstr "" +msgstr "Priehľadnosť tieňa záložného fontu" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" +msgstr "Nepriehľadnosť tieňa za záložným písmom, medzi 0 a 255." #: src/settings_translation_file.cpp msgid "Fallback font path" -msgstr "" +msgstr "Cesta k záložnému písmu" #: src/settings_translation_file.cpp msgid "" @@ -3982,38 +4449,50 @@ msgid "" "This font will be used for certain languages or if the default font is " "unavailable." msgstr "" +"Cesta k záložnému písmu.\n" +"Ak je povolené nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " +"vektorové písmo.\n" +"Toto písmo bude použité pre určité jazyky, alebo ak nie je štandardné písmo " +"k dispozícií." #: src/settings_translation_file.cpp msgid "Chat font size" -msgstr "" +msgstr "Veľkosť komunikačného písma" #: src/settings_translation_file.cpp msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Veľkosť písma aktuálneho komunikačného textu a príkazového riadku v bodoch " +"(pt).\n" +"Pri hodnote 0 bude použitá štandardná veľkosť písma." #: src/settings_translation_file.cpp msgid "Screenshot folder" -msgstr "" +msgstr "Adresár pre snímky obrazovky" #: src/settings_translation_file.cpp msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Cesta, kam sa budú ukladať snímky obrazovky. Môže to byť ako absolútna, tak " +"relatívna cesta.\n" +"Adresár bude vytvorený ak neexistuje." #: src/settings_translation_file.cpp msgid "Screenshot format" -msgstr "" +msgstr "Formát snímok obrazovky" #: src/settings_translation_file.cpp msgid "Format of screenshots." -msgstr "" +msgstr "Formát obrázkov snímok obrazovky." #: src/settings_translation_file.cpp msgid "Screenshot quality" -msgstr "" +msgstr "Kvalita snímok obrazovky" #: src/settings_translation_file.cpp msgid "" @@ -4021,20 +4500,25 @@ msgid "" "1 means worst quality; 100 means best quality.\n" "Use 0 for default quality." msgstr "" +"Kvalita snímok obrazovky. Používa sa len pre JPEG formát.\n" +"1 znamená najhoršiu kvalitu; 100 znamená najlepšiu kvalitu.\n" +"Použi 0 pre štandardnú kvalitu." #: src/settings_translation_file.cpp msgid "DPI" -msgstr "" +msgstr "DPI" #: src/settings_translation_file.cpp msgid "" "Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " "screens." msgstr "" +"Nastav dpi konfiguráciu podľa svojej obrazovky (nie pre X11/len pre Android) " +"napr. pre 4k obrazovky." #: src/settings_translation_file.cpp msgid "Enable console window" -msgstr "" +msgstr "Povoľ okno konzoly" #: src/settings_translation_file.cpp msgid "" @@ -4042,10 +4526,13 @@ msgid "" "background.\n" "Contains the same information as the file debug.txt (default name)." msgstr "" +"Len pre systémy s Windows: Spusti Minetest s oknom príkazovej riadky na " +"pozadí.\n" +"Obsahuje tie isté informácie ako súbor debug.txt (štandardný názov)." #: src/settings_translation_file.cpp msgid "Sound" -msgstr "" +msgstr "Zvuk" #: src/settings_translation_file.cpp msgid "" @@ -4054,20 +4541,26 @@ msgid "" "sound controls will be non-functional.\n" "Changing this setting requires a restart." msgstr "" +"Povolí zvukový systém.\n" +"Ak je zakázaný, tak kompletne zakáže všetky zvuky\n" +"a ovládanie hlasitosti v hre bude nefunkčné.\n" +"Zmena tohto nastavenia si vyžaduje reštart hry." #: src/settings_translation_file.cpp msgid "Volume" -msgstr "" +msgstr "Hlasitosť" #: src/settings_translation_file.cpp msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" +"Hlasitosť všetkých zvukov.\n" +"Požaduje aby bol zvukový systém povolený." #: src/settings_translation_file.cpp msgid "Mute sound" -msgstr "" +msgstr "Stíš hlasitosť" #: src/settings_translation_file.cpp msgid "" @@ -4076,18 +4569,22 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" +"Vypnutie zvukov. Zapnúť zvuky môžeš kedykoľvek, pokiaľ\n" +"nie je zakázaný zvukový systém (enable_sound=false).\n" +"V hre môžeš zapnúť/vypnúť zvuk tlačidlom pre stíšenie zvuku, alebo\n" +"pozastavením hry." #: src/settings_translation_file.cpp msgid "Client" -msgstr "" +msgstr "Klient" #: src/settings_translation_file.cpp msgid "Network" -msgstr "" +msgstr "Sieť" #: src/settings_translation_file.cpp msgid "Server address" -msgstr "" +msgstr "Adresa servera" #: src/settings_translation_file.cpp msgid "" @@ -4095,20 +4592,25 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"Adresa pre pripojenie sa.\n" +"Ponechaj prázdne pre spustenie lokálneho servera.\n" +"Adresné políčko v hlavnom menu prepíše toto nastavenie." #: src/settings_translation_file.cpp msgid "Remote port" -msgstr "" +msgstr "Vzdialený port" #: src/settings_translation_file.cpp msgid "" "Port to connect to (UDP).\n" "Note that the port field in the main menu overrides this setting." msgstr "" +"Port pre pripojenie sa (UDP).\n" +"Políčko pre nastavenie Portu v hlavnom menu prepíše toto nastavenie." #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Odpočúvacia adresa Promethea" #: src/settings_translation_file.cpp msgid "" @@ -4117,18 +4619,22 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Odpočúvacia adresa Promethea.\n" +"Ak je minetest skompilovaný s nastaveným ENABLE_PROMETHEUS,\n" +"povoľ odpočúvanie metriky pre Prometheus na zadanej adrese.\n" +"Metrika môže byť získaná na http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Saving map received from server" -msgstr "" +msgstr "Ukladanie mapy získanej zo servera" #: src/settings_translation_file.cpp msgid "Save the map received by the client on disk." -msgstr "" +msgstr "Ulož mapu získanú klientom na disk." #: src/settings_translation_file.cpp msgid "Connect to external media server" -msgstr "" +msgstr "Pripoj sa na externý média server" #: src/settings_translation_file.cpp msgid "" @@ -4137,28 +4643,35 @@ msgid "" "textures)\n" "when connecting to the server." msgstr "" +"Povoľ použitie vzdialeného média servera (ak je poskytovaný serverom).\n" +"Vzdialený server poskytuje výrazne rýchlejší spôsob pre sťahovanie médií (" +"napr. textúr)\n" +"pri pripojení na server." #: src/settings_translation_file.cpp msgid "Client modding" -msgstr "" +msgstr "Úpravy (modding) cez klienta" #: src/settings_translation_file.cpp msgid "" "Enable Lua modding support on client.\n" "This support is experimental and API can change." msgstr "" +"Povoľ podporu úprav na klientovi pomocou Lua skriptov.\n" +"Táto podpora je experimentálna a API sa môže zmeniť." #: src/settings_translation_file.cpp msgid "Serverlist URL" -msgstr "" +msgstr "URL zoznamu serverov" #: src/settings_translation_file.cpp msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "" +"Adresa (URL) k zoznamu serverov, ktorý sa zobrazuje v záložke Multiplayer." #: src/settings_translation_file.cpp msgid "Serverlist file" -msgstr "" +msgstr "Súbor so zoznamom serverov" #: src/settings_translation_file.cpp msgid "" @@ -4166,132 +4679,149 @@ msgid "" "the\n" "Multiplayer Tab." msgstr "" +"Súbor v client/serverlist ktorý obsahuje obľúbené servery, ktoré\n" +"sa zobrazujú v záložke Multiplayer." #: src/settings_translation_file.cpp msgid "Maximum size of the out chat queue" -msgstr "" +msgstr "Maximálna veľkosť výstupnej komunikačnej fronty" #: src/settings_translation_file.cpp msgid "" "Maximum size of the out chat queue.\n" "0 to disable queueing and -1 to make the queue size unlimited." msgstr "" +"Maximálna veľkosť výstupnej komunikačnej fronty.\n" +"0 pre zakázanie fronty a -1 pre neobmedzenú frontu." #: src/settings_translation_file.cpp msgid "Enable register confirmation" -msgstr "" +msgstr "Povoľ potvrdenie registrácie" #: src/settings_translation_file.cpp msgid "" "Enable register confirmation when connecting to server.\n" "If disabled, new account will be registered automatically." msgstr "" +"Aktivuj potvrdzovanie registrácie pri pripájaní sa k serveru.\n" +"Ak je zakázané, nové konto sa zaregistruje automaticky." #: src/settings_translation_file.cpp msgid "Mapblock unload timeout" -msgstr "" +msgstr "Čas odstránenia bloku mapy" #: src/settings_translation_file.cpp msgid "Timeout for client to remove unused map data from memory." msgstr "" +"Časový limit na klientovi, pre odstránenie nepoužívaných mapových dát z " +"pamäte." #: src/settings_translation_file.cpp msgid "Mapblock limit" -msgstr "" +msgstr "Limit blokov mapy" #: src/settings_translation_file.cpp msgid "" "Maximum number of mapblocks for client to be kept in memory.\n" "Set to -1 for unlimited amount." msgstr "" +"Maximálny počet blokov u klienta, ktoré ostávajú v pamäti.\n" +"Nastav -1 pre neobmedzené množstvo." #: src/settings_translation_file.cpp msgid "Show debug info" -msgstr "" +msgstr "Zobraz ladiace informácie" #: src/settings_translation_file.cpp msgid "" "Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" +msgstr "Zobrazenie ladiaceho okna na klientovi (má rovnaký efekt ako F5)." #: src/settings_translation_file.cpp msgid "Server / Singleplayer" -msgstr "" +msgstr "Server / Hra pre jedného hráča" #: src/settings_translation_file.cpp msgid "Server name" -msgstr "" +msgstr "Meno servera" #: src/settings_translation_file.cpp msgid "" "Name of the server, to be displayed when players join and in the serverlist." msgstr "" +"Zobrazované meno servera, keď sa hráč na server pripojí a v zozname serverov." #: src/settings_translation_file.cpp msgid "Server description" -msgstr "" +msgstr "Popis servera" #: src/settings_translation_file.cpp msgid "" "Description of server, to be displayed when players join and in the " "serverlist." msgstr "" +"Zobrazovaný popis servera, keď sa hráč na server pripojí a v zozname " +"serverov." #: src/settings_translation_file.cpp msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" +msgstr "Doménové meno servera, ktoré bude zobrazené v zozname serverov." #: src/settings_translation_file.cpp msgid "Server URL" -msgstr "" +msgstr "URL servera" #: src/settings_translation_file.cpp msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" +msgstr "Domovská stránka servera, ktorá bude zobrazená v zozname serverov." #: src/settings_translation_file.cpp msgid "Announce server" -msgstr "" +msgstr "Zverejni server" #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "" +msgstr "Automaticky zápis do zoznamu serverov." #: src/settings_translation_file.cpp msgid "Announce to this serverlist." -msgstr "" +msgstr "Zverejni v zozname serverov." #: src/settings_translation_file.cpp msgid "Strip color codes" -msgstr "" +msgstr "Odstráň farby" #: src/settings_translation_file.cpp msgid "" "Remove color codes from incoming chat messages\n" "Use this to stop players from being able to use color in their messages" msgstr "" +"Odstráň farby z prichádzajúcich komunikačných správ\n" +"Použi pre zabránenie používaniu farieb hráčmi v ich správach" #: src/settings_translation_file.cpp msgid "Server port" -msgstr "" +msgstr "Port servera" #: src/settings_translation_file.cpp msgid "" "Network port to listen (UDP).\n" "This value will be overridden when starting from the main menu." msgstr "" +"Sieťový port (UDP).\n" +"Táto hodnota bude prepísaná pri spustení z hlavného menu." #: src/settings_translation_file.cpp msgid "Bind address" -msgstr "" +msgstr "Spájacia adresa" #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." -msgstr "" +msgstr "Sieťové rozhranie, na ktorom server načúva." #: src/settings_translation_file.cpp msgid "Strict protocol checking" -msgstr "" +msgstr "Prísna kontrola protokolu" #: src/settings_translation_file.cpp msgid "" @@ -6315,15 +6845,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Online Content Repository" -msgstr "" +msgstr "Úložisko doplnkov na internete" #: src/settings_translation_file.cpp msgid "ContentDB URL" -msgstr "" +msgstr "Cesta (URL) ku ContentDB" #: src/settings_translation_file.cpp msgid "The URL for the content repository" -msgstr "" +msgstr "Webová adresa (URL) k úložisku doplnkov" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" From 990380d81e298bb9ca475aa1f40e74980402d0e5 Mon Sep 17 00:00:00 2001 From: Niko Kivinen Date: Thu, 9 Jul 2020 08:13:00 +0000 Subject: [PATCH 375/624] Added translation using Weblate (Finnish) --- po/fi/minetest.po | 6325 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6325 insertions(+) create mode 100644 po/fi/minetest.po diff --git a/po/fi/minetest.po b/po/fi/minetest.po new file mode 100644 index 000000000..92086720a --- /dev/null +++ b/po/fi/minetest.po @@ -0,0 +1,6325 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the minetest package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: minetest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "" + +#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp +msgid "OK" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred in a Lua script:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred:" +msgstr "" + +#: builtin/mainmenu/common.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server supports protocol versions between $1 and $2. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server enforces protocol version $1. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We support protocol versions between version $1 and $2." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We only support protocol version $1." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Protocol version mismatch. " +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "World:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Mod:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No (optional) dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No hard dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No optional dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp +msgid "Save" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Find More Mods" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "enabled" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "All packages" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Games" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Mods" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back to Main Menu" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No results" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No packages could be retrieved" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Downloading..." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Uninstall" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caverns" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Very large caverns deep in the underground" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Sea level rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Mountains" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floatlands (experimental)" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floating landmasses in the sky" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Altitude chill" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Reduces heat with altitude" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Altitude dry" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Reduces humidity with altitude" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Humid rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Increases humidity around rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Vary river depth" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Low humidity and high heat causes shallow or dry rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Hills" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Lakes" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Additional terrain" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Generate non-fractal terrain: Oceans and underground" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Trees and jungle grass" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Flat terrain" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Mud flow" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Terrain surface erosion" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Temperate, Desert, Jungle, Tundra, Taiga" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Temperate, Desert, Jungle" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Temperate, Desert" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "You have no games installed." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caves" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Dungeons" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Decorations" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "" +"Structures appearing on the terrain (no effect on trees and jungle grass " +"created by v6)" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Structures appearing on the terrain, typically trees and plants" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Network of tunnels and caves" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biomes" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biome blending" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Smooth transition between biomes" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Mapgen-specific flags" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Warning: The Development Test is meant for developers." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "World name" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "A world named \"$1\" already exists" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "No game selected" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "Are you sure you want to delete \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua +#: src/client/keycode.cpp +msgid "Delete" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: failed to delete \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: invalid path \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_world.lua +msgid "Delete World \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Accept" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "" +"This modpack has an explicit name given in its modpack.conf which will " +"override any renaming here." +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "2D Noise" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Octaves" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Persistance" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Lacunarity" +msgstr "" + +#. ~ "defaults" is a noise parameter flag. +#. It describes the default processing options +#. for noise settings in main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "defaults" +msgstr "" + +#. ~ "eased" is a noise parameter flag. +#. It is used to make the map smoother and +#. can be enabled in noise settings in +#. main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "eased" +msgstr "" + +#. ~ "absvalue" is a noise parameter flag. +#. It is short for "absolute value". +#. It can be enabled in noise settings in +#. main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid integer." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select directory" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select file" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "< Back to Settings page" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 (Enabled)" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Failed to install $1 to $2" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to find a valid mod or modpack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find suitable folder name for modpack $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find real mod name for: $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: file: \"$1\"" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: Unsupported file type \"$1\" or broken archive" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 mods" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Installed Packages:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No package description available" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Rename" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No dependencies." +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Use Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Uninstall Package" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Active Contributors" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative Mode" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Announce Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name/Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Bind Address" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Play Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Start Game" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Address / Port" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Name / Password" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Connect" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Ping" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative mode" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Damage enabled" +msgstr "" + +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "PvP enabled" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Fancy Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Trilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "2x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "4x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "8x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Yes" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Connected Glass" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Antialiasing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Autosave Screen Size" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/client/game.cpp +msgid "Change Keys" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "All Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Touchthreshold: (px)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bump Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Tone Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Generate Normal Maps" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Plants" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Start Singleplayer" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Config mods" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Main" +msgstr "" + +#: src/client/client.cpp +msgid "Connection timed out." +msgstr "" + +#: src/client/client.cpp +msgid "Loading textures..." +msgstr "" + +#: src/client/client.cpp +msgid "Rebuilding shaders..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Connection error (timed out?)" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Could not find or load game \"" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Invalid gamespec." +msgstr "" + +#. ~ DO NOT TRANSLATE THIS LITERALLY! +#. This is a special string. Put either "no" or "yes" +#. into the translation field (literally). +#. Choose "yes" if the language requires use of the fallback +#. font, "no" otherwise. +#. The fallback font is (normally) required for languages with +#. non-Latin script, like Chinese. +#. When in doubt, test your translation. +#: src/client/fontengine.cpp +msgid "needs_fallback_font" +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating server..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating client..." +msgstr "" + +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/client/game.cpp +msgid "Item definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Node definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "KiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "" + +#: src/client/game.cpp +msgid "ok" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Profiler graph shown" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info and profiler graph hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update enabled" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +msgid "Enabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Disabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "" +"Default Controls:\n" +"No menu visible:\n" +"- single tap: button activate\n" +"- double tap: place/use\n" +"- slide finger: look around\n" +"Menu/Inventory visible:\n" +"- double tap (outside):\n" +" -->close\n" +"- touch stack, touch slot:\n" +" --> move stack\n" +"- touch&drag, tap 2nd finger\n" +" --> place single item to slot\n" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" + +#: src/client/game.cpp +msgid "Continue" +msgstr "" + +#: src/client/game.cpp +msgid "Change Password" +msgstr "" + +#: src/client/game.cpp +msgid "Game paused" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to Menu" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to OS" +msgstr "" + +#: src/client/game.cpp +msgid "Game info:" +msgstr "" + +#: src/client/game.cpp +msgid "- Mode: " +msgstr "" + +#: src/client/game.cpp +msgid "Remote server" +msgstr "" + +#: src/client/game.cpp +msgid "- Address: " +msgstr "" + +#: src/client/game.cpp +msgid "Hosting server" +msgstr "" + +#: src/client/game.cpp +msgid "- Port: " +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "On" +msgstr "" + +#: src/client/game.cpp +msgid "Off" +msgstr "" + +#: src/client/game.cpp +msgid "- Damage: " +msgstr "" + +#: src/client/game.cpp +msgid "- Creative Mode: " +msgstr "" + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +msgid "- PvP: " +msgstr "" + +#: src/client/game.cpp +msgid "- Public: " +msgstr "" + +#: src/client/game.cpp +msgid "- Server Name: " +msgstr "" + +#: src/client/game.cpp +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat hidden" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD hidden" +msgstr "" + +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" +msgstr "" + +#: src/client/gameui.cpp +msgid "Profiler hidden" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Middle Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Backspace" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Clear" +msgstr "" + +#: src/client/keycode.cpp +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp +msgid "Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Control" +msgstr "" + +#. ~ Key name, common on Windows keyboards +#: src/client/keycode.cpp +msgid "Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Pause" +msgstr "" + +#: src/client/keycode.cpp +msgid "Caps Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page up" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" +msgstr "" + +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" +msgstr "" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Snapshot" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 0" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 3" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 4" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 5" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 6" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 7" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 8" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 9" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad *" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad +" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad ." +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad -" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad /" +msgstr "" + +#: src/client/keycode.cpp +msgid "Num Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Scroll Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "Apps" +msgstr "" + +#: src/client/keycode.cpp +msgid "Sleep" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Play" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Zoom" +msgstr "" + +#: src/client/keycode.cpp +msgid "OEM Clear" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +#, c-format +msgid "" +"You are about to join this server with the name \"%s\" for the first time.\n" +"If you proceed, a new account using your credentials will be created on this " +"server.\n" +"Please retype your password and click 'Register and Join' to confirm account " +"creation, or click 'Cancel' to abort." +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiFormSpecMenu.cpp +msgid "Proceed" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "\"Special\" = climb down" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Automatic jumping" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Change camera" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Autoforward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Local command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle HUD" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle chat log" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fog" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "New Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Confirm Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Change" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Exit" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Muted" +msgstr "" + +#. ~ Imperative, as in "Enter/type in text". +#. Don't forget the space. +#: src/gui/modalMenu.cpp +msgid "Enter " +msgstr "" + +#. ~ DO NOT TRANSLATE THIS LITERALLY! +#. This is a special string which needs to contain the translation's +#. language code (e.g. "de" for German). +#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp +msgid "LANG_CODE" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Always fly and fast" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated right clicks when holding the " +"right\n" +"mouse button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Fixes the position of virtual joystick.\n" +"If disabled, virtual joystick will center to first-touch's position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Use virtual joystick to trigger \"aux\" button.\n" +"If enabled, virtual joystick will also tap \"aux\" button when out of main " +"circle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Right key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Adds particles when digging a node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shader path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bumpmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of generated normalmaps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion scale" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS in pause menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve low gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve high gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost center" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost spread" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended, and it’s the only driver with\n" +"shader support currently." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D support.\n" +"Currently supported:\n" +"- none: no 3d output.\n" +"- anaglyph: cyan/magenta color 3d.\n" +"- interlaced: odd/even line based polarisation screen support.\n" +"- topbottom: split screen top/bottom.\n" +"- sidebyside: split screen side by side.\n" +"- crossview: Cross-eyed 3d\n" +"- pageflip: quadbuffer based 3d.\n" +"Note that the interlaced mode requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D mode parallax strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box border color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ambient occlusion gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name to tooltip." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font bold by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font italic by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the default font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Regular font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the monospace font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the fallback font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path of the fallback font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to save screenshots at. Can be an absolute or relative path.\n" +"The folder will be created if it doesn't already exist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prometheus listener address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce to this serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default stack size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rollback recording" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shutdown message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server crashes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ask to reconnect after crash" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amount of messages a player may send per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated Lua API calls:\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block management interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ABM interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"At this distance the server will aggressively optimize which blocks are sent " +"to\n" +"clients.\n" +"Small values potentially improve performance a lot, at the expense of " +"visible\n" +"rendering glitches (some blocks will not be rendered under water and in " +"caves,\n" +"as well as sometimes on land).\n" +"Setting this to a value greater than max_block_send_distance disables this\n" +"optimization.\n" +"Stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Restricts the access of certain client-side functions on servers.\n" +"Combine the byteflags below to restrict client-side features, or set to 0\n" +"for no restrictions:\n" +"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" +"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" +"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" +"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" +"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Changes the main menu UI:\n" +"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " +"etc.\n" +"- Simple: One singleplayer world, no game or texture pack choosers. May " +"be\n" +"necessary for smaller screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Proportion of large caves that contain liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "" + +#: src/settings_translation_file.cpp +#, c-format +msgid "" +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Surface level of optional water placed on a solid floatland layer.\n" +"Water is disabled by default and will only be placed if this value is set\n" +"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" +"upper tapering).\n" +"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" +"When enabling water placement the floatlands must be configured and tested\n" +"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" +"required value depending on 'mgv7_np_floatland'), to avoid\n" +"server-intensive extreme water flow and to avoid vast flooding of the\n" +"world surface below." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge underwater noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River valley width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of step mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hill size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridged mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of ridged mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of step mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that locates the river valleys and channels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Selects one of 18 fractal types.\n" +"1 = 4D \"Roundy\" Mandelbrot set.\n" +"2 = 4D \"Roundy\" Julia set.\n" +"3 = 4D \"Squarry\" Mandelbrot set.\n" +"4 = 4D \"Squarry\" Julia set.\n" +"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" +"6 = 4D \"Mandy Cousin\" Julia set.\n" +"7 = 4D \"Variation\" Mandelbrot set.\n" +"8 = 4D \"Variation\" Julia set.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" +"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" +"12 = 3D \"Christmas Tree\" Julia set.\n" +"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" +"14 = 3D \"Mandelbulb\" Julia set.\n" +"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" +"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" +"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" +"18 = 4D \"Mandelbulb\" Julia set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slice w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Seabed noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slope and fill work together to modify the heights." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amplifies the valleys." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" +"WARNING!: There is no benefit, and there are several dangers, in\n" +"increasing this value above 5.\n" +"Reducing this value increases cave and dungeon density.\n" +"Altering this value is for special usage, leaving it unchanged is\n" +"recommended." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Absolute limit of queued blocks to emerge" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The URL for the content repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" From c641a81693fbf9d94f969561790c22ebaf6ea649 Mon Sep 17 00:00:00 2001 From: "Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi" Date: Thu, 9 Jul 2020 12:15:58 +0000 Subject: [PATCH 376/624] Translated using Weblate (Malay) Currently translated at 100.0% (1350 of 1350 strings) --- po/ms/minetest.po | 100 ++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 53 deletions(-) diff --git a/po/ms/minetest.po b/po/ms/minetest.po index fb3989a3f..c10666a8e 100644 --- a/po/ms/minetest.po +++ b/po/ms/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Malay (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" +"PO-Revision-Date: 2020-10-20 18:26+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" "Language-Team: Malay Date: Thu, 9 Jul 2020 12:24:36 +0000 Subject: [PATCH 377/624] Translated using Weblate (Malay (Jawi)) Currently translated at 63.7% (860 of 1350 strings) --- po/ms_Arab/minetest.po | 1072 ++++++++++++++++++++++++++-------------- 1 file changed, 704 insertions(+), 368 deletions(-) diff --git a/po/ms_Arab/minetest.po b/po/ms_Arab/minetest.po index e7e4c7167..8359efd08 100644 --- a/po/ms_Arab/minetest.po +++ b/po/ms_Arab/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" +"PO-Revision-Date: 2020-10-20 18:26+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" "Language-Team: Malay (Jawi) Date: Thu, 9 Jul 2020 08:14:36 +0000 Subject: [PATCH 378/624] Translated using Weblate (Finnish) Currently translated at 0.5% (7 of 1350 strings) --- po/fi/minetest.po | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/po/fi/minetest.po b/po/fi/minetest.po index 92086720a..3b141dc44 100644 --- a/po/fi/minetest.po +++ b/po/fi/minetest.po @@ -8,25 +8,28 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"PO-Revision-Date: 2020-07-11 13:41+0000\n" +"Last-Translator: Niko Kivinen \n" +"Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +msgstr "Kuolit" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" -msgstr "" +msgstr "Synny uudelleen" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" @@ -34,7 +37,7 @@ msgstr "" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "" +msgstr "Yhdistä uudelleen" #: builtin/fstk/ui.lua msgid "Main menu" @@ -50,7 +53,7 @@ msgstr "" #: builtin/mainmenu/common.lua src/client/game.cpp msgid "Loading..." -msgstr "" +msgstr "Ladataan..." #: builtin/mainmenu/common.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -78,7 +81,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "" +msgstr "Maailma:" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -115,7 +118,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "" +msgstr "Tallenna" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua From 7a64f31abe4390e9573bb41aa1562553ba596613 Mon Sep 17 00:00:00 2001 From: Uko Koknevics Date: Sun, 12 Jul 2020 17:40:49 +0000 Subject: [PATCH 379/624] Translated using Weblate (Latvian) Currently translated at 30.1% (407 of 1350 strings) --- po/lv/minetest.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/po/lv/minetest.po b/po/lv/minetest.po index 5e63284a3..6a86fd20e 100644 --- a/po/lv/minetest.po +++ b/po/lv/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-04 16:41+0000\n" +"PO-Revision-Date: 2020-07-12 17:41+0000\n" "Last-Translator: Uko Koknevics \n" "Language-Team: Latvian \n" @@ -18,7 +18,7 @@ msgstr "" "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 4.1-dev\n" +"X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -267,9 +267,8 @@ msgid "Create" msgstr "Izveidot" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informācija:" +msgstr "Dekorācijas" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" From 67f319ba94416ef62e6c3438f1cdd0926ca6eb0d Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Sun, 12 Jul 2020 07:45:37 +0000 Subject: [PATCH 380/624] Translated using Weblate (French) Currently translated at 98.9% (1336 of 1350 strings) --- po/fr/minetest.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index 34fcda843..45560e294 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" -"Last-Translator: Estébastien Robespi \n" +"PO-Revision-Date: 2020-07-13 15:59+0000\n" +"Last-Translator: J. Lavoie \n" "Language-Team: French \n" "Language: fr\n" @@ -5233,7 +5233,7 @@ msgstr "Délai de génération des maillages de MapBlocks" #: src/settings_translation_file.cpp msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "Taille du cache du générateur de maillage pour les MapBloc en Mio" +msgstr "Taille du cache du générateur de maillage pour les MapBloc en Mo" #: src/settings_translation_file.cpp msgid "Mapblock unload timeout" From 0936fa2eeb60a4b5cc2b6987bea5662c54db2785 Mon Sep 17 00:00:00 2001 From: Vicente Carrasco Alvarez Date: Wed, 15 Jul 2020 18:46:39 +0000 Subject: [PATCH 381/624] Translated using Weblate (Spanish) Currently translated at 70.0% (946 of 1350 strings) --- po/es/minetest.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index f0a5e38dd..047beaddc 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" -"Last-Translator: Agustin Calderon \n" +"PO-Revision-Date: 2020-07-15 18:47+0000\n" +"Last-Translator: Vicente Carrasco Alvarez \n" "Language-Team: Spanish \n" "Language: es\n" @@ -2601,12 +2601,12 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" -"Lista de banderas a ocultar en el repositorio de contenido. La lista usa la " +"Lista de 'marcas' a ocultar en el repositorio de contenido. La lista usa la " "coma como separador.\n" "Se puede usar la etiqueta \"nonfree\" para ocultar paquetes que no tienen " -"licencia libre (tal como define la Funcación de software libre (FSF).\n" -"También puedes especificar proporciones de contenido.\n" -"Estas banderas son independientes de la versión de Minetest.\n" +"licencia libre (tal como define la Fundación de software libre (FSF)).\n" +"También puedes especificar clasificaciones de contenido.\n" +"Estas 'marcas' son independientes de la versión de Minetest.\n" "Si quieres ver una lista completa visita https://content.minetest.net/help/" "content_flags/" From 7abfd06aa32ae33aa6f0032f88e7573c0bf39f6f Mon Sep 17 00:00:00 2001 From: Agustin Calderon Date: Wed, 15 Jul 2020 18:44:45 +0000 Subject: [PATCH 382/624] Translated using Weblate (Spanish) Currently translated at 70.0% (946 of 1350 strings) --- po/es/minetest.po | 126 ++++++++++++++++++---------------------------- 1 file changed, 49 insertions(+), 77 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 047beaddc..daa376ff5 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-15 18:47+0000\n" -"Last-Translator: Vicente Carrasco Alvarez \n" +"PO-Revision-Date: 2020-09-19 15:31+0000\n" +"Last-Translator: Agustin Calderon \n" "Language-Team: Spanish \n" "Language: es\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -2021,15 +2021,13 @@ msgstr "" "escarpadas." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "Ruido 2D para controlar el tamaño/aparición de las colinas." +msgstr "Ruido 2D que controla el tamaño/aparición de las colinas ondulantes." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" -"Ruido 2D para controlar las rangos de tamaño/aparición de las montañas " +"Ruido 2D que controla el tamaño/aparición de los intervalos de montañas " "inclinadas." #: src/settings_translation_file.cpp @@ -2401,7 +2399,6 @@ msgid "Bumpmapping" msgstr "Mapeado de relieve" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2409,9 +2406,10 @@ msgid "" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" "Distancia de la cámara 'cerca del plano delimitador' en nodos, entre 0 y " -"0,5.\n" -"La mayoría de los usuarios no necesitarán cambiar esto.\n" -"El aumento puede reducir los artefactos en GPU más débiles.\n" +"0,25.\n" +"Solo funciona en plataformas GLES. La mayoría de los usuarios no necesitarán " +"cambiar esto.\n" +"Aumentarlo puede reducir el artifacting en GPU más débiles.\n" "0.1 = Predeterminado, 0,25 = Buen valor para comprimidos más débiles." #: src/settings_translation_file.cpp @@ -2488,24 +2486,21 @@ msgid "" "necessary for smaller screens." msgstr "" "Cambia la UI del menú principal:\n" -"-\tCompleto:\tMúltiples mundos, elección de juegos y texturas, etc.\n" -"-\tSimple:\tUn solo mundo, sin elección de juegos o texturas.\n" -"Puede ser necesario en pantallas pequeñas.\n" -"-\tAutomático:\tSimple en Android, completo en otras plataformas." +"- Completo: Múltiples mundos, elección de juegos y texturas, etc.\n" +"- Simple: Un solo mundo, sin elección de juegos o texturas.\n" +"Puede ser necesario en pantallas pequeñas." #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Tamaño de la fuente" +msgstr "Tamaño de la fuente del chat" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Tecla del Chat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Nivel de registro de depuración" +msgstr "Nivel de registro del chat" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2615,8 +2610,9 @@ msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" -"Lista separada por comas de mods que son permitidos de acceder a APIs de " -"HTTP, las cuales les permiten subir y descargar archivos al/desde internet." +"Lista (separada por comas) de mods a los que se les permite acceder a APIs " +"de HTTP, las cuales \n" +"les permiten subir y descargar archivos al/desde internet." #: src/settings_translation_file.cpp msgid "" @@ -2686,8 +2682,9 @@ msgid "" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" "Controla la duración del ciclo día/noche.\n" -"Ejemplos: 72 = 20min, 360 = 4min, 1 = 24hora, 0 = día/noche/lo que sea se " -"queda inalterado." +"Ejemplos: \n" +"72 = 20min, 360 = 4min, 1 = 24hs, 0 = día/noche/lo que sea se queda " +"inalterado." #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." @@ -2800,7 +2797,7 @@ msgstr "Formato de Reporte por defecto" #: src/settings_translation_file.cpp #, fuzzy msgid "Default stack size" -msgstr "Juego por defecto" +msgstr "Tamaño por defecto del stack (Montón)." #: src/settings_translation_file.cpp msgid "" @@ -2909,8 +2906,8 @@ msgid "" "Description of server, to be displayed when players join and in the " "serverlist." msgstr "" -"Descripción del servidor, que se muestra cuando los jugadores se unen, y en\n" -"la lista de servidores." +"Descripción del servidor, que se muestra en la lista de servidores y cuando " +"los jugadores se unen." #: src/settings_translation_file.cpp msgid "Desert noise threshold" @@ -3088,7 +3085,6 @@ msgstr "" "Necesita habilitar enable_ipv6 para ser activado." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enables Hable's 'Uncharted 2' filmic tone mapping.\n" "Simulates the tone curve of photographic film and how this approximates the\n" @@ -3251,8 +3247,9 @@ msgid "" "the\n" "Multiplayer Tab." msgstr "" -"Fichero en client/serverlist/ que contiene sus servidores favoritos que se " -"mostrarán en la página de Multijugador." +"Archivo en client/serverlist/ que contiene sus servidores favoritos " +"mostrados en la \n" +"página de Multijugador." #: src/settings_translation_file.cpp msgid "Filler depth" @@ -3273,9 +3270,10 @@ msgid "" "light edge to transparent textures. Apply this filter to clean that up\n" "at texture load time." msgstr "" -"Las texturas filtradas pueden mezclar los valores RGB de los vecinos\n" -"completamete tranparentes, los cuales los optimizadores de ficheros\n" -"PNG usualmente descartan, lo que a veces resulta en un borde claro u\n" +"Las texturas filtradas pueden mezclar valores RGB con sus vecinos " +"completamente transparentes, \n" +"los cuales los optimizadores de PNG usualmente descartan, lo que a veces " +"resulta en un borde claro u\n" "oscuro en las texturas transparentes. Aplica éste filtro para limpiar ésto\n" "al cargar las texturas." @@ -3472,11 +3470,10 @@ msgstr "" msgid "" "From how far blocks are sent to clients, stated in mapblocks (16 nodes)." msgstr "" -"Desde cuán lejos se envían bloques a los clientes, especificado en\n" -"bloques de mapa (mapblocks, 16 nodos)." +"Desde cuán lejos se envían bloques a los clientes, especificado en bloques " +"de mapa (mapblocks, 16 nodos)." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "From how far clients know about objects, stated in mapblocks (16 nodes).\n" "\n" @@ -3488,8 +3485,8 @@ msgstr "" "\n" "Establecer esto a más de 'active_block_range' tambien causará que\n" "el servidor mantenga objetos activos hasta ésta distancia en la dirección\n" -"que el jugador está mirando. (Ésto puede evitar que los\n" -"enemigos desaparezcan)" +"que el jugador está mirando. (Ésto puede evitar que los enemigos " +"desaparezcan)" #: src/settings_translation_file.cpp msgid "Full screen" @@ -3524,7 +3521,6 @@ msgid "Global callbacks" msgstr "Llamadas globales" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Global map generation attributes.\n" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" @@ -3532,13 +3528,9 @@ msgid "" msgstr "" "Atributos del generador de mapas globales.\n" "En el generador de mapas V6 la opción (o marcador) \"decorations\" controla " -"todos los elementos decorativos excepto los árboles y la hierba de la " -"jungla, en todos los otros generadores de mapas esta opción controla todas " -"las decoraciones.\n" -"Las opciones que no son incluidas en el texto con la cadena de opciones no " -"serán modificadas y mantendrán su valor por defecto.\n" -"Las opciones que comienzan con el prefijo \"no\" son utilizadas para " -"inhabilitar esas opciones." +"todos los elementos decorativos excepto los árboles \n" +"y la hierba de la jungla, en todos los otros generadores de mapas esta " +"opción controla todas las decoraciones." #: src/settings_translation_file.cpp msgid "" @@ -3600,7 +3592,6 @@ msgstr "" "desarrolladores de mods)." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Have the profiler instrument itself:\n" "* Instrument an empty function.\n" @@ -3612,7 +3603,7 @@ msgstr "" "* Instrumente una función vacía.\n" "Esto estima la sobrecarga, que la instrumentación está agregando (+1 llamada " "de función).\n" -"* Instrumente el muestreador que se utiliza para actualizar las estadísticas." +"* Instrumente el sampler que se utiliza para actualizar las estadísticas." #: src/settings_translation_file.cpp msgid "Heat blend noise" @@ -3893,7 +3884,6 @@ msgstr "" "habilitados." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled the server will perform map block occlusion culling based on\n" "on the eye position of the player. This can reduce the number of blocks\n" @@ -3902,11 +3892,11 @@ msgid "" "so that the utility of noclip mode is reduced." msgstr "" "Si está habilitado, el servidor realizará la selección de la oclusión del " -"bloque del mapa basado en\n" +"bloque del mapa basado\n" "en la posición del ojo del jugador. Esto puede reducir el número de bloques\n" -"enviados al cliente en un 50-80%. El cliente ya no recibirá la mayoría de " -"las invisibles\n" -"para que la utilidad del modo nocturno se reduzca." +"enviados al cliente en un 50-80%. El cliente ya no recibirá lo mas " +"invisible\n" +"por lo que la utilidad del modo \"NoClip\" se reduce." #: src/settings_translation_file.cpp msgid "" @@ -3951,7 +3941,6 @@ msgstr "" "Actívelo sólo si sabe lo que hace." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." @@ -4291,7 +4280,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for moving the player backward.\n" "Will also disable autoforward, when active.\n" @@ -4299,6 +4287,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Tecla para desplazar el jugador hacia atrás.\n" +"Cuando esté activa, También desactivará el desplazamiento automático hacia " +"adelante.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4965,7 +4955,7 @@ msgstr "Idioma" #: src/settings_translation_file.cpp msgid "Large cave depth" -msgstr "" +msgstr "Profundidad de cueva grande" #: src/settings_translation_file.cpp msgid "Large cave maximum number" @@ -5164,37 +5154,19 @@ msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" -"Atributos del generador de mapas globales.\n" -"En el generador de mapas V6 la opción (o marcador) \"decorations\" controla " -"todos los elementos decorativos excepto los árboles y la hierba de la " -"jungla, en todos los otros generadores de mapas esta opción controla todas " -"las decoraciones.\n" -"Las opciones que no son incluidas en el texto con la cadena de opciones no " -"serán modificadas y mantendrán su valor por defecto.\n" -"Las opciones que comienzan con el prefijo \"no\" son utilizadas para " -"inhabilitar esas opciones." +"Atributos de generación de mapa específicos para generador de mapas planos.\n" +"Ocasionalmente pueden agregarse lagos y colinas al mundo plano." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Fractal.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Atributos del generador de mapas globales.\n" -"En el generador de mapas V6 la opción (o marcador) \"decorations\" controla " -"todos los elementos decorativos excepto los árboles y la hierba de la " -"jungla, en todos los otros generadores de mapas esta opción controla todas " -"las decoraciones.\n" -"Las opciones que no son incluidas en el texto con la cadena de opciones no " -"serán modificadas y mantendrán su valor por defecto.\n" -"Las opciones que comienzan con el prefijo \"no\" son utilizadas para " -"inhabilitar esas opciones." #: src/settings_translation_file.cpp msgid "" @@ -5693,7 +5665,7 @@ msgstr "Contenido del repositorio en linea" #: src/settings_translation_file.cpp msgid "Opaque liquids" -msgstr "" +msgstr "Líquidos opacos" #: src/settings_translation_file.cpp msgid "" @@ -5866,7 +5838,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Profiling" -msgstr "" +msgstr "Perfilando" #: src/settings_translation_file.cpp msgid "Prometheus listener address" From 5bb87f62e73e8b0bdd6795655ac21efd33bfda69 Mon Sep 17 00:00:00 2001 From: Tirifto Date: Tue, 14 Jul 2020 17:09:22 +0000 Subject: [PATCH 383/624] Translated using Weblate (Esperanto) Currently translated at 98.5% (1331 of 1350 strings) --- po/eo/minetest.po | 88 ++++++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 39 deletions(-) diff --git a/po/eo/minetest.po b/po/eo/minetest.po index 752538f5e..9eb82b720 100644 --- a/po/eo/minetest.po +++ b/po/eo/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Esperanto (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" +"PO-Revision-Date: 2020-07-17 08:41+0000\n" "Last-Translator: Tirifto \n" "Language-Team: Esperanto \n" @@ -168,12 +168,11 @@ msgstr "Reeniri al ĉefmenuo" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB ne estas disponebla per Minetest kodotradukita sen cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Enlegante…" +msgstr "Elŝutante…" #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -334,7 +333,7 @@ msgstr "Montoj" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Fluo de koto" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" @@ -726,7 +725,7 @@ msgstr "Gastigi servilon" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instali ludojn de ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -2051,6 +2050,10 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3d-bruo difinanta la strukturon de fluginsuloj.\n" +"Ŝanĝite de la implicita valoro, la bruo «scale» (implicite 0.7) eble\n" +"bezonos alĝustigon, ĉar maldikigaj funkcioj de fluginsuloj funkcias\n" +"plej bone kiam la bruo havas valoron inter -2.0 kaj 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2115,9 +2118,8 @@ msgid "ABM interval" msgstr "Intertempo de ABM (aktiva modifilo de monderoj)" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" -msgstr "Maksimumo de mondestigaj vicoj" +msgstr "Absoluta maksimumo de atendantaj estigotaj monderoj" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2174,6 +2176,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Alĝustigas densecon de la fluginsula tavolo.\n" +"Plialtigu la valoron por pliigi densecon. Eblas plusa aŭ minusa.\n" +"Valoro = 0.0: 50% de volumeno estas fluginsuloj.\n" +"Valoro = 2.0 (povas esti pli alta, depende de «mgv7_np_floatland»; ĉiam\n" +"kontrolu certige) kreas solidan tavolon de fluginsulaĵo." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2474,9 +2481,8 @@ msgid "Chat key" msgstr "Babila klavo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Erarserĉa protokola nivelo" +msgstr "Babileja protokola nivelo" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2768,9 +2774,8 @@ msgid "Default report format" msgstr "Implicita raporta formo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Norma ludo" +msgstr "Implicita grandeco de la kolumno" #: src/settings_translation_file.cpp msgid "" @@ -3144,6 +3149,13 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Eksponento de maldikigo de fluginsuloj. Ŝanĝas la konduton\n" +"de maldikigo.\n" +"Valoro = 1.0 kreas unuforman, linearan maldikigon.\n" +"Valoroj > 1.0 kreas glatan maldikigon taŭgan por la implicitaj apartaj\n" +"fluginsuloj.\n" +"Valoroj < 1.0 (ekzemple 0.25) kreas pli difinitan ternivelon kun\n" +"pli plataj malaltejoj, taŭgaj por solida tavolo de fluginsulaĵo." #: src/settings_translation_file.cpp msgid "FPS in pause menu" @@ -3266,39 +3278,32 @@ msgid "Fixed virtual joystick" msgstr "Fiksita virtuala stirstango" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Denseco de fluginsulaj montoj" +msgstr "Denseco de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Maksimuma Y de forgeskelo" +msgstr "Maksimuma Y de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Minimuma Y de forgeskeloj" +msgstr "Minimuma Y de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Baza bruo de fluginsuloj" +msgstr "Bruo de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Eksponento de fluginsulaj montoj" +msgstr "Eksponento de maldikigo de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Baza bruo de fluginsuloj" +msgstr "Distanco de maldikigo de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Alteco de fluginsuloj" +msgstr "Akvonivelo de fluginsuloj" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3357,6 +3362,8 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Grandeco de tiparo de freŝa babila teksto kaj babilujo en punktoj (pt).\n" +"Valoro 0 uzos la implicitan grandecon de tiparo." #: src/settings_translation_file.cpp msgid "" @@ -3490,6 +3497,10 @@ msgid "" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" +"Ĉieaj atributoj de mondestigo.\n" +"En mondestigo v6, la parametro «decorations» regas ĉiujn ornamojn\n" +"krom arboj kaj ĝangala herbo; en ĉiuj ailaj mondestigiloj, ĉi tiu parametro\n" +"regas ĉiujn ornamojn." #: src/settings_translation_file.cpp msgid "" @@ -4035,7 +4046,7 @@ msgstr "Dosierindiko al kursiva egallarĝa tiparo" #: src/settings_translation_file.cpp msgid "Item entity TTL" -msgstr "" +msgstr "Daŭro de lasita portaĵo" #: src/settings_translation_file.cpp msgid "Iterations" @@ -5045,9 +5056,8 @@ msgid "Lower Y limit of dungeons." msgstr "Suba Y-limo de forgeskeloj." #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "Suba Y-limo de forgeskeloj." +msgstr "Suba Y-limo de fluginsuloj." #: src/settings_translation_file.cpp msgid "Main menu script" @@ -5132,15 +5142,16 @@ msgstr "" "kaj la flago «jungles» estas malatentata." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" -"Mapestigilaj ecoj speciale por Mapestigilo v7.\n" -"«ridges» ŝaltas la riverojn." +"Mapestigaj ecoj speciale por Mapestigilo v7.\n" +"«ridges»: Riveroj.\n" +"«floatlands»: Flugantaj teramasoj en la atmosfero.\n" +"«caverns»: Grandaj kavernegoj profunde sub tero." #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5299,22 +5310,20 @@ msgid "Maximum number of blocks that can be queued for loading." msgstr "Maksimuma nombro da mondopecoj atendantaj legon." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" "Maksimumo nombro de mondopecoj atendantaj estigon.\n" -"Vakigu por memaga elekto de ĝusta kvanto." +"Ĉi tiu limo estas devigata al ĉiu ludanto aparte." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" "Maksimuma nombro de atendantaj mondopecoj legotaj de loka dosiero.\n" -"Agordi vake por memaga elekto de ĝusta nombro." +"Ĉi tiu limo estas devigata al ĉiu ludanto aparte." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5410,7 +5419,7 @@ msgstr "Metodo emfazi elektitan objekton." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Minimuma nivelo de protokolado skribota al la babilujo." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5529,9 +5538,8 @@ msgid "" msgstr "Nomo de la servilo, montrota al ludantoj kaj en la listo de serviloj." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near plane" -msgstr "Proksime tonda ebeno" +msgstr "Proksima ebeno" #: src/settings_translation_file.cpp msgid "Network" @@ -5704,6 +5712,8 @@ msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Dosierindiko por konservotaj ekrankopioj. Povas esti absoluta\n" +"aŭ relativa. La dosierujo estos kreita, se ĝi ne jam ekzistas." #: src/settings_translation_file.cpp msgid "" From e27febae0faedc5735ef1be8b7e43346a6b8eca8 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 19 Jul 2020 19:41:24 +0000 Subject: [PATCH 384/624] Translated using Weblate (Portuguese) Currently translated at 90.2% (1218 of 1350 strings) --- po/pt/minetest.po | 330 ++++++++++++++++++++++------------------------ 1 file changed, 158 insertions(+), 172 deletions(-) diff --git a/po/pt/minetest.po b/po/pt/minetest.po index 466428c35..9ea140219 100644 --- a/po/pt/minetest.po +++ b/po/pt/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Portuguese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-03-31 10:14+0000\n" +"PO-Revision-Date: 2020-09-11 20:24+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Você morreu" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -96,7 +96,7 @@ msgstr "Desativar tudo" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Desabilitar modpack" +msgstr "Desativar modpack" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -104,7 +104,7 @@ msgstr "Ativar tudo" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Habilitar modpack" +msgstr "Ativar modpack" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -117,7 +117,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Encontre Mais Mods" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -170,12 +170,11 @@ msgstr "Voltar ao menu principal" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB não está disponível quando Minetest é compilado sem cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "A carregar..." +msgstr "A descarregar..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -222,7 +221,7 @@ msgstr "Atualizar" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "Vista" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -230,45 +229,39 @@ msgstr "O mundo com o nome \"$1\" já existe" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Terreno adicional" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "Frio de altitude" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Frio de altitude" +msgstr "Altitude seca" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Ruído da Biome" +msgstr "Mistura de biomas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Ruído da Biome" +msgstr "Biomas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Barulho da caverna" +msgstr "Cavernas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Octavos" +msgstr "Cavernas" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Criar" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Monitorização" +msgstr "Decorações" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -279,23 +272,20 @@ msgid "Download one from minetest.net" msgstr "Descarregue um do site minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Ruído de masmorra" +msgstr "Masmorras" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Terreno plano" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Densidade da terra flutuante montanhosa" +msgstr "Terrenos flutuantes no céu" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Nível de água" +msgstr "Terrenos flutuantes (experimental)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -303,28 +293,27 @@ msgstr "Jogo" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Gerar terreno não-fractal: Oceanos e subsolo" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Montanhas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Driver de vídeo" +msgstr "Rios húmidos" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Aumenta a humidade perto de rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Lagos" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Baixa humidade e calor elevado resultam em rios rasos ou secos" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -335,22 +324,20 @@ msgid "Mapgen flags" msgstr "Flags do mapgen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Flags específicas do gerador de mundo V5" +msgstr "Flags específicas do mapgen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Ruído da montanha" +msgstr "Montanhas" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Fluxo de lama" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Conectar túneis e cavernas" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -358,20 +345,19 @@ msgstr "Nenhum jogo selecionado" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Reduz calor com altitude" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Reduz humidade com altitude" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Tamanho do Rio" +msgstr "Rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Rios ao nível do mar" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -380,52 +366,51 @@ msgstr "Seed" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Transição suave entre biomas" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Estruturas que aparecem no terreno (sem efeito em árvores e grama da selva " +"criada pelo v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Estruturas que aparecem no terreno, geralmente árvores e plantas" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Temperado, Deserto" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Temperado, Deserto, Selva" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Temperado, Deserto, Selva, Tundra, Floresta Boreal" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "Altura do terreno" +msgstr "Erosão superficial do terreno" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Árvores e relva da selva" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Profundidade do Rio" +msgstr "Variar a profundidade do rio" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Cavernas bastante profundas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "Aviso: O minimal development test destina-se apenas a desenvolvedores." +msgstr "Aviso: O Development Test destina-se apenas a programadores." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -661,7 +646,7 @@ msgstr "Conteúdo" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" -msgstr "Desabilitar pacote de texturas" +msgstr "Desativar pacote de texturas" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -741,7 +726,7 @@ msgstr "Servidor" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instalar jogos do ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -926,7 +911,7 @@ msgstr "Reiniciar mundo singleplayer" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "Tela:" +msgstr "Ecrã:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" @@ -1168,32 +1153,19 @@ msgid "" "- %s: chat\n" msgstr "" "Controles:\n" -"\n" -"- %s1: andar para frente\n" -"\n" -"- %s2: andar para trás\n" -"\n" -"- %s3: andar para a esquerda\n" -"\n" -"-%s4: andar para a direita\n" -"\n" -"- %s5: pular/escalar\n" -"\n" -"- %s6: esgueirar/descer\n" -"\n" -"- %s7: soltar item\n" -"\n" -"- %s8: inventário\n" -"\n" -"- Mouse: virar/olhar\n" -"\n" -"- Botão esquerdo do mouse: cavar/dar soco\n" -"\n" -"- Botão direito do mouse: colocar/usar\n" -"\n" -"- Roda do mouse: selecionar item\n" -"\n" -"- %s9: bate-papo\n" +"- %s: mover para a frente\n" +"- %s: mover para trás\n" +"- %s: mover à esquerda\n" +"- %s: mover-se para a direita\n" +"- %s: saltar/escalar\n" +"- %s: esgueirar/descer\n" +"- %s: soltar item\n" +"- %s: inventário\n" +"- Rato: virar/ver\n" +"- Rato à esquerda: escavar/dar soco\n" +"- Rato direito: posicionar/usar\n" +"- Roda do rato: selecionar item\n" +"- %s: bate-papo\n" #: src/client/game.cpp msgid "Creating client..." @@ -1413,11 +1385,11 @@ msgstr "Som mutado" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Som do sistema está desativado" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Som do sistema não é suportado nesta versão" #: src/client/game.cpp msgid "Sound unmuted" @@ -1436,7 +1408,7 @@ msgstr "Distancia de visualização está no máximo:%d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "Distancia de visualização está no mínima:%d" +msgstr "Distancia de visualização está no mínimo: %d" #: src/client/game.cpp #, c-format @@ -2007,11 +1979,11 @@ msgid "" msgstr "" "(X,Y,Z) Escala fractal em nós.\n" "Tamanho fractal atual será de 2 a 3 vezes maior.\n" -"Esses números podem ser muito grandes, o fractal não tem que encaixar dentro " -"do mundo.\n" +"Esses números podem ser muito grandes, o fractal não \n" +"tem que encaixar dentro do mundo.\n" "Aumente estes para 'ampliar' nos detalhes do fractal.\n" -"Padrão é para uma forma espremida verticalmente para uma ilha, coloque todos " -"os 3 números iguais para a forma crua." +"Predefinição é para uma forma espremida verticalmente para uma ilha,\n" +"ponha todos os 3 números iguais para a forma crua." #: src/settings_translation_file.cpp msgid "" @@ -2058,9 +2030,8 @@ msgid "3D mode" msgstr "Modo 3D" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Intensidade de normalmaps" +msgstr "Força de paralaxe do modo 3D" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2081,6 +2052,12 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"Ruído 3D definindo as estruturas de terras flutuantes\n" +"Se alterar da predefinição, a 'escala' do ruído (0.7 por predefinição) pode " +"precisar\n" +"ser ajustada, já que o afunilamento das terras flutuantes funciona melhor " +"quando o ruído tem\n" +"um valor entre -2.0 e 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2113,13 +2090,13 @@ msgid "" "- pageflip: quadbuffer based 3d.\n" "Note that the interlaced mode requires shaders to be enabled." msgstr "" -"Suporte 3D.\n" +"Suporte de 3D.\n" "Modos atualmente suportados:\n" "- none: Nenhum efeito 3D.\n" "- anaglyph: Sistema de cor Ciano/Magenta (Óculos 3D azul vermelho).\n" "- interlaced: Sistema interlaçado (Óculos com lentes polarizadas).\n" -"- topbottom: Divide a tela em duas: uma em cima e outra em baixo.\n" -"- sidebyside: Divide a tela em duas: lado a lado.\n" +"- topbottom: Divide o ecrã em dois: um em cima e outro em baixo.\n" +"- sidebyside: Divide o ecrã em dois: lado a lado.\n" " - crossview: 3D de olhos cruzados.\n" " - pageflip: Quadbuffer baseado em 3D.\n" "Note que o modo interlaçado requer que o sombreamento esteja habilitado." @@ -2149,9 +2126,8 @@ msgid "ABM interval" msgstr "Intervalo do ABM" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" -msgstr "Limite absoluto da fila de espera emergente" +msgstr "Limite absoluto de blocos em fila de espera a emergir" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2208,6 +2184,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Ajusta a densidade da camada de terrenos flutuantes.\n" +"Aumenta o valor para aumentar a densidade. Pode ser positivo ou negativo.\n" +"Valor = 0,0: 50% do volume são terrenos flutuantes.\n" +"Valor = 2,0 (pode ser maior dependendo de 'mgv7_np_floatland', teste sempre\n" +"para ter certeza) cria uma camada sólida de terrenos flutuantes." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2276,8 +2257,8 @@ msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" -"Inercia dos braços fornece um movimento mais realista dos braços quando a " -"câmera mexe." +"Inercia dos braços fornece um movimento mais \n" +"realista dos braços quando a câmara se move." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -2298,12 +2279,15 @@ msgid "" "Stated in mapblocks (16 nodes)." msgstr "" "Nesta distância, o servidor otimizará agressivamente quais blocos são " -"enviados aos clientes.\n" -"Pequenos valores potencialmente melhoram muito o desempenho, à custa de " -"falhas de renderização visíveis(alguns blocos não serão processados debaixo " -"da água e nas cavernas, bem como às vezes em terra).\n" +"enviados aos \n" +"clientes.\n" +"Pequenos valores potencialmente melhoram muito o desempenho, à custa de \n" +"falhas de renderização visíveis (alguns blocos não serão processados debaixo " +"da \n" +"água e nas cavernas, bem como às vezes em terra).\n" "Configure isso como um valor maior do que a " -"distância_máxima_de_envio_do_bloco para desabilitar essa otimização.\n" +"distância_máxima_de_envio_do_bloco \n" +"para desativar essa otimização.\n" "Especificado em barreiras do mapa (16 nós)." #: src/settings_translation_file.cpp @@ -2407,17 +2391,16 @@ msgid "Bumpmapping" msgstr "Bump mapping" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Distancia do plano próximo da câmera em nós, entre 0 e 0.5\n" +"Distancia do plano próximo da câmara em nós, entre 0 e 0.5\n" "A maioria dos utilizadores não precisará mudar isto.\n" "Aumentar pode reduzir a ocorrência de artefactos em GPUs mais fracas.\n" -"0.1 = Padrão, 0.25 = Bom valor para tablets fracos." +"0.1 = Predefinição, 0.25 = Bom valor para tablets fracos." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2493,24 +2476,23 @@ msgid "" "necessary for smaller screens." msgstr "" "Mudanças para a interface do menu principal:\n" -" - Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de pacote " -"de texturas, etc.\n" -"- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de " -"texturas. Pode ser necessário para telas menores." +"- Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de " +"pacote de texturas, etc.\n" +"- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de " +"texturas. Pode ser \n" +"necessário para ecrãs menores." #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Tamanho da fonte" +msgstr "Tamanho da fonte do chat" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Tecla de conversação" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Nível de log de depuração" +msgstr "Nível de log do chat" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2678,9 +2660,9 @@ msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" -"Movimento para frente contínuo, ativado pela tela de avanço automático.\n" -"Pressione a tecla de avanço frontal novamente, ou a tecla de movimento para " -"trás para desabilitar." +"Movimento para frente contínuo, ativado pela tecla de avanço automático.\n" +"Pressione a tecla de avanço frontal novamente ou a tecla de movimento para " +"trás para desativar." #: src/settings_translation_file.cpp msgid "Controls" @@ -2804,9 +2786,8 @@ msgid "Default report format" msgstr "Formato de report predefinido" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Jogo por defeito" +msgstr "Tamanho de pilha predefinido" #: src/settings_translation_file.cpp msgid "" @@ -2992,24 +2973,24 @@ msgid "" "Enable Lua modding support on client.\n" "This support is experimental and API can change." msgstr "" -"Habilitar suporte a mods LUA locais no cliente.\n" +"Ativar suporte a mods LUA locais no cliente.\n" "Esse suporte é experimental e a API pode mudar." #: src/settings_translation_file.cpp msgid "Enable console window" -msgstr "Habilitar janela de console" +msgstr "Ativar janela de console" #: src/settings_translation_file.cpp msgid "Enable creative mode for new created maps." -msgstr "Habilitar modo criativo para mundos novos." +msgstr "Ativar modo criativo para mundos novos." #: src/settings_translation_file.cpp msgid "Enable joysticks" -msgstr "Habilitar Joysticks" +msgstr "Ativar Joysticks" #: src/settings_translation_file.cpp msgid "Enable mod channels support." -msgstr "Habilitar suporte a canais de módulos." +msgstr "Ativar suporte a canais de módulos." #: src/settings_translation_file.cpp msgid "Enable mod security" @@ -3025,15 +3006,15 @@ msgstr "Ativa a entrada de comandos aleatória (apenas usado para testes)." #: src/settings_translation_file.cpp msgid "Enable register confirmation" -msgstr "Habilitar registro de confirmação" +msgstr "Ativar registo de confirmação" #: src/settings_translation_file.cpp msgid "" "Enable register confirmation when connecting to server.\n" "If disabled, new account will be registered automatically." msgstr "" -"Habilitar confirmação de registro quando conectar ao servidor.\n" -"Caso desabilitado, uma nova conta será registrada automaticamente." +"Ativar confirmação de registo quando conectar ao servidor.\n" +"Caso desativado, uma nova conta será registada automaticamente." #: src/settings_translation_file.cpp msgid "" @@ -3086,13 +3067,12 @@ msgstr "" "Por exemplo: 0 para não ver balançando; 1.0 para normal; 2.0 para duplo." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enable/disable running an IPv6 server.\n" "Ignored if bind_address is set.\n" "Needs enable_ipv6 to be enabled." msgstr "" -"Habilitar/desabilitar a execução de um IPv6 do servidor. \n" +"Ativar/desativar a execução de um servidor de IPv6. \n" "Ignorado se bind_address estiver definido." #: src/settings_translation_file.cpp @@ -3186,6 +3166,16 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Expoente do afunilamento do terreno flutuante. Altera o comportamento de " +"afunilamento.\n" +"Valor = 1.0 cria um afunilamento linear e uniforme.\n" +"Valores > 1.0 criam um afunilamento suave, adequado para a separação padrão." +"\n" +"terras flutuantes.\n" +"Valores < 1,0 (por exemplo, 0,25) criam um nível de superfície mais definido " +"com\n" +"terrenos flutuantes mais planos, adequados para uma camada sólida de " +"terrenos flutuantes." #: src/settings_translation_file.cpp msgid "FPS in pause menu" @@ -3204,9 +3194,8 @@ msgid "Fall bobbing factor" msgstr "Cair balançando" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fallback font path" -msgstr "Fonte alternativa" +msgstr "Caminho da fonte reserva" #: src/settings_translation_file.cpp msgid "Fallback font shadow" @@ -3307,24 +3296,20 @@ msgid "Fixed virtual joystick" msgstr "Joystick virtual fixo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Densidade da terra flutuante montanhosa" +msgstr "Densidade do terreno flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Y máximo da dungeon" +msgstr "Y máximo do terreno flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Y mínimo da dungeon" +msgstr "Y mínimo do terreno flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Ruído base de terra flutuante" +msgstr "Ruído no terreno flutuante" #: src/settings_translation_file.cpp #, fuzzy @@ -3423,11 +3408,11 @@ msgstr "Opacidade de fundo padrão do formspec" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" -msgstr "Cor de fundo em tela cheia do formspec" +msgstr "Cor de fundo em ecrã cheio do formspec" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" -msgstr "Opacidade de fundo em tela cheia do formspec" +msgstr "Opacidade de fundo em ecrã cheio do formspec" #: src/settings_translation_file.cpp msgid "Formspec default background color (R,G,B)." @@ -3439,11 +3424,11 @@ msgstr "Opacidade de fundo padrão do formspec (entre 0 e 255)." #: src/settings_translation_file.cpp msgid "Formspec full-screen background color (R,G,B)." -msgstr "Cor de fundo(R,G,B) do formspec padrão em tela cheia." +msgstr "Cor de fundo (R,G,B) do formspec em ecrã cheio." #: src/settings_translation_file.cpp msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "Opacidade de fundo do formspec em tela cheia (entre 0 e 255)." +msgstr "Opacidade de fundo do formspec em ecrã cheio (entre 0 e 255)." #: src/settings_translation_file.cpp msgid "Forward key" @@ -3930,8 +3915,8 @@ msgid "" "If enabled, invalid world data won't cause the server to shut down.\n" "Only enable this if you know what you are doing." msgstr "" -"Se habilitado, dados inválidos do mundo não vão fazer o servidor desligar.\n" -"Só habilite isso, se você souber o que está fazendo." +"Se ativado, dados inválidos do mundo não vão fazer o servidor desligar.\n" +"Só ative isto, se souber o que está a fazer." #: src/settings_translation_file.cpp msgid "" @@ -4279,7 +4264,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Tecla para mover o jogador para trás.\n" -"Também ira desabilitar o andar para frente automático quando ativo.\n" +"Também ira desativar o andar para frente automático quando ativo.\n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4733,7 +4718,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para tirar fotos da tela.\n" +"Tecla para tirar fotos do ecrã.\n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5422,7 +5407,7 @@ msgstr "Número máximo de mensagens recentes mostradas" #: src/settings_translation_file.cpp msgid "Maximum number of statically stored objects in a block." -msgstr "Número máximo de objetos estaticamente armazenados em um bloco." +msgstr "Número máximo de objetos estaticamente armazenados num bloco." #: src/settings_translation_file.cpp msgid "Maximum objects per block" @@ -5450,7 +5435,7 @@ msgid "" "0 to disable queueing and -1 to make the queue size unlimited." msgstr "" "Tamanho máximo da fila do chat.\n" -"0 para desabilitar a fila e -1 para a tornar ilimitada." +"0 para desativar a fila e -1 para a tornar ilimitada." #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." @@ -5862,9 +5847,9 @@ msgid "" "Prevent digging and placing from repeating when holding the mouse buttons.\n" "Enable this when you dig or place too often by accident." msgstr "" -"Evita remoção e colocação de blocos repetidos quando os botoes do mouse são " -"segurados.\n" -"Habilite isto quando você cava ou coloca blocos constantemente por acidente." +"Evita remoção e colocação de blocos repetidos quando os botoes do rato são " +"seguros.\n" +"Ative isto quando cava ou põe blocos constantemente por acidente." #: src/settings_translation_file.cpp msgid "Prevent mods from doing insecure things like running shell commands." @@ -6420,11 +6405,11 @@ msgid "" "(obviously, remote_media should end with a slash).\n" "Files that are not present will be fetched the usual way." msgstr "" -"Especifica a URL no qual os clientes buscam a mídia ao em vez de usar o " -"UDP.\n" -"$filename deve ser acessível a partir de $remote_media$filename via cURL \n" +"Especifica a URL no qual os clientes buscam a mídia ao em vez de usar o UDP." +"\n" +"$filename deve ser acessível de $remote_media$filename via cURL \n" "(obviamente, remote_media deve terminar com uma barra \"/\").\n" -"Arquivos que não estão presentes serão obtidos da maneira usual por UDP." +"Ficheiros que não estão presentes serão obtidos da maneira usual por UDP." #: src/settings_translation_file.cpp msgid "" @@ -6562,7 +6547,7 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" -"Texturas em um nó podem ser alinhadas ao próprio nó ou ao mundo.\n" +"Texturas num nó podem ser alinhadas ao próprio nó ou ao mundo.\n" "O modo antigo serve melhor para coisas como maquinas, móveis, etc, enquanto " "o novo faz com que escadas e microblocos encaixem melhor a sua volta.\n" "Entretanto, como essa é uma possibilidade nova, não deve ser usada em " @@ -6600,7 +6585,7 @@ msgstr "O identificador do joystick para usar" #: src/settings_translation_file.cpp msgid "The length in pixels it takes for touch screen interaction to start." msgstr "" -"A largura em pixels necessária para interação de tela de toque começar." +"A largura em pixels necessária para a interação de ecrã de toque começar." #: src/settings_translation_file.cpp msgid "" @@ -6650,11 +6635,12 @@ msgid "" "On other platforms, OpenGL is recommended, and it’s the only driver with\n" "shader support currently." msgstr "" -"Renderizador de fundo para o irrlight.\n" +"Renderizador de fundo para o Irrlicht.\n" "Uma reinicialização é necessária após alterar isso.\n" -"Note: no android, use o OGLES1 caso em dúvida! O aplicativo pode falhar ao " -"abrir em outro caso.\n" -"Em outras plataformas, OpenGL é recomendo, e é o único driver com suporte a " +"Note: no Android, use o OGLES1 caso em dúvida! A app pode falhar ao abrir em " +"outro caso.\n" +"Em outras plataformas, OpenGL é recomdado, e é o único driver com suporte a " +"\n" "sombreamento atualmente." #: src/settings_translation_file.cpp @@ -6773,7 +6759,7 @@ msgstr "Atraso de dica de ferramenta" #: src/settings_translation_file.cpp msgid "Touch screen threshold" -msgstr "Limiar a tela de toque" +msgstr "Limiar o ecrã de toque" #: src/settings_translation_file.cpp msgid "Trees noise" @@ -6936,7 +6922,7 @@ msgstr "Velocidade de subida vertical, em nós por segundo." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." -msgstr "Sincronização vertical da tela." +msgstr "Sincronização vertical do ecrã." #: src/settings_translation_file.cpp msgid "Video driver" From 495f3711661e683ae761863ec856404e202e88cb Mon Sep 17 00:00:00 2001 From: Nikita Epifanov Date: Sat, 18 Jul 2020 10:01:39 +0000 Subject: [PATCH 385/624] Translated using Weblate (Russian) Currently translated at 99.6% (1345 of 1350 strings) --- po/ru/minetest.po | 345 +++++++++++++++++++++++++--------------------- 1 file changed, 189 insertions(+), 156 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index e626d58b3..1d0f1a87c 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-18 13:41+0000\n" -"Last-Translator: Maksim Gamarnik \n" +"PO-Revision-Date: 2020-07-23 18:41+0000\n" +"Last-Translator: Nikita Epifanov \n" "Language-Team: Russian \n" "Language: ru\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.1.1-dev\n" +"X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -70,7 +70,7 @@ msgstr "" #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "Поддерживается только протокол версии $1." +msgstr "Мы поддерживаем только протокол версии $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." @@ -172,7 +172,6 @@ msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB недоступен, когда Minetest скомпилирован без cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." msgstr "Загрузка..." @@ -241,33 +240,28 @@ msgid "Altitude dry" msgstr "Высота нивального пояса" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Шум биомов" +msgstr "Смешивание биомов" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Шум биомов" +msgstr "Биомы" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Шум пещеры" +msgstr "Пещеры" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Октавы" +msgstr "Пещеры" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Создать" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Итерации" +msgstr "Украшения" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -278,23 +272,20 @@ msgid "Download one from minetest.net" msgstr "Вы можете скачать их на minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Шум подземелья" +msgstr "Подземелья" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" msgstr "Плоская местность" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Плотность гор на парящих островах" +msgstr "Парящие острова на небе" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Уровень парящих островов" +msgstr "Парящие острова (экспериментально)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -302,20 +293,19 @@ msgstr "Игра" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Создать нефрактальную местность: океаны и подземелья" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" msgstr "Холмы" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Видеодрайвер" +msgstr "Влажность рек" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Увеличить влажность вокруг рек" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" @@ -324,6 +314,7 @@ msgstr "Озёра" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Пониженную влажность и высокую температуру вызывают отмель или высыхание рек" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -334,14 +325,12 @@ msgid "Mapgen flags" msgstr "Флаги картогенератора" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Специальные флаги картогенератора V5" +msgstr "Специальные флаги картогенератора" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Шум гор" +msgstr "Горы" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -364,13 +353,12 @@ msgid "Reduces humidity with altitude" msgstr "Уменьшает влажность с высотой" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Размер рек" +msgstr "Реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Реки на уровне моря" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -386,10 +374,12 @@ msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Структуры, появляющиеся на поверхности (не влияет на деревья и тропическую " +"траву, сгенерированные v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Структуры, появляющиеся на местности, обычно деревья и растения" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -404,28 +394,24 @@ msgid "Temperate, Desert, Jungle, Tundra, Taiga" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "Базовый шум поверхности" +msgstr "Поверхностная эрозия" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" msgstr "Деревья и Джунгли-трава" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Глубина рек" +msgstr "Изменить глубину рек" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "" -"Внимание: «Minimal development test» предназначен только для разработчиков." +msgstr "Внимание: «The Development Test» предназначен для разработчиков." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -977,7 +963,7 @@ msgstr "Покачивание листвы" #: builtin/mainmenu/tab_settings.lua msgid "Waving Liquids" -msgstr "Покачивание жидкостей" +msgstr "Волнистые жидкости" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -2053,9 +2039,8 @@ msgid "3D mode" msgstr "3D-режим" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Сила карт нормалей" +msgstr "Сила параллакса в 3D-режиме" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2076,6 +2061,11 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D шум, определяющий строение парящих островов.\n" +"Если изменен по-умолчанию, 'уровень' шума (0.7 по-умолчанию) возможно " +"необходимо установить,\n" +"так как функции сужения парящих островов лучше всего работают, \n" +"когда значение шума находиться в диапазоне от -2.0 до 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2139,9 +2129,8 @@ msgid "ABM interval" msgstr "Интервал сохранения карты" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" -msgstr "Абсолютный лимит появляющихся запросов" +msgstr "Абсолютный предел появления блоков в очереди" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2198,6 +2187,13 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Регулирует плотность слоя парящих островов.\n" +"Увеличьте значение, чтобы увеличить плотность. Может быть положительным или " +"отрицательным.\n" +"Значение = 0,0: 50% объема парящих островов.\n" +"Значение = 2,0 (может быть выше в зависимости от 'mgv7_np_floatland', всегда " +"тестируйте) \n" +"создает сплошной слой парящих островов." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2492,18 +2488,16 @@ msgstr "" "быть полезно для небольших экранов." #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Размер шрифта" +msgstr "Размер шрифта чата" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Кнопка чата" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Отладочный уровень" +msgstr "Уровень журнала чата" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2612,8 +2606,8 @@ msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" -"Список доверенных модов через запятую, которым разрешён доступ к HTTP API, " -"что позволяет им отправлять и принимать данные через Интернет." +"Разделенный запятыми список модов, которые позволяют получить доступ к API " +"для HTTP, что позволить им загружать и скачивать данные из интернета." #: src/settings_translation_file.cpp msgid "" @@ -2795,9 +2789,8 @@ msgid "Default report format" msgstr "Формат отчёта по умолчанию" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Стандартная игра" +msgstr "Размер стака по умолчанию" #: src/settings_translation_file.cpp msgid "" @@ -3094,6 +3087,10 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" +"Включает кинематографическое отображение тонов «Uncharted 2».\n" +"Имитирует кривую тона фотопленки и приближает\n" +"изображение к большему динамическому диапазону. Средний контраст слегка\n" +"усиливается, блики и тени постепенно сжимаются." #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." @@ -3171,6 +3168,12 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Степень сужения парящих островов. Изменяет характер сужения.\n" +"Значение = 1.0 задает равномерное, линейное сужение.\n" +"Значения > 1.0 задают гладкое сужение, подходит для отдельных\n" +" парящих островов по-умолчанию.\n" +"Значения < 1.0 (например, 0.25) задают более точный уровень поверхности\n" +"с более плоскими низинами, подходит для массивного уровня парящих островов." #: src/settings_translation_file.cpp msgid "FPS in pause menu" @@ -3290,39 +3293,32 @@ msgid "Fixed virtual joystick" msgstr "Фиксация виртуального джойстика" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Плотность гор на парящих островах" +msgstr "Плотность парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Максимальная Y подземелья" +msgstr "Максимальная Y парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Минимальная Y подземелья" +msgstr "Минимальная Y парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Базовый шум парящих островов" +msgstr "Шум парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Экспонента гор на парящих островах" +msgstr "Экспонента конуса на парящих островах" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Базовый шум парящих островов" +msgstr "Расстояние сужения парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Уровень парящих островов" +msgstr "Уровень воды на парящих островах" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3381,6 +3377,8 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Размер шрифта последнего чата и подсказки чата в точке (pt).\n" +"Значение 0 будет использовать размер шрифта по умолчанию." #: src/settings_translation_file.cpp msgid "" @@ -3430,7 +3428,7 @@ msgstr "Непрозрачность фона формы в полноэкран #: src/settings_translation_file.cpp msgid "Forward key" -msgstr "Клавиша вперёд" +msgstr "Клавиша вперёд" #: src/settings_translation_file.cpp msgid "Fourth of 4 2D noises that together define hill/mountain range height." @@ -3521,18 +3519,20 @@ msgstr "" "контролирует все декорации." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Gradient of light curve at maximum light level.\n" "Controls the contrast of the highest light levels." -msgstr "Градиент кривой света на максимальном уровне освещённости." +msgstr "" +"Градиент кривой света на максимальном уровне освещённости.\n" +"Контролирует контрастность самых высоких уровней освещенности." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Gradient of light curve at minimum light level.\n" "Controls the contrast of the lowest light levels." -msgstr "Градиент кривой света на минимальном уровне освещённости." +msgstr "" +"Градиент кривой света на минимальном уровне освещённости.\n" +"Контролирует контрастность самых низких уровней освещенности." #: src/settings_translation_file.cpp msgid "Graphics" @@ -3563,7 +3563,6 @@ msgid "HUD toggle key" msgstr "Клавиша переключения игрового интерфейса" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- legacy: (try to) mimic old behaviour (default for release).\n" @@ -3813,6 +3812,9 @@ msgid "" "If negative, liquid waves will move backwards.\n" "Requires waving liquids to be enabled." msgstr "" +"Как быстро будут покачиваться волны жидкостей. Выше = быстрее\n" +"Если отрицательно, жидкие волны будут двигаться назад.\n" +"Требует, чтобы волнистые жидкости были включены." #: src/settings_translation_file.cpp msgid "" @@ -4899,7 +4901,7 @@ msgstr "Минимальное количество больших пещер" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" -msgstr "" +msgstr "Пропорция затопленных больших пещер" #: src/settings_translation_file.cpp msgid "Large chat console key" @@ -4936,13 +4938,12 @@ msgstr "" "обновляются по сети." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" -"Установка в true включает покачивание листвы.\n" -"Требует, чтобы шейдеры были включены." +"Длина волн жидкостей.\n" +"Требуется включение волнистых жидкостей." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" @@ -4977,34 +4978,28 @@ msgstr "" "- verbose (подробности)" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost" -msgstr "Средний подъём кривой света" +msgstr "Усиление кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost center" -msgstr "Центр среднего подъёма кривой света" +msgstr "Центр усиления кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost spread" -msgstr "Распространение среднего роста кривой света" +msgstr "Распространение усиления роста кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve gamma" -msgstr "Средний подъём кривой света" +msgstr "Гамма кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve high gradient" -msgstr "Средний подъём кривой света" +msgstr "Высокий градиент кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve low gradient" -msgstr "Центр среднего подъёма кривой света" +msgstr "Низкий градиент кривой света" #: src/settings_translation_file.cpp msgid "" @@ -5083,9 +5078,8 @@ msgid "Lower Y limit of dungeons." msgstr "Нижний лимит Y для подземелий." #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "Нижний лимит Y для подземелий." +msgstr "Нижний лимит Y для парящих островов." #: src/settings_translation_file.cpp msgid "Main menu script" @@ -5119,7 +5113,6 @@ msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "Атрибуты генерации карт для Mapgen Carpathian." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." @@ -5128,14 +5121,13 @@ msgstr "" "Иногда озера и холмы могут добавляться в плоский мир." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Fractal.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" "Атрибуты генерации для картогенератора плоскости.\n" -"«terrain» включает генерацию нефрактального рельефа:\n" +"'terrain' включает генерацию нефрактального рельефа:\n" "океаны, острова и подземелья." #: src/settings_translation_file.cpp @@ -5171,15 +5163,16 @@ msgstr "" "активируются джунгли, а флаг «jungles» игнорируется." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" -"Атрибуты генерации карт для Mapgen v7.\n" -"«хребты» включают реки." +"Атрибуты генерации карт, специфичные для Mapgen v7.\n" +"'ridges': Реки.\n" +"'floatlands': Парящие острова суши в атмосфере.\n" +"'caverns': Гигантские пещеры глубоко под землей." #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5307,20 +5300,20 @@ msgstr "Максимальная ширина горячей панели" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "Максимальный порог случайного количества больших пещер на кусок карты" +msgstr "Максимальный предел случайного количества больших пещер на кусок карты." #: src/settings_translation_file.cpp msgid "Maximum limit of random number of small caves per mapchunk." msgstr "" +"Максимальный предел случайного количества маленьких пещер на кусок карты." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum liquid resistance. Controls deceleration when entering liquid at\n" "high speed." msgstr "" "Максимальное сопротивление жидкости. Контролирует замедление\n" -"при поступлении жидкости с высокой скоростью." +"при погружении в жидкость на высокой скорости." #: src/settings_translation_file.cpp msgid "" @@ -5339,22 +5332,21 @@ msgstr "" "загрузки." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" -"Максимальное количество блоков в очереди на генерацию. Оставьте пустым для " -"автоматического выбора подходящего значения." +"Максимальное количество блоков в очередь, которые должны быть сформированы.\n" +"Это ограничение применяется для каждого игрока." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" -"Максимальное количество блоков в очереди на загрузку из файла. Оставьте " -"пустым для автоматического выбора подходящего значения." +"Максимальное количество блоков в очередь, которые должны быть загружены из " +"файла.\n" +"Это ограничение применяется для каждого игрока." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5451,7 +5443,7 @@ msgstr "Метод подсветки выделенного объекта." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Минимальный уровень записи в чат." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5466,13 +5458,12 @@ msgid "Minimap scan height" msgstr "Высота сканирования миникарты" #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "3D-шум, определяющий количество подземелий в куске карты." +msgstr "Минимальный предел случайного количества больших пещер на кусок карты." #: src/settings_translation_file.cpp msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" +msgstr "Минимальное количество маленьких пещер на кусок карты." #: src/settings_translation_file.cpp msgid "Minimum texture size" @@ -5638,9 +5629,6 @@ msgid "" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" "Количество возникающих потоков для использования.\n" -"ВНИМАНИЕ: Пока могут появляться ошибки, вызывающие сбой, если\n" -"«num_emerge_threads» больше 1. Строго рекомендуется использовать\n" -"значение «1», до тех пор, пока предупреждение не будет убрано.\n" "Значение 0:\n" "- Автоматический выбор. Количество потоков будет\n" "- «число процессоров - 2», минимально — 1.\n" @@ -5648,8 +5636,8 @@ msgstr "" "- Указывает количество потоков, минимально — 1.\n" "ВНИМАНИЕ: Увеличение числа потоков улучшает быстродействие движка\n" "картогенератора, но может снижать производительность игры, мешая другим\n" -"процессам, особенно в одиночной игре и при запуске кода Lua в " -"«on_generated».\n" +"процессам, особенно в одиночной игре и при запуске кода Lua в «on_generated»." +"\n" "Для большинства пользователей наилучшим значением может быть «1»." #: src/settings_translation_file.cpp @@ -5679,12 +5667,12 @@ msgstr "Непрозрачные жидкости" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" +msgstr "Непрозрачность (альфа) тени позади шрифта по умолчанию, между 0 и 255." #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" +msgstr "Непрозрачность (альфа) тени за резервным шрифтом, между 0 и 255." #: src/settings_translation_file.cpp msgid "" @@ -5731,12 +5719,20 @@ msgid "" "This font will be used for certain languages or if the default font is " "unavailable." msgstr "" +"Путь к резервному шрифту.\n" +"Если параметр «freetype» включён: должен быть шрифтом TrueType.\n" +"Если параметр «freetype» отключён: должен быть векторным XML-шрифтом.\n" +"Этот шрифт будет использоваться для некоторых языков или если стандартный " +"шрифт недоступен." #: src/settings_translation_file.cpp msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Путь для сохранения скриншотов. Может быть абсолютным или относительным " +"путем.\n" +"Папка будет создана, если она еще не существует." #: src/settings_translation_file.cpp msgid "" @@ -5758,6 +5754,11 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "The fallback font will be used if the font cannot be loaded." msgstr "" +"Путь к шрифту по умолчанию.\n" +"Если параметр «freetype» включен: должен быть шрифт TrueType.\n" +"Если параметр «freetype» отключен: это должен быть растровый или векторный " +"шрифт XML.\n" +"Резервный шрифт будет использоваться, если шрифт не может быть загружен." #: src/settings_translation_file.cpp msgid "" @@ -5766,6 +5767,11 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "This font is used for e.g. the console and profiler screen." msgstr "" +"Путь к моноширинному шрифту.\n" +"Если параметр «freetype» включен: должен быть шрифт TrueType.\n" +"Если параметр «freetype» отключен: это должен быть растровый или векторный " +"шрифт XML.\n" +"Этот шрифт используется, например, для экран консоли и экрана профилей." #: src/settings_translation_file.cpp msgid "Pause on lost window focus" @@ -5773,12 +5779,11 @@ msgstr "Пауза при потере фокуса" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" -msgstr "" +msgstr "Ограничение поочередной загрузки блоков с диска на игрока" #: src/settings_translation_file.cpp -#, fuzzy msgid "Per-player limit of queued blocks to generate" -msgstr "Ограничение очередей emerge для генерации" +msgstr "Ограничение для каждого игрока в очереди блоков для генерации" #: src/settings_translation_file.cpp msgid "Physics" @@ -5862,7 +5867,7 @@ msgstr "Профилирование" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "адрес приёмника Prometheus" #: src/settings_translation_file.cpp msgid "" @@ -5871,10 +5876,14 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Адрес приёмника Prometheus.\n" +"Если мой тест скомпилирован с включенной опцией ENABLE_PROMETHEUS,\n" +"включить приемник метрик для Prometheus по этому адресу.\n" +"Метрики можно получить на http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." -msgstr "" +msgstr "Доля больших пещер, которые содержат жидкость." #: src/settings_translation_file.cpp msgid "" @@ -5902,9 +5911,8 @@ msgid "Recent Chat Messages" msgstr "Недавние сообщения чата" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" -msgstr "Путь для сохранения отчётов" +msgstr "Стандартный путь шрифта" #: src/settings_translation_file.cpp msgid "Remote media" @@ -6211,7 +6219,6 @@ msgstr "" "в чат." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." @@ -6220,16 +6227,14 @@ msgstr "" "Требует, чтобы шейдеры были включены." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" -"Установка в true включает волны на воде.\n" +"Установка в true включает волнистые жидкости (например, вода).\n" "Требует, чтобы шейдеры были включены." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." @@ -6253,18 +6258,20 @@ msgstr "" "Работают только с видео-бэкендом OpenGL." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." -msgstr "Смещение тени шрифта. Если указан 0, то тень не будет показана." +msgstr "" +"Смещение тени стандартного шрифта (в пикселях). Если указан 0, то тень не " +"будет показана." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." -msgstr "Смещение тени шрифта. Если указан 0, то тень не будет показана." +msgstr "" +"Смещение тени резервного шрифта (в пикселях). Если указан 0, то тень не " +"будет показана." #: src/settings_translation_file.cpp msgid "Shape of the minimap. Enabled = round, disabled = square." @@ -6321,11 +6328,11 @@ msgstr "Склон и заполнение работают совместно #: src/settings_translation_file.cpp msgid "Small cave maximum number" -msgstr "" +msgstr "Максимальное количество маленьких пещер" #: src/settings_translation_file.cpp msgid "Small cave minimum number" -msgstr "" +msgstr "Минимальное количество маленьких пещер" #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." @@ -6400,16 +6407,19 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"Устанавливает размер стека нодов, предметов и инструментов по-умолчанию.\n" +"Обратите внимание, что моды или игры могут явно установить стек для " +"определенных (или всех) предметов." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Spread of light curve boost range.\n" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" -"Распространение среднего подъёма кривой света.\n" -"Стандартное отклонение среднего подъёма по Гауссу." +"Диапазон увеличения кривой света.\n" +"Регулирует ширину увеличиваемого диапазона.\n" +"Стандартное отклонение усиления кривой света по Гауссу." #: src/settings_translation_file.cpp msgid "Static spawnpoint" @@ -6428,9 +6438,8 @@ msgid "Step mountain spread noise" msgstr "Шаг шума распространения гор" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." -msgstr "Сила параллакса." +msgstr "Сила параллакса в 3D режиме." #: src/settings_translation_file.cpp msgid "Strength of generated normalmaps." @@ -6442,6 +6451,9 @@ msgid "" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" +"Сила искажения света.\n" +"3 параметра 'усиления' определяют предел искажения света,\n" +"который увеличивается в освещении." #: src/settings_translation_file.cpp msgid "Strict protocol checking" @@ -6464,6 +6476,21 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Уровень поверхности необязательной воды размещенной на твердом слое парящих " +"островов. \n" +"Вода по умолчанию отключена и будет размещена только в том случае, если это " +"значение \n" +"будет установлено выше «mgv7_floatland_ymax» - «mgv7_floatland_taper» \n" +"(начало верхнего сужения).\n" +"*** ПРЕДУПРЕЖДЕНИЕ, ПОТЕНЦИАЛЬНАЯ ОПАСНОСТЬ ДЛЯ МИРОВ И РАБОТЫ СЕРВЕРА ***:\n" +"При включении размещения воды парящих островов должны быть сконфигурированы " +"и проверены \n" +"на наличие сплошного слоя, установив «mgv7_floatland_density» на 2,0 (или " +"другое \n" +"требуемое значение в зависимости от «mgv7_np_floatland»), чтобы избежать \n" +"чрезмерного интенсивного потока воды на сервере и избежать обширного " +"затопления\n" +"поверхности мира внизу." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6580,6 +6607,11 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" +"Максимальная высота поверхности волнистых жидкостей.\n" +"4.0 = высота волны равна двум нодам.\n" +"0.0 = волна не двигается вообще.\n" +"Значение по умолчанию — 1.0 (1/2 ноды).\n" +"Требует, чтобы волнистые жидкости были включены." #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." @@ -6753,7 +6785,6 @@ msgid "Trilinear filtering" msgstr "Трилинейная фильтрация" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6803,9 +6834,8 @@ msgid "Upper Y limit of dungeons." msgstr "Верхний лимит Y для подземелий." #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "Верхний лимит Y для подземелий." +msgstr "Верхний лимит Y для парящих островов." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." @@ -6944,13 +6974,12 @@ msgid "Volume" msgstr "Громкость" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" -"Включает Parallax Occlusion.\n" -"Требует, чтобы шейдеры были включены." +"Громкость всех звуков.\n" +"Требуется включить звуковую систему." #: src/settings_translation_file.cpp msgid "" @@ -6997,24 +7026,20 @@ msgid "Waving leaves" msgstr "Покачивание листвы" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "Покачивание жидкостей" +msgstr "Волнистые жидкости" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "Высота волн на воде" +msgstr "Высота волн волнистых жидкостей" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" -msgstr "Скорость волн на воде" +msgstr "Скорость волн волнистых жидкостей" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "Длина волн на воде" +msgstr "Длина волн волнистых жидкостей" #: src/settings_translation_file.cpp msgid "Waving plants" @@ -7068,14 +7093,14 @@ msgstr "" "автомасштабирования текстур." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" -"Использовать шрифты FreeType. Поддержка FreeType должна быть включена при " -"сборке." +"Использовать ли шрифты FreeType. Поддержка FreeType должна быть включена при " +"сборке.\n" +"Если отключено, используются растровые и XML-векторные изображения." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7114,6 +7139,10 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" +"Отключить ли звуки. Вы можете включить звуки в любое время, если \n" +"звуковая система не отключена (enable_sound=false). \n" +"В игре, вы можете отключить их с помощью клавиши mute\n" +"или вызывая меню паузы." #: src/settings_translation_file.cpp msgid "" @@ -7198,6 +7227,10 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Y-расстояние, на котором равнины сужаются от полной плотности до нуля.\n" +"Сужение начинается на этом расстоянии от предела Y.\n" +"Для твердого слоя парящих островов это контролирует высоту холмов/гор.\n" +"Должно быть меньше или равно половине расстояния между пределами Y." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." From 08c0b8783dbbc8c084f1479e36b1371d164e1690 Mon Sep 17 00:00:00 2001 From: Maksim Gamarnik Date: Fri, 17 Jul 2020 20:41:44 +0000 Subject: [PATCH 386/624] Translated using Weblate (Russian) Currently translated at 99.6% (1345 of 1350 strings) --- po/ru/minetest.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 1d0f1a87c..05fc86430 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-07-23 18:41+0000\n" -"Last-Translator: Nikita Epifanov \n" +"Last-Translator: Maksim Gamarnik \n" "Language-Team: Russian \n" "Language: ru\n" @@ -334,7 +334,7 @@ msgstr "Горы" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Грязевой поток" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" @@ -383,15 +383,15 @@ msgstr "Структуры, появляющиеся на местности, о #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Умеренный пояс, Пустыня" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Умеренный пояс, Пустыня, Джунгли" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Умеренный пояс, Пустыня, Джунгли, Тундра, Тайга" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" @@ -407,7 +407,7 @@ msgstr "Изменить глубину рек" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Очень большие пещеры глубоко под землей" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." From fbd62e4097f508ec1df662c6c9c078c263259539 Mon Sep 17 00:00:00 2001 From: abidin toumi Date: Wed, 22 Jul 2020 04:39:32 +0000 Subject: [PATCH 387/624] Translated using Weblate (Arabic) Currently translated at 13.5% (183 of 1350 strings) --- po/ar/minetest.po | 535 ++++++++++++++++++++++++++-------------------- 1 file changed, 306 insertions(+), 229 deletions(-) diff --git a/po/ar/minetest.po b/po/ar/minetest.po index 9bda5109d..851888bc8 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-27 20:41+0000\n" +"PO-Revision-Date: 2020-10-29 16:26+0000\n" "Last-Translator: abidin toumi \n" "Language-Team: Arabic \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -173,7 +173,7 @@ msgstr "عُد للقائمة الرئيسة" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "لا يمكن استخدام ContentDB عند بناء Minetest بدون cURL" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." @@ -199,7 +199,7 @@ msgstr "التعديلات" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "تعذر استيراد الحزم" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" @@ -232,31 +232,31 @@ msgstr "إسم العالم \"$1\" موجود مسبقاً" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "تضاريس إضافية" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "تبريد مع زيادة الارتفاع" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "نقص الرطوبة مع الارتفاع" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "دمج المواطن البيئية" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "مواطن بيئية" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "مغارات" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "كهوف" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -276,19 +276,17 @@ msgstr "نزِّل لعبة من minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "الزنزانات" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" msgstr "أرض مسطحة" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" msgstr "أرض عائمة في السماء" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" msgstr "أراضيٌ عائمة (تجريبية)" @@ -298,7 +296,7 @@ msgstr "اللعبة" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "ولد تضاريس غير كسورية: محيطات وباطن الأرض" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" @@ -306,11 +304,11 @@ msgstr "التلال" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "أنهار رطبة" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "زِد الرطوبة قرب الأنهار" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" @@ -338,7 +336,7 @@ msgstr "جبال" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "تدفق الطين" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" @@ -367,17 +365,17 @@ msgstr "أنهار بمستوى البحر" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "" +msgstr "البذرة" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "تغيير سلس للمناطق البيئية" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "المنشآت السطحية (لا تأثر على الأشجار والأعشاب المنشأة ب v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" @@ -393,11 +391,11 @@ msgstr "معتدل، صحراء، غابة" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "المعتدلة, الصحراء, الغابة, التندرا, التايغا" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "تآكل التربة" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" @@ -542,7 +540,7 @@ msgstr "يحب أن لا تزيد القيمة عن $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" -msgstr "" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" @@ -570,7 +568,7 @@ msgstr "" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" -msgstr "" +msgstr "القيمة المطلقة" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options @@ -585,7 +583,7 @@ msgstr "إفتراضي" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" -msgstr "" +msgstr "مخفف" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" @@ -609,7 +607,7 @@ msgstr "تثبيت تعديل: لا يمكن العصور على اسم مجلد #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" +msgstr "يثبت: نوع الملف \"$1\" غير مدعوم أو هو أرشيف تالف" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" @@ -617,7 +615,7 @@ msgstr "ثبت: الملف: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "" +msgstr "فشل إيجاد تعديل أو حزمة تعديلات صالحة" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -625,7 +623,7 @@ msgstr "فشل تثبيت $1 كحزمة إكساء" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" -msgstr "فشل تثبيت اللعبة كـ $1" +msgstr "فشل تثبيت اللعبة ك $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a mod as a $1" @@ -633,7 +631,7 @@ msgstr "فشل تثبيت التعديل كـ $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" -msgstr "" +msgstr "تعذر تثبيت حزمة التعديلات مثل $1" #: builtin/mainmenu/tab_content.lua msgid "Browse online content" @@ -665,7 +663,7 @@ msgstr "لايتوفر وصف للحزمة" #: builtin/mainmenu/tab_content.lua msgid "Rename" -msgstr "" +msgstr "أعد التسمية" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" @@ -697,18 +695,18 @@ msgstr "المطورون الرئيسيون السابقون" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "" +msgstr "أعلن عن الخادوم" #: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Bind Address" -msgstr "" +msgstr "العنوان المطلوب" #: builtin/mainmenu/tab_local.lua msgid "Configure" msgstr "اضبط" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy msgid "Creative Mode" msgstr "النمط الإبداعي" @@ -769,7 +767,6 @@ msgid "Connect" msgstr "اتصل" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy msgid "Creative mode" msgstr "النمط الإبداعي" @@ -799,13 +796,12 @@ msgstr "" #. ~ PvP = Player versus Player #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy msgid "PvP enabled" msgstr "قتال اللاعبين ممكن" #: builtin/mainmenu/tab_settings.lua msgid "2x" -msgstr "" +msgstr "2x" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" @@ -813,11 +809,11 @@ msgstr "سحب 3D" #: builtin/mainmenu/tab_settings.lua msgid "4x" -msgstr "" +msgstr "4x" #: builtin/mainmenu/tab_settings.lua msgid "8x" -msgstr "" +msgstr "8x" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" @@ -825,11 +821,11 @@ msgstr "كل الإعدادات" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "" +msgstr "التنعييم:" #: builtin/mainmenu/tab_settings.lua msgid "Are you sure to reset your singleplayer world?" -msgstr "" +msgstr "هل أنت متأكد من إعادة تعيين عالم اللاعب الوحيد؟" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" @@ -837,11 +833,11 @@ msgstr "حفظ حجم الشاشة تلقائيا" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" -msgstr "" +msgstr "مرشح خطي ثنائي" #: builtin/mainmenu/tab_settings.lua msgid "Bump Mapping" -msgstr "" +msgstr "خريطة النتوءات" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" @@ -853,7 +849,7 @@ msgstr "زجاج متصل" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" -msgstr "" +msgstr "اوراق بتفاصيل واضحة" #: builtin/mainmenu/tab_settings.lua msgid "Generate Normal Maps" @@ -869,7 +865,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "No" -msgstr "" +msgstr "لا" #: builtin/mainmenu/tab_settings.lua msgid "No Filter" @@ -884,11 +880,11 @@ msgid "Node Highlighting" msgstr "إبراز العقد" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Node Outlining" -msgstr "" +msgstr "عدم إبراز العقد" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "None" msgstr "بدون" @@ -906,7 +902,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Particles" -msgstr "" +msgstr "جسيمات" #: builtin/mainmenu/tab_settings.lua msgid "Reset singleplayer world" @@ -929,7 +925,6 @@ msgid "Shaders (unavailable)" msgstr "مظللات (غير متوفر)" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Simple Leaves" msgstr "أوراق بسيطة" @@ -951,11 +946,11 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" -msgstr "" +msgstr "حساسية اللمس: (بكسل)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" -msgstr "" +msgstr "مرشح خطي ثلاثي" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" @@ -978,7 +973,6 @@ msgid "Config mods" msgstr "اضبط التعديلات" #: builtin/mainmenu/tab_simple_main.lua -#, fuzzy msgid "Main" msgstr "الرئيسية" @@ -1023,7 +1017,6 @@ msgid "Invalid gamespec." msgstr "مواصفات اللعبة غير صالحة." #: src/client/clientlauncher.cpp -#, fuzzy msgid "Main Menu" msgstr "القائمة الرئيسية" @@ -1041,11 +1034,11 @@ msgstr "يرجى اختيار اسم!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "" +msgstr "فشل فتح ملف كلمة المرور المدخل: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " -msgstr "" +msgstr "مسار العالم المدخل غير موجود: " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" @@ -1064,79 +1057,82 @@ msgid "" "\n" "Check debug.txt for details." msgstr "" +"\n" +"راجع debug.txt لمزيد من التفاصيل." #: src/client/game.cpp msgid "- Address: " -msgstr "" +msgstr "- العنوان: " #: src/client/game.cpp msgid "- Creative Mode: " -msgstr "" +msgstr "- النمط الإبداعي: " #: src/client/game.cpp msgid "- Damage: " -msgstr "" +msgstr "- التضرر: " #: src/client/game.cpp msgid "- Mode: " -msgstr "" +msgstr "- النمط: " #: src/client/game.cpp msgid "- Port: " -msgstr "" +msgstr "- المنفذ: " #: src/client/game.cpp msgid "- Public: " -msgstr "" +msgstr "- عام: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "" +msgstr "- قتال اللاعبين: " #: src/client/game.cpp msgid "- Server Name: " -msgstr "" +msgstr "- اسم الخادم: " #: src/client/game.cpp msgid "Automatic forward disabled" -msgstr "" +msgstr "المشي التلقائي معطل" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "" +msgstr "المشي التلقائي ممكن" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "" +msgstr "تحديث الكاميرا معطل" #: src/client/game.cpp msgid "Camera update enabled" -msgstr "" +msgstr "تحديث الكاميرا مفعل" #: src/client/game.cpp msgid "Change Password" -msgstr "" +msgstr "غير كلمة المرور" #: src/client/game.cpp msgid "Cinematic mode disabled" -msgstr "" +msgstr "الوضع السينمائي معطل" #: src/client/game.cpp msgid "Cinematic mode enabled" -msgstr "" +msgstr "الوضع السينمائي مفعل" #: src/client/game.cpp +#, fuzzy msgid "Client side scripting is disabled" -msgstr "" +msgstr "البرمجة النصية للعميل معطلة" #: src/client/game.cpp msgid "Connecting to server..." -msgstr "" +msgstr "يتصل بالخادوم…" #: src/client/game.cpp msgid "Continue" -msgstr "" +msgstr "تابع" #: src/client/game.cpp #, c-format @@ -1156,22 +1152,36 @@ msgid "" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" +"أزرار التحكم:\n" +"- %s: سر للأمام\n" +"- %s: سر للخلف\n" +"- %s: سر يسارا\n" +"- %s: سر يمينا\n" +"- %s: اقفز/تسلق\n" +"- %s: ازحف/انزل\n" +"- %s: ارمي عنصر\n" +"- %s: افتح المخزن\n" +"- تحريك الفأرة: دوران\n" +"- زر الفأرة الأيمن: احفر/الكم\n" +"- زر الفأرة الأيسر: ضع/استخدم\n" +"- عجلة الفأرة: غيير العنصر\n" +"- -%s: دردشة\n" #: src/client/game.cpp msgid "Creating client..." -msgstr "" +msgstr "ينشىء عميلا…" #: src/client/game.cpp msgid "Creating server..." -msgstr "" +msgstr "ينشىء خادوما…" #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "معلومات التنقيح ومنحنى محلل البيانات مخفيان" #: src/client/game.cpp msgid "Debug info shown" -msgstr "" +msgstr "معلومات التنقيح مرئية" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" @@ -1192,114 +1202,126 @@ msgid "" "- touch&drag, tap 2nd finger\n" " --> place single item to slot\n" msgstr "" +"اعدادات التحكم الافتراضية: \n" +"بدون قائمة مرئية: \n" +"- لمسة واحدة: زر تفعيل\n" +"- لمسة مزدوجة: ضع/استخدم\n" +"- تحريك إصبع: دوران\n" +"المخزن أو قائمة مرئية: \n" +"- لمسة مزدوجة (خارج القائمة): \n" +" --> اغلق القائمة\n" +"- لمس خانة أو تكديس: \n" +" --> حرك التكديس\n" +"- لمس وسحب, ولمس باصبع ثان: \n" +" --> وضع عنصر واحد في خانة\n" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "" +msgstr "مدى الرؤية غير المحدود معطل" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "" +msgstr "مدى الرؤية غير المحدود مفعل" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "" +msgstr "اخرج للقائمة" #: src/client/game.cpp msgid "Exit to OS" -msgstr "" +msgstr "اخرج لنظام التشغيل" #: src/client/game.cpp msgid "Fast mode disabled" -msgstr "" +msgstr "نمط السرعة معطل" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "" +msgstr "نمط السرعة مفعل" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" +msgstr "نمط السرعة مفعل (ملاحظة: لا تمتلك امتياز 'السرعة')" #: src/client/game.cpp msgid "Fly mode disabled" -msgstr "" +msgstr "نمط الطيران معطل" #: src/client/game.cpp msgid "Fly mode enabled" -msgstr "" +msgstr "نمط الطيران مفعل" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" +msgstr "نمط الطيران مفعل (ملاحظة: لا تمتلك امتياز 'الطيران')" #: src/client/game.cpp msgid "Fog disabled" -msgstr "" +msgstr "الضباب معطل" #: src/client/game.cpp msgid "Fog enabled" -msgstr "" +msgstr "الضباب مفعل" #: src/client/game.cpp msgid "Game info:" -msgstr "" +msgstr "معلومات اللعبة:" #: src/client/game.cpp msgid "Game paused" -msgstr "" +msgstr "اللعبة موقفة مؤقتا" #: src/client/game.cpp msgid "Hosting server" -msgstr "" +msgstr "استضافة خادوم" #: src/client/game.cpp msgid "Item definitions..." -msgstr "" +msgstr "تعريف العنصر…" #: src/client/game.cpp msgid "KiB/s" -msgstr "" +msgstr "كب\\ثا" #: src/client/game.cpp msgid "Media..." -msgstr "" +msgstr "وسائط…" #: src/client/game.cpp msgid "MiB/s" -msgstr "" +msgstr "مب\\ثا" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "" +msgstr "الخريطة المصغرة معطلة من قبل لعبة أو تعديل" #: src/client/game.cpp msgid "Minimap hidden" -msgstr "" +msgstr "الخريطة المصغرة مخفية" #: src/client/game.cpp msgid "Minimap in radar mode, Zoom x1" -msgstr "" +msgstr "الخريطة المصغرة في وضع الرادار، تكبير x1" #: src/client/game.cpp msgid "Minimap in radar mode, Zoom x2" -msgstr "" +msgstr "الخريطة المصغرة في وضع الرادار، تكبير x2" #: src/client/game.cpp msgid "Minimap in radar mode, Zoom x4" -msgstr "" +msgstr "الخريطة المصغرة في وضع الرادار، تكبير x4" #: src/client/game.cpp msgid "Minimap in surface mode, Zoom x1" -msgstr "" +msgstr "الخريطة المصغرة في وضع الأسطح، تكبير x1" #: src/client/game.cpp msgid "Minimap in surface mode, Zoom x2" -msgstr "" +msgstr "الخريطة المصغرة في وضع الأسطح، تكبير x2" #: src/client/game.cpp msgid "Minimap in surface mode, Zoom x4" -msgstr "" +msgstr "الخريطة المصغرة في وضع الأسطح، تكبير x4" #: src/client/game.cpp msgid "Noclip mode disabled" @@ -1315,15 +1337,15 @@ msgstr "" #: src/client/game.cpp msgid "Node definitions..." -msgstr "" +msgstr "تعريفات العقدة..." #: src/client/game.cpp msgid "Off" -msgstr "" +msgstr "معطّل" #: src/client/game.cpp msgid "On" -msgstr "" +msgstr "مفعل" #: src/client/game.cpp msgid "Pitch move mode disabled" @@ -1335,63 +1357,63 @@ msgstr "" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "منحنى محلل البيانات ظاهر" #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "خادوم بعيد" #: src/client/game.cpp msgid "Resolving address..." -msgstr "" +msgstr "يستورد العناوين…" #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "يغلق…" #: src/client/game.cpp msgid "Singleplayer" -msgstr "" +msgstr "لاعب منفرد" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "حجم الصوت" #: src/client/game.cpp msgid "Sound muted" -msgstr "" +msgstr "الصوت مكتوم" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "نظام الصوت معطل" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "نظام الصوت غير مدمج أثناء البناء" #: src/client/game.cpp msgid "Sound unmuted" -msgstr "" +msgstr "الصوت غير مكتوم" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "غُيرَ مدى الرؤية الى %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "مدى الرؤية في أقصى حد: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "مدى الرؤية في أدنى حد: %d" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr "غُير الحجم الى %d%%" #: src/client/game.cpp msgid "Wireframe shown" @@ -1399,60 +1421,61 @@ msgstr "" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "التكبير معطل من قبل لعبة أو تعديل" #: src/client/game.cpp msgid "ok" -msgstr "" +msgstr "موافق" #: src/client/gameui.cpp msgid "Chat hidden" -msgstr "" +msgstr "الدردشة مخفية" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" +msgstr "الدردشة ظاهرة" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "الواجهة مخفية" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "الواجهة ظاهرة" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "محلل البيانات مخفي" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "محلل البيانات ظاهر ( صفحة %d من %d)" #: src/client/keycode.cpp msgid "Apps" -msgstr "" +msgstr "تطبيقات" #: src/client/keycode.cpp msgid "Backspace" -msgstr "" +msgstr "Backspace" #: src/client/keycode.cpp msgid "Caps Lock" -msgstr "" +msgstr "Caps Lock" #: src/client/keycode.cpp msgid "Clear" -msgstr "" +msgstr "امسح" #: src/client/keycode.cpp +#, fuzzy msgid "Control" -msgstr "" +msgstr "Control" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "أسفل" #: src/client/keycode.cpp msgid "End" @@ -1467,239 +1490,288 @@ msgid "Execute" msgstr "" #: src/client/keycode.cpp +#, fuzzy msgid "Help" -msgstr "" +msgstr "Help" #: src/client/keycode.cpp +#, fuzzy msgid "Home" -msgstr "" +msgstr "Home" #: src/client/keycode.cpp +#, fuzzy msgid "IME Accept" -msgstr "" +msgstr "IME Accept" #: src/client/keycode.cpp +#, fuzzy msgid "IME Convert" -msgstr "" +msgstr "IME Convert" #: src/client/keycode.cpp +#, fuzzy msgid "IME Escape" -msgstr "" +msgstr "IME Escape" #: src/client/keycode.cpp +#, fuzzy msgid "IME Mode Change" -msgstr "" +msgstr "IME Mode Change" #: src/client/keycode.cpp +#, fuzzy msgid "IME Nonconvert" -msgstr "" +msgstr "IME Nonconvert" #: src/client/keycode.cpp +#, fuzzy msgid "Insert" -msgstr "" +msgstr "Insert" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "" +msgstr "يسار" #: src/client/keycode.cpp msgid "Left Button" -msgstr "" +msgstr "الزر الأيسر" #: src/client/keycode.cpp +#, fuzzy msgid "Left Control" -msgstr "" +msgstr "Left Control" #: src/client/keycode.cpp msgid "Left Menu" -msgstr "" +msgstr "القائمة اليسرى" #: src/client/keycode.cpp +#, fuzzy msgid "Left Shift" -msgstr "" +msgstr "Left Shift" #: src/client/keycode.cpp +#, fuzzy msgid "Left Windows" -msgstr "" +msgstr "Left Windows" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp +#, fuzzy msgid "Menu" -msgstr "" +msgstr "Menu" #: src/client/keycode.cpp +#, fuzzy msgid "Middle Button" -msgstr "" +msgstr "Middle Button" #: src/client/keycode.cpp +#, fuzzy msgid "Num Lock" -msgstr "" +msgstr "Num Lock" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad *" -msgstr "" +msgstr "Numpad *" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad +" -msgstr "" +msgstr "Numpad +" #: src/client/keycode.cpp msgid "Numpad -" msgstr "" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad ." -msgstr "" +msgstr "Numpad ." #: src/client/keycode.cpp +#, fuzzy msgid "Numpad /" -msgstr "" +msgstr "Numpad /" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 0" -msgstr "" +msgstr "Numpad 0" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 1" -msgstr "" +msgstr "Numpad 1" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 2" -msgstr "" +msgstr "Numpad 2" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 3" -msgstr "" +msgstr "Numpad 3" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 4" -msgstr "" +msgstr "Numpad 4" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 5" -msgstr "" +msgstr "Numpad 5" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 6" -msgstr "" +msgstr "Numpad 6" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 7" -msgstr "" +msgstr "Numpad 7" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 8" -msgstr "" +msgstr "Numpad 8" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 9" -msgstr "" +msgstr "Numpad 9" #: src/client/keycode.cpp +#, fuzzy msgid "OEM Clear" -msgstr "" +msgstr "OEM Clear" #: src/client/keycode.cpp +#, fuzzy msgid "Page down" -msgstr "" +msgstr "Page down" #: src/client/keycode.cpp +#, fuzzy msgid "Page up" -msgstr "" +msgstr "Page up" #: src/client/keycode.cpp +#, fuzzy msgid "Pause" -msgstr "" +msgstr "Pause" #: src/client/keycode.cpp +#, fuzzy msgid "Play" -msgstr "" +msgstr "Play" #. ~ "Print screen" key #: src/client/keycode.cpp +#, fuzzy msgid "Print" -msgstr "" +msgstr "Print" #: src/client/keycode.cpp +#, fuzzy msgid "Return" -msgstr "" +msgstr "Return" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +#, fuzzy msgid "Right" -msgstr "" +msgstr "Right" #: src/client/keycode.cpp msgid "Right Button" msgstr "" #: src/client/keycode.cpp +#, fuzzy msgid "Right Control" -msgstr "" +msgstr "Right Control" #: src/client/keycode.cpp +#, fuzzy msgid "Right Menu" -msgstr "" +msgstr "Right Menu" #: src/client/keycode.cpp +#, fuzzy msgid "Right Shift" -msgstr "" +msgstr "Right Shift" #: src/client/keycode.cpp +#, fuzzy msgid "Right Windows" -msgstr "" +msgstr "Right Windows" #: src/client/keycode.cpp +#, fuzzy msgid "Scroll Lock" -msgstr "" +msgstr "Scroll Lock" #. ~ Key name #: src/client/keycode.cpp +#, fuzzy msgid "Select" -msgstr "" +msgstr "Select" #: src/client/keycode.cpp +#, fuzzy msgid "Shift" -msgstr "" +msgstr "Shift" #: src/client/keycode.cpp +#, fuzzy msgid "Sleep" -msgstr "" +msgstr "Sleep" #: src/client/keycode.cpp +#, fuzzy msgid "Snapshot" -msgstr "" +msgstr "Snapshot" #: src/client/keycode.cpp msgid "Space" msgstr "" #: src/client/keycode.cpp +#, fuzzy msgid "Tab" -msgstr "" +msgstr "Tab" #: src/client/keycode.cpp +#, fuzzy msgid "Up" -msgstr "" +msgstr "Up" #: src/client/keycode.cpp +#, fuzzy msgid "X Button 1" -msgstr "" +msgstr "X Button 1" #: src/client/keycode.cpp +#, fuzzy msgid "X Button 2" -msgstr "" +msgstr "X Button 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" -msgstr "" +msgstr "كبِر" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "" +msgstr "كلمتا المرور غير متطابقتين!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "سجل وادخل" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1710,38 +1782,41 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" +"أنت على وشك دخول هذا الخادوم للمرة الأولى باسم \"%s\".\n" +"اذا رغبت بالاستمرار سيتم إنشاء حساب جديد باستخدام بياناتك الاعتمادية.\n" +"لتأكيد التسجيل ادخل كلمة مرورك وانقر 'سجل وادخل'، أو 'ألغ' للإلغاء." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" -msgstr "" +msgstr "تابع" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "" +msgstr "\"خاص\" = التسلق نزولا" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" -msgstr "" +msgstr "المشي التلقائي" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "" +msgstr "القفز التلقائي" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" -msgstr "" +msgstr "للخلف" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "" +msgstr "غير الكاميرا" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "" +msgstr "دردشة" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" -msgstr "" +msgstr "الأوامر" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" @@ -1757,15 +1832,15 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "" +msgstr "اضغط مرتين على \"اقفز\" لتفعيل الطيران" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" -msgstr "" +msgstr "اسقاط" #: src/gui/guiKeyChangeMenu.cpp msgid "Forward" -msgstr "" +msgstr "للأمام" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" @@ -1777,15 +1852,15 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" -msgstr "" +msgstr "المخزن" #: src/gui/guiKeyChangeMenu.cpp msgid "Jump" -msgstr "" +msgstr "اقفز" #: src/gui/guiKeyChangeMenu.cpp msgid "Key already in use" -msgstr "" +msgstr "المفتاح مستخدم مسبقا" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" @@ -1797,23 +1872,23 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "" +msgstr "اكتم" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" -msgstr "" +msgstr "العنصر التالي" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" -msgstr "" +msgstr "العنصر السابق" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "" +msgstr "حدد المدى" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "" +msgstr "صوّر الشاشة" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" @@ -1821,31 +1896,31 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" +msgstr "خاص" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "" +msgstr "بدّل عرض الواجهة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "" +msgstr "بدّل عرض سجل المحادثة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "" +msgstr "بدّل وضع السرعة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "" +msgstr "بدّل حالة الطيران" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "" +msgstr "بدّل ظهور الضباب" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "" +msgstr "بدّل ظهور الخريطة المصغرة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" @@ -1857,41 +1932,41 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "" +msgstr "اضغط على زر" #: src/gui/guiPasswordChange.cpp msgid "Change" -msgstr "" +msgstr "غيِّر" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "" +msgstr "أكد كلمة المرور" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "" +msgstr "كلمة مرور جديدة" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "" +msgstr "كلمة المرور القديمة" #: src/gui/guiVolumeChange.cpp msgid "Exit" -msgstr "" +msgstr "أخرج" #: src/gui/guiVolumeChange.cpp msgid "Muted" -msgstr "" +msgstr "مكتوم" #: src/gui/guiVolumeChange.cpp msgid "Sound Volume: " -msgstr "" +msgstr "حجم الصوت: " #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " -msgstr "" +msgstr "أدخل " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -1905,6 +1980,8 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(أندرويد) ثبت موقع عصى التحكم.\n" +"اذا عُطل ستنتقل عصى التحكم لموقع اللمسة الأولى." #: src/settings_translation_file.cpp msgid "" @@ -2042,7 +2119,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" +msgstr "رسالة تعرض لكل العملاء عند اغلاق الخادم." #: src/settings_translation_file.cpp msgid "ABM interval" @@ -3020,11 +3097,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Field of view" -msgstr "" +msgstr "حقل الرؤية" #: src/settings_translation_file.cpp msgid "Field of view in degrees." -msgstr "" +msgstr "حقل الرؤية بالدرجات." #: src/settings_translation_file.cpp msgid "" @@ -4501,7 +4578,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Load the game profiler" -msgstr "" +msgstr "حمّل محلل بيانات اللعبة" #: src/settings_translation_file.cpp msgid "" From e0ff898bfd39b73f2931681d73ca6d817212adf5 Mon Sep 17 00:00:00 2001 From: Marian Date: Wed, 22 Jul 2020 18:13:56 +0000 Subject: [PATCH 388/624] Translated using Weblate (Slovak) Currently translated at 100.0% (1350 of 1350 strings) --- po/sk/minetest.po | 1205 +++++++++++++++++++++++++++++---------------- 1 file changed, 781 insertions(+), 424 deletions(-) diff --git a/po/sk/minetest.po b/po/sk/minetest.po index 405e574c9..62e4dcae5 100644 --- a/po/sk/minetest.po +++ b/po/sk/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-17 08:41+0000\n" -"Last-Translator: daretmavi \n" +"PO-Revision-Date: 2020-11-17 08:28+0000\n" +"Last-Translator: Marian \n" "Language-Team: Slovak \n" "Language: sk\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" @@ -95,7 +95,7 @@ msgstr "Popis hry nie je k dispozícií." #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" -msgstr "Rozšírenie:" +msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" @@ -146,7 +146,7 @@ msgstr "Aktivuj balíček rozšírení" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "povolené" +msgstr "aktívne" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" @@ -154,7 +154,7 @@ msgstr "Deaktivuj všetko" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "Povoľ všetko" +msgstr "Aktivuj všetko" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -470,7 +470,7 @@ msgstr "Vypnuté" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "Povolené" +msgstr "Aktivované" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" @@ -593,7 +593,7 @@ msgstr "Zobraz technické názvy" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" -msgstr "$1 (povolený)" +msgstr "$1 (Aktivované)" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -724,7 +724,7 @@ msgstr "Kreatívny mód" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Enable Damage" -msgstr "Povoľ zranenie" +msgstr "Aktivuj zranenie" #: builtin/mainmenu/tab_local.lua msgid "Host Server" @@ -796,12 +796,12 @@ msgstr "Kreatívny mód" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Damage enabled" -msgstr "Poškodenie je povolené" +msgstr "Poškodenie je aktivované" #. ~ PvP = Player versus Player #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "PvP enabled" -msgstr "PvP je povolené" +msgstr "PvP je aktívne" #: builtin/mainmenu/tab_online.lua msgid "Join Game" @@ -821,11 +821,11 @@ msgstr "Ozdobné listy" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" -msgstr "Obrys bloku" +msgstr "Obrys kocky" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "Nasvietenie bloku" +msgstr "Nasvietenie kocky" #: builtin/mainmenu/tab_settings.lua msgid "None" @@ -941,7 +941,7 @@ msgstr "Dotykový prah: (px)" #: builtin/mainmenu/tab_settings.lua msgid "Bump Mapping" -msgstr "Ilúzia nerovnosti (Bump Mapping)" +msgstr "Bump Mapping (Ilúzia nerovnosti)" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" @@ -969,7 +969,7 @@ msgstr "Vlniace sa rastliny" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "Aby mohli byť povolené shadery, musí sa použiť OpenGL." +msgstr "Aby mohli byť aktivované shadery, musí sa použiť OpenGL." #: builtin/mainmenu/tab_settings.lua msgid "Settings" @@ -1001,11 +1001,11 @@ msgstr "Obnovujem shadery..." #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "Inicializujem bloky..." +msgstr "Inicializujem kocky..." #: src/client/client.cpp msgid "Initializing nodes" -msgstr "Inicializujem bloky" +msgstr "Inicializujem kocky" #: src/client/client.cpp msgid "Done!" @@ -1085,7 +1085,7 @@ msgstr "Definície vecí..." #: src/client/game.cpp msgid "Node definitions..." -msgstr "Definície blokov..." +msgstr "Definície kocky..." #: src/client/game.cpp msgid "Media..." @@ -1130,11 +1130,11 @@ msgstr "ok" #: src/client/game.cpp msgid "Fly mode enabled" -msgstr "Režim lietania je povolený" +msgstr "Režim lietania je aktívny" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Režim lietania je povolený (poznámka: chýba právo 'fly')" +msgstr "Režim lietania je aktívny (poznámka: chýba právo 'fly')" #: src/client/game.cpp msgid "Fly mode disabled" @@ -1142,7 +1142,7 @@ msgstr "Režim lietania je zakázaný" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "Režim pohybu podľa sklonu je povolený" +msgstr "Režim pohybu podľa sklonu je aktívny" #: src/client/game.cpp msgid "Pitch move mode disabled" @@ -1150,11 +1150,11 @@ msgstr "Režim pohybu podľa sklonu je zakázaný" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "Rýchly režim je povolený" +msgstr "Rýchly režim je aktívny" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Rýchly režim je povolený (poznámka: chýba právo 'fast')" +msgstr "Rýchly režim je aktivovaný (poznámka: chýba právo 'fast')" #: src/client/game.cpp msgid "Fast mode disabled" @@ -1162,11 +1162,12 @@ msgstr "Rýchly režim je zakázaný" #: src/client/game.cpp msgid "Noclip mode enabled" -msgstr "Režim prechádzania stenami je povolený" +msgstr "Režim prechádzania stenami je aktivovaný" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Režim prechádzania stenami je povolený (poznámka: chýba právo 'noclip')" +msgstr "" +"Režim prechádzania stenami je aktivovaný (poznámka: chýba právo 'noclip')" #: src/client/game.cpp msgid "Noclip mode disabled" @@ -1174,7 +1175,7 @@ msgstr "Režim prechádzania stenami je zakázaný" #: src/client/game.cpp msgid "Cinematic mode enabled" -msgstr "Filmový režim je povolený" +msgstr "Filmový režim je aktivovaný" #: src/client/game.cpp msgid "Cinematic mode disabled" @@ -1182,7 +1183,7 @@ msgstr "Filmový režim je zakázaný" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "Automatický pohyb vpred je povolený" +msgstr "Automatický pohyb vpred je aktivovaný" #: src/client/game.cpp msgid "Automatic forward disabled" @@ -1226,7 +1227,7 @@ msgstr "Hmla je vypnutá" #: src/client/game.cpp msgid "Fog enabled" -msgstr "Hmla je povolená" +msgstr "Hmla je aktivovaná" #: src/client/game.cpp msgid "Debug info shown" @@ -1254,7 +1255,7 @@ msgstr "Aktualizácia kamery je zakázaná" #: src/client/game.cpp msgid "Camera update enabled" -msgstr "Aktualizácia kamery je povolená" +msgstr "Aktualizácia kamery je aktivovaná" #: src/client/game.cpp #, c-format @@ -1273,7 +1274,7 @@ msgstr "Dohľadnosť je na minime: %d" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "Neobmedzená dohľadnosť je povolená" +msgstr "Neobmedzená dohľadnosť je aktivovaná" #: src/client/game.cpp msgid "Disabled unlimited viewing range" @@ -1335,7 +1336,7 @@ msgstr "" "- %s: pohyb doľava\n" "- %s: pohyb doprava\n" "- %s: skoč/vylez\n" -"- %s: ísť utajene/choď dole\n" +"- %s: zakrádaj sa/choď dole\n" "- %s: polož vec\n" "- %s: inventár\n" "- Myš: otoč sa/obzeraj sa\n" @@ -1398,11 +1399,11 @@ msgstr "Hra pre jedného hráča" #: src/client/game.cpp msgid "On" -msgstr "Zapnúť" +msgstr "Aktívny" #: src/client/game.cpp msgid "Off" -msgstr "Vypnúť" +msgstr "Vypnutý" #: src/client/game.cpp msgid "- Damage: " @@ -1792,7 +1793,7 @@ msgstr "Skok" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" -msgstr "Ísť utajene" +msgstr "Zakrádať sa" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" @@ -1949,7 +1950,8 @@ msgid "" "you stand.\n" "This is helpful when working with nodeboxes in small areas." msgstr "" -"Ak je povolené, môžeš dať bloky na miesto kde stojíš (v úrovni päta + oči).\n" +"Ak je aktivované, môžeš dať bloky na miesto kde stojíš (v úrovni päta + oči)." +"\n" "Je to užitočné ak pracuješ s kockami v stiesnených priestoroch." #: src/settings_translation_file.cpp @@ -1973,7 +1975,7 @@ msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." msgstr "" -"Ak je povolené, tak je smer pohybu pri lietaní, alebo plávaní daný sklonom " +"Ak je aktivované, tak je smer pohybu pri lietaní, alebo plávaní daný sklonom " "hráča." #: src/settings_translation_file.cpp @@ -1998,8 +2000,8 @@ msgid "" "nodes.\n" "This requires the \"noclip\" privilege on the server." msgstr "" -"Ak je povolený spolu s režimom lietania, tak je hráč schopný letieť cez " -"pevné bloky.\n" +"Ak je aktivovaný spolu s režimom lietania, tak je hráč schopný letieť cez " +"pevné kocky.\n" "Toto si na serveri vyžaduje privilégium \"noclip\"." #: src/settings_translation_file.cpp @@ -2057,8 +2059,8 @@ msgid "" "down and\n" "descending." msgstr "" -"Ak je povolené, použije sa namiesto klávesy pre \"utajený pohyb\" \"špeciálna" -"\" klávesa\n" +"Ak je aktivované, použije sa namiesto klávesy pre \"zakrádanie\" \"špeciálnu " +"klávesu\"\n" "pre klesanie a šplhanie dole." #: src/settings_translation_file.cpp @@ -2079,7 +2081,7 @@ msgid "" "are\n" "enabled." msgstr "" -"Ak je vypnuté, použije sa \"špeciálna\" klávesa na lietanie, v prípade,\n" +"Ak je aktivované, použije sa \"špeciálna\" klávesa na lietanie, v prípade,\n" "že je povolený režim lietania aj rýchlosti." #: src/settings_translation_file.cpp @@ -2097,7 +2099,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "Automaticky vyskočí na prekážku vysokú jeden blok." +msgstr "Automaticky vyskočí na prekážku vysokú jedna kocka." #: src/settings_translation_file.cpp msgid "Safe digging and placing" @@ -2109,7 +2111,7 @@ msgid "" "Enable this when you dig or place too often by accident." msgstr "" "Zabráni opakovanému kopaniu a ukladaniu blokov pri držaní tlačítka myši.\n" -"Povoľ, ak príliš často omylom niečo vykopeš, alebo položíš blok." +"Aktivuj, ak príliš často omylom niečo vykopeš, alebo položíš blok." #: src/settings_translation_file.cpp msgid "Random input" @@ -2117,7 +2119,7 @@ msgstr "Náhodný vstup" #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." -msgstr "Povolí náhodný užívateľský vstup (používa sa len pre testovanie)." +msgstr "Aktivuje náhodný užívateľský vstup (používa sa len pre testovanie)." #: src/settings_translation_file.cpp msgid "Continuous forward" @@ -2164,12 +2166,12 @@ msgid "" "circle." msgstr "" "(Android) Použije virtuálny joystick na stlačenie tlačidla \"aux\".\n" -"Ak je povolené, virtuálny joystick stlačí tlačidlo \"aux\" keď je mimo " +"Ak je aktivované, virtuálny joystick stlačí tlačidlo \"aux\" keď je mimo " "hlavný kruh." #: src/settings_translation_file.cpp msgid "Enable joysticks" -msgstr "Povoľ joysticky" +msgstr "Aktivuj joysticky" #: src/settings_translation_file.cpp msgid "Joystick ID" @@ -2285,7 +2287,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Sneak key" -msgstr "Tlačidlo Ísť utajene" +msgstr "Tlačidlo zakrádania sa" #: src/settings_translation_file.cpp msgid "" @@ -2295,7 +2297,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tlačidlo pre utajený pohyb hráča.\n" +"Tlačidlo pre utajený pohyb (zakrádanie) hráča.\n" "Tiež sa používa pre zliezanie a ponáranie vo vode ak aux1_descends je " "vypnutý.\n" "Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -3197,7 +3199,7 @@ msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" -"Povolí \"vertex buffer objects\".\n" +"Aktivuj \"vertex buffer objects\".\n" "Toto by malo viditeľne zvýšiť grafický výkon." #: src/settings_translation_file.cpp @@ -3231,7 +3233,7 @@ msgstr "Prepojené sklo" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." -msgstr "Prepojí sklo, ak je to podporované blokom." +msgstr "Prepojí sklo, ak je to podporované kockou." #: src/settings_translation_file.cpp msgid "Smooth lighting" @@ -3242,7 +3244,7 @@ msgid "" "Enable smooth lighting with simple ambient occlusion.\n" "Disable for speed or for different looks." msgstr "" -"Povolí jemné nasvietenie pomocou jednoduchej \"ambient occlusion\".\n" +"Aktivuj jemné nasvietenie pomocou jednoduchej \"ambient occlusion\".\n" "Vypni pre zrýchlenie, alebo iný vzhľad." #: src/settings_translation_file.cpp @@ -3263,7 +3265,7 @@ msgstr "Použi 3D mraky namiesto plochých." #: src/settings_translation_file.cpp msgid "Node highlighting" -msgstr "Zvýrazňovanie blokov" +msgstr "Zvýrazňovanie kociek" #: src/settings_translation_file.cpp msgid "Method used to highlight selected object." @@ -3275,7 +3277,7 @@ msgstr "Časticové efekty pri kopaní" #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." -msgstr "Pridá časticové efekty pri vykopávaní bloku." +msgstr "Pridá časticové efekty pri vykopávaní kocky." #: src/settings_translation_file.cpp msgid "Filtering" @@ -3360,7 +3362,7 @@ msgstr "" "vyššia hodnota znamená ostrejší vzhľad, ale potrebuje viac pamäti.\n" "Odporúčané sú mocniny 2. Nastavenie viac než 1 nemusí mať viditeľný efekt,\n" "kým nie je použité bilineárne/trilineárne/anisotropné filtrovanie.\n" -"Toto sa tiež používa ako základná veľkosť textúry blokov pre\n" +"Toto sa tiež používa ako základná veľkosť textúry kociek pre\n" "\"world-aligned autoscaling\" textúr." #: src/settings_translation_file.cpp @@ -3427,7 +3429,7 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" -"Povolí Hablov 'Uncharted 2' filmový tone mapping.\n" +"Aktivuje Hablov 'Uncharted 2' filmový tone mapping.\n" "Simuluje farebnú krivku fotografického filmu a ako sa približuje\n" "vzhľadu obrázku s veľkým dynamickým rozsahom. Stredový kontrast je mierne\n" "zlepšený, nasvietenie a tiene sú postupne zhustené." @@ -3443,10 +3445,10 @@ msgid "" "or need to be auto-generated.\n" "Requires shaders to be enabled." msgstr "" -"Povolí bumpmapping pre textúry. Normálové mapy musia byť dodané v balíčku " +"Aktivuje bumpmapping pre textúry. Normálové mapy musia byť dodané v balíčku " "textúr.\n" "alebo musia byť automaticky generované.\n" -"Vyžaduje aby boli shadery povolené." +"Vyžaduje aby boli shadery aktivované." #: src/settings_translation_file.cpp msgid "Generate normalmaps" @@ -3457,8 +3459,8 @@ msgid "" "Enables on the fly normalmap generation (Emboss effect).\n" "Requires bumpmapping to be enabled." msgstr "" -"Povolí generovanie normálových máp za behu (efekt reliéfu).\n" -"Požaduje aby bol povolený bumpmapping." +"Aktivuje generovanie normálových máp za behu (efekt reliéfu).\n" +"Požaduje aby bol aktivovaný bumpmapping." #: src/settings_translation_file.cpp msgid "Normalmaps strength" @@ -3489,8 +3491,8 @@ msgid "" "Enables parallax occlusion mapping.\n" "Requires shaders to be enabled." msgstr "" -"Povolí parallax occlusion mapping.\n" -"Požaduje aby boli povolené shadery." +"Aktivuj parallax occlusion mapping.\n" +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "Parallax occlusion mode" @@ -3530,7 +3532,7 @@ msgstr "Celkové skreslenie parallax occlusion efektu, obvykle mierka/2." #: src/settings_translation_file.cpp msgid "Waving Nodes" -msgstr "Vlniace sa bloky" +msgstr "Vlniace sa kocky" #: src/settings_translation_file.cpp msgid "Waving liquids" @@ -3541,8 +3543,8 @@ msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" -"Nastav true pre povolenie vlniacich sa tekutín (ako napr. voda).\n" -"Požaduje aby boli povolené shadery." +"Nastav true pre aktivovanie vlniacich sa tekutín (ako napr. voda).\n" +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "Waving liquids wave height" @@ -3557,10 +3559,10 @@ msgid "" "Requires waving liquids to be enabled." msgstr "" "Maximálna výška povrchu vlniacich sa tekutín.\n" -"4.0 = Výška vlny sú dva bloky.\n" +"4.0 = Výška vlny sú dve kocky.\n" "0.0 = Vlna sa vôbec nehýbe.\n" -"Štandardná hodnota je 1.0 (1/2 bloku).\n" -"Požaduje, aby boli povolené vlniace sa tekutiny." +"Štandardná hodnota je 1.0 (1/2 kocky).\n" +"Požaduje, aby boli aktivované vlniace sa tekutiny." #: src/settings_translation_file.cpp msgid "Waving liquids wavelength" @@ -3572,7 +3574,7 @@ msgid "" "Requires waving liquids to be enabled." msgstr "" "Dĺžka vĺn tekutín.\n" -"Požaduje, aby boli povolené vlniace sa tekutiny." +"Požaduje, aby boli aktivované vlniace sa tekutiny." #: src/settings_translation_file.cpp msgid "Waving liquids wave speed" @@ -3586,7 +3588,7 @@ msgid "" msgstr "" "Ako rýchlo sa budú pohybovať vlny tekutín. Vyššia hodnota = rýchlejšie.\n" "Ak je záporná, tekutina sa bude pohybovať naspäť.\n" -"Požaduje, aby boli povolené vlniace sa tekutiny." +"Požaduje, aby boli aktivované vlniace sa tekutiny." #: src/settings_translation_file.cpp msgid "Waving leaves" @@ -3598,7 +3600,7 @@ msgid "" "Requires shaders to be enabled." msgstr "" "Nastav true pre povolenie vlniacich sa listov.\n" -"Požaduje aby boli povolené shadery." +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "Waving plants" @@ -3609,8 +3611,8 @@ msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." msgstr "" -"Nastav true pre povolenie vlniacich sa rastlín.\n" -"Požaduje aby boli povolené shadery." +"Nastav true pre aktivovanie vlniacich sa rastlín.\n" +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "Advanced" @@ -3667,7 +3669,7 @@ msgstr "Vzdialenosť dohľadu" #: src/settings_translation_file.cpp msgid "View distance in nodes." -msgstr "Vzdialenosť dohľadu v blokoch." +msgstr "Vzdialenosť dohľadu v kockách." #: src/settings_translation_file.cpp msgid "Near plane" @@ -3680,7 +3682,7 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Vzdialenosť kamery 'blízko orezanej roviny' v blokoch, medzi 0 a 0.25\n" +"Vzdialenosť kamery 'blízko orezanej roviny' v kockách, medzi 0 a 0.25\n" "Funguje len na GLES platformách. Väčšina toto nepotrebuje meniť.\n" "Zvýšenie môže zredukovať artefakty na slabších GPU.\n" "0.1 = Štandardná hodnota, 0.25 = Dobrá hodnota pre slabé tablety." @@ -3861,7 +3863,7 @@ msgid "" "Values larger than 26 will start to produce sharp cutoffs at cloud area " "corners." msgstr "" -"Polomer oblasti mrakov zadaný v počtoch 64 blokov na štvorcový mrak.\n" +"Polomer oblasti mrakov zadaný v počtoch 64 kociek na štvorcový mrak.\n" "Hodnoty vyššie než 26 budú produkovať ostré hranice na rohoch oblasti mrakov." #: src/settings_translation_file.cpp @@ -3873,7 +3875,7 @@ msgid "" "Enable view bobbing and amount of view bobbing.\n" "For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." msgstr "" -"Povolí pohupovanie sa a hodnotu pohupovania.\n" +"Aktivuj pohupovanie sa a hodnotu pohupovania.\n" "Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné." #: src/settings_translation_file.cpp @@ -3915,7 +3917,7 @@ msgstr "" "- sidebyside: rozdelená obrazovka vedľa seba.\n" "- crossview: 3D prekrížených očí (Cross-eyed)\n" "- pageflip: 3D založené na quadbuffer\n" -"Režim interlaced požaduje, aby boli povolene shadery." +"Režim interlaced požaduje, aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "3D mode parallax strength" @@ -4001,7 +4003,7 @@ msgstr "Šírka obrysu bloku" #: src/settings_translation_file.cpp msgid "Width of the selection box lines around nodes." -msgstr "Šírka línií obrysu bloku." +msgstr "Šírka línií obrysu kocky." #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -4033,7 +4035,7 @@ msgstr "Nesynchronizuj animáciu blokov" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "Či sa nemá animácia textúry bloku synchronizovať." +msgstr "Či sa nemá animácia textúry kocky synchronizovať." #: src/settings_translation_file.cpp msgid "Maximum hotbar width" @@ -4061,7 +4063,7 @@ msgstr "Medzipamäť Mesh" #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." -msgstr "Povolí ukladanie tvárou rotovaných Mesh objektov do medzipamäti." +msgstr "Aktivuje ukladanie tvárou rotovaných Mesh objektov do medzipamäti." #: src/settings_translation_file.cpp msgid "Mapblock mesh generation delay" @@ -4096,7 +4098,7 @@ msgstr "Minimapa" #: src/settings_translation_file.cpp msgid "Enables minimap." -msgstr "Povolí minimapu." +msgstr "Aktivuje minimapu." #: src/settings_translation_file.cpp msgid "Round minimap" @@ -4104,7 +4106,7 @@ msgstr "Okrúhla minimapa" #: src/settings_translation_file.cpp msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "Tvar minimapy. Povolené = okrúhla, vypnuté = štvorcová." +msgstr "Tvar minimapy. Aktivované = okrúhla, vypnuté = štvorcová." #: src/settings_translation_file.cpp msgid "Minimap scan height" @@ -4141,7 +4143,7 @@ msgid "" "setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" "set to the nearest valid value." msgstr "" -"Úroveň tieňovania ambient-occlusion bloku (tmavosť).\n" +"Úroveň tieňovania ambient-occlusion kocky (tmavosť).\n" "Nižšia hodnota je tmavšie, vyššia svetlejšie.\n" "Platý rozsah hodnôt je od 0.25 po 0.4 vrátane.\n" "Ak je hodnota mimo rozsah, bude nastavená na najbližšiu platnú hodnotu." @@ -4152,7 +4154,7 @@ msgstr "Animácia vecí v inventári" #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." -msgstr "Povolí animáciu vecí v inventári." +msgstr "Aktivuje animáciu vecí v inventári." #: src/settings_translation_file.cpp msgid "Fog start" @@ -4183,11 +4185,11 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" -"Textúry na bloku môžu byť zarovnané buď podľa bloku, alebo sveta.\n" +"Textúry na kocke môžu byť zarovnané buď podľa kocky, alebo sveta.\n" "Kým prvý režim poslúži lepšie veciam ako sú stroje, nábytok, atď.,\n" "tak s druhým režimom zapadnú schody a mikrobloky lepšie do svojho okolia.\n" "Keďže je táto možnosť nová, nemusí byť použitá na starších serveroch,\n" -"toto nastavenie povolí jeho vynútenie pre určité typy blokov. Je potrebné\n" +"toto nastavenie povolí jeho vynútenie pre určité typy kociek. Je potrebné\n" "si uvedomiť, že táto funkcia je EXPERIMENTÁLNA a nemusí fungovať korektne." #: src/settings_translation_file.cpp @@ -4203,7 +4205,7 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" -"Textúry zarovnané podľa sveta môžu byť zväčšené aby pokryli niekoľko blokov." +"Textúry zarovnané podľa sveta môžu byť zväčšené aby pokryli niekoľko kociek." "\n" "Avšak server nemusí poslať mierku akú potrebuješ, obzvlášť ak používaš\n" "špeciálne dizajnovaný balíček textúr; s týmto nastavením, sa klient pokúsi\n" @@ -4257,7 +4259,7 @@ msgid "" msgstr "" "Ake je gui_scaling_filter povolený, všetky GUI obrázky potrebujú byť\n" "filtrované softvérom, ale niektoré obrázky sú generované priamo\n" -"pre hardvér (napr. render-to-texture pre bloky v inventári)." +"pre hardvér (napr. render-to-texture pre kocky v inventári)." #: src/settings_translation_file.cpp msgid "GUI scaling filter txr2img" @@ -4354,7 +4356,7 @@ msgid "" "The fallback font will be used if the font cannot be loaded." msgstr "" "Cesta k štandardnému písmu.\n" -"Ak je povolené nastavenie “freetype”:Musí to byť TrueType písmo.\n" +"Ak je aktivné nastavenie “freetype”: Musí to byť TrueType písmo.\n" "Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " "vektorové písmo.\n" "Bude použité záložné písmo, ak nebude možné písmo nahrať." @@ -4391,7 +4393,7 @@ msgid "" "This font is used for e.g. the console and profiler screen." msgstr "" "Cesta k písmu s pevnou šírkou.\n" -"Ak je povolené nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je aktívne nastavenie “freetype”: Musí to byť TrueType písmo.\n" "Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " "vektorové písmo.\n" "Toto písmo je použité pre napr. konzolu a okno profilera." @@ -4450,7 +4452,7 @@ msgid "" "unavailable." msgstr "" "Cesta k záložnému písmu.\n" -"Ak je povolené nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je aktívne nastavenie “freetype”: Musí to byť TrueType písmo.\n" "Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " "vektorové písmo.\n" "Toto písmo bude použité pre určité jazyky, alebo ak nie je štandardné písmo " @@ -4518,7 +4520,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Enable console window" -msgstr "Povoľ okno konzoly" +msgstr "Aktivuj okno konzoly" #: src/settings_translation_file.cpp msgid "" @@ -4541,7 +4543,7 @@ msgid "" "sound controls will be non-functional.\n" "Changing this setting requires a restart." msgstr "" -"Povolí zvukový systém.\n" +"Aktivuje zvukový systém.\n" "Ak je zakázaný, tak kompletne zakáže všetky zvuky\n" "a ovládanie hlasitosti v hre bude nefunkčné.\n" "Zmena tohto nastavenia si vyžaduje reštart hry." @@ -4556,7 +4558,7 @@ msgid "" "Requires the sound system to be enabled." msgstr "" "Hlasitosť všetkých zvukov.\n" -"Požaduje aby bol zvukový systém povolený." +"Požaduje aby bol zvukový systém aktivovaný." #: src/settings_translation_file.cpp msgid "Mute sound" @@ -4621,7 +4623,7 @@ msgid "" msgstr "" "Odpočúvacia adresa Promethea.\n" "Ak je minetest skompilovaný s nastaveným ENABLE_PROMETHEUS,\n" -"povoľ odpočúvanie metriky pre Prometheus na zadanej adrese.\n" +"aktivuj odpočúvanie metriky pre Prometheus na zadanej adrese.\n" "Metrika môže byť získaná na http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp @@ -4643,7 +4645,7 @@ msgid "" "textures)\n" "when connecting to the server." msgstr "" -"Povoľ použitie vzdialeného média servera (ak je poskytovaný serverom).\n" +"Aktivuj použitie vzdialeného média servera (ak je poskytovaný serverom).\n" "Vzdialený server poskytuje výrazne rýchlejší spôsob pre sťahovanie médií (" "napr. textúr)\n" "pri pripojení na server." @@ -4657,7 +4659,7 @@ msgid "" "Enable Lua modding support on client.\n" "This support is experimental and API can change." msgstr "" -"Povoľ podporu úprav na klientovi pomocou Lua skriptov.\n" +"Aktivuj podporu úprav na klientovi pomocou Lua skriptov.\n" "Táto podpora je experimentálna a API sa môže zmeniť." #: src/settings_translation_file.cpp @@ -4696,7 +4698,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Enable register confirmation" -msgstr "Povoľ potvrdenie registrácie" +msgstr "Aktivuj potvrdenie registrácie" #: src/settings_translation_file.cpp msgid "" @@ -4831,10 +4833,13 @@ msgid "" "to new servers, but they may not support all new features that you are " "expecting." msgstr "" +"Aktivuj zakázanie pripojenia starých klientov.\n" +"Starší klienti sú kompatibilný v tom zmysle, že nepadnú pri pripájaní\n" +"k novým serverom, ale nemusia podporovať nové funkcie, ktoré očakávaš." #: src/settings_translation_file.cpp msgid "Remote media" -msgstr "" +msgstr "Vzdialené média" #: src/settings_translation_file.cpp msgid "" @@ -4843,10 +4848,14 @@ msgid "" "(obviously, remote_media should end with a slash).\n" "Files that are not present will be fetched the usual way." msgstr "" +"Špecifikuje URL s ktorého klient stiahne média namiesto použitia UDP.\n" +"$filename by mal byt dostupný z $remote_media$filename cez cURL\n" +"(samozrejme, remote_media by mal končiť lomítkom).\n" +"Súbory, ktoré nie sú dostupné budú získané štandardným spôsobom." #: src/settings_translation_file.cpp msgid "IPv6 server" -msgstr "" +msgstr "IPv6 server" #: src/settings_translation_file.cpp msgid "" @@ -4854,10 +4863,13 @@ msgid "" "Ignored if bind_address is set.\n" "Needs enable_ipv6 to be enabled." msgstr "" +"Aktivuj/vypni IPv6 server.\n" +"Ignorované, ak je nastavená bind_address .\n" +"Vyžaduje povolené enable_ipv6." #: src/settings_translation_file.cpp msgid "Maximum simultaneous block sends per client" -msgstr "" +msgstr "Maximum súčasných odoslaní bloku na klienta" #: src/settings_translation_file.cpp msgid "" @@ -4865,10 +4877,13 @@ msgid "" "The maximum total count is calculated dynamically:\n" "max_total = ceil((#clients + max_users) * per_client / 4)" msgstr "" +"Maximálny počet súčasne posielaných blokov na klienta.\n" +"Maximálny počet sa prepočítava dynamicky:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" #: src/settings_translation_file.cpp msgid "Delay in sending blocks after building" -msgstr "" +msgstr "Oneskorenie posielania blokov po výstavbe" #: src/settings_translation_file.cpp msgid "" @@ -4877,10 +4892,12 @@ msgid "" "This determines how long they are slowed down after placing or removing a " "node." msgstr "" +"Pre zníženie lagu, prenos blokov je spomalený, keď hráč niečo stavia.\n" +"Toto určuje ako dlho je spomalený po vložení, alebo zmazaní kocky." #: src/settings_translation_file.cpp msgid "Max. packets per iteration" -msgstr "" +msgstr "Max. paketov za opakovanie" #: src/settings_translation_file.cpp msgid "" @@ -4888,56 +4905,65 @@ msgid "" "try reducing it, but don't reduce it to a number below double of targeted\n" "client number." msgstr "" +"Maximálny počet paketov poslaný pri jednom kroku posielania,\n" +"ak máš pomalé pripojenie skús ho znížiť, ale\n" +"neznižuj ho pod dvojnásobok cieľového počtu klientov." #: src/settings_translation_file.cpp msgid "Default game" -msgstr "" +msgstr "Štandardná hra" #: src/settings_translation_file.cpp msgid "" "Default game when creating a new world.\n" "This will be overridden when creating a world from the main menu." msgstr "" +"Štandardná hra pri vytváraní nového sveta.\n" +"Toto bude prepísané pri vytvorení nového sveta z hlavného menu." #: src/settings_translation_file.cpp msgid "Message of the day" -msgstr "" +msgstr "Správa dňa" #: src/settings_translation_file.cpp msgid "Message of the day displayed to players connecting." -msgstr "" +msgstr "Správa dňa sa zobrazí hráčom pri pripájaní." #: src/settings_translation_file.cpp msgid "Maximum users" -msgstr "" +msgstr "Maximálny počet hráčov" #: src/settings_translation_file.cpp msgid "Maximum number of players that can be connected simultaneously." -msgstr "" +msgstr "Maximálny počet hráčov, ktorí sa môžu súčasne pripojiť." #: src/settings_translation_file.cpp msgid "Map directory" -msgstr "" +msgstr "Adresár máp" #: src/settings_translation_file.cpp msgid "" "World directory (everything in the world is stored here).\n" "Not needed if starting from the main menu." msgstr "" +"Adresár sveta (všetko na svete je uložené tu).\n" +"Nie je potrebné ak sa spúšťa z hlavného menu." #: src/settings_translation_file.cpp msgid "Item entity TTL" -msgstr "" +msgstr "Životnosť odložených vecí" #: src/settings_translation_file.cpp msgid "" "Time in seconds for item entity (dropped items) to live.\n" "Setting it to -1 disables the feature." msgstr "" +"Čas existencie odložený (odhodených) vecí v sekundách.\n" +"Nastavené na -1 vypne túto vlastnosť." #: src/settings_translation_file.cpp msgid "Default stack size" -msgstr "" +msgstr "Štandardná veľkosť kôpky" #: src/settings_translation_file.cpp msgid "" @@ -4945,130 +4971,143 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"Definuje štandardnú veľkosť kôpky kociek, vecí a nástrojov.\n" +"Ber v úvahu, že rozšírenia, alebo hry môžu explicitne nastaviť veľkosť pre " +"určité (alebo všetky) typy." #: src/settings_translation_file.cpp msgid "Damage" -msgstr "" +msgstr "Zranenie" #: src/settings_translation_file.cpp msgid "Enable players getting damage and dying." -msgstr "" +msgstr "Aktivuje aby mohol byť hráč zranený a zomrieť." #: src/settings_translation_file.cpp msgid "Creative" -msgstr "" +msgstr "Kreatívny režim" #: src/settings_translation_file.cpp msgid "Enable creative mode for new created maps." -msgstr "" +msgstr "Aktivuj kreatívny režim pre novo vytvorené mapy." #: src/settings_translation_file.cpp msgid "Fixed map seed" -msgstr "" +msgstr "Predvolené semienko mapy" #: src/settings_translation_file.cpp msgid "" "A chosen map seed for a new map, leave empty for random.\n" "Will be overridden when creating a new world in the main menu." msgstr "" +"Zvolené semienko pre novú mapu, ponechaj prázdne pre náhodné.\n" +"Pri vytvorení nového sveta z hlavného menu, bude prepísané." #: src/settings_translation_file.cpp msgid "Default password" -msgstr "" +msgstr "Štandardné heslo" #: src/settings_translation_file.cpp msgid "New users need to input this password." -msgstr "" +msgstr "Noví hráči musia zadať toto heslo." #: src/settings_translation_file.cpp msgid "Default privileges" -msgstr "" +msgstr "Štandardné práva" #: src/settings_translation_file.cpp msgid "" "The privileges that new users automatically get.\n" "See /privs in game for a full list on your server and mod configuration." msgstr "" +"Oprávnenia, ktoré automaticky dostane nový hráč.\n" +"Pozri si /privs v hre pre kompletný zoznam pre daný server a konfigurácie " +"rozšírení." #: src/settings_translation_file.cpp msgid "Basic privileges" -msgstr "" +msgstr "Základné práva" #: src/settings_translation_file.cpp msgid "Privileges that players with basic_privs can grant" -msgstr "" +msgstr "Oprávnenia, ktoré môže udeliť hráč s basic_privs" #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" -msgstr "" +msgstr "Neobmedzená vzdialenosť zobrazenia hráča" #: src/settings_translation_file.cpp msgid "" "Whether players are shown to clients without any range limit.\n" "Deprecated, use the setting player_transfer_distance instead." msgstr "" +"Či sa hráči zobrazia klientom bez obmedzenia vzdialenosti.\n" +"Zastarané, namiesto tohto použi player_transfer_distance." #: src/settings_translation_file.cpp msgid "Player transfer distance" -msgstr "" +msgstr "Vzdialenosť zobrazenia hráča" #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" +"Určuje maximálnu vzdialenosť zobrazenia hráča v blokoch (0 = neobmedzená)." #: src/settings_translation_file.cpp msgid "Player versus player" -msgstr "" +msgstr "Hráč proti hráčovi (PvP)" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "Či sa môžu hráči navzájom poškodzovať a zabiť." #: src/settings_translation_file.cpp msgid "Mod channels" -msgstr "" +msgstr "Komunikačné kanály rozšírení" #: src/settings_translation_file.cpp msgid "Enable mod channels support." -msgstr "" +msgstr "Aktivuj podporu komunikačných kanálov rozšírení (mod channels)." #: src/settings_translation_file.cpp msgid "Static spawnpoint" -msgstr "" +msgstr "Pevný bod obnovy" #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" +msgstr "Ak je povolený, hráči vždy ožijú (obnovia sa) na zadanej pozícií." #: src/settings_translation_file.cpp msgid "Disallow empty passwords" -msgstr "" +msgstr "Zakáž prázdne heslá" #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." -msgstr "" +msgstr "Ak je aktivované, nový hráči sa nemôžu pridať bez zadaného hesla." #: src/settings_translation_file.cpp msgid "Disable anticheat" -msgstr "" +msgstr "Zakáž anticheat" #: src/settings_translation_file.cpp msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" +msgstr "Ak je aktivované, zruší ochranu pred podvodmi (cheatmi) v multiplayeri." #: src/settings_translation_file.cpp msgid "Rollback recording" -msgstr "" +msgstr "Nahrávanie pre obnovenie" #: src/settings_translation_file.cpp msgid "" "If enabled, actions are recorded for rollback.\n" "This option is only read when server starts." msgstr "" +"Ak je aktivované, akcie sa nahrávajú pre účely obnovenia.\n" +"Toto nastavenie sa prečíta len pri štarte servera." #: src/settings_translation_file.cpp msgid "Chat message format" -msgstr "" +msgstr "Formát komunikačných správ" #: src/settings_translation_file.cpp msgid "" @@ -5076,36 +5115,41 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Formát komunikačných správ hráča. Nasledujúce reťazce sú platné zástupné " +"symboly:\n" +"@name, @message, @timestamp (voliteľné)" #: src/settings_translation_file.cpp msgid "Shutdown message" -msgstr "" +msgstr "Správa pri vypínaní" #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" +msgstr "Správa, ktorá sa zobrazí všetkým klientom, keď sa server vypína." #: src/settings_translation_file.cpp msgid "Crash message" -msgstr "" +msgstr "Správa pri páde" #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." -msgstr "" +msgstr "Správa, ktorá sa zobrazí všetkým klientom pri páde servera." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" -msgstr "" +msgstr "Ponúkni obnovu pripojenia po páde" #: src/settings_translation_file.cpp msgid "" "Whether to ask clients to reconnect after a (Lua) crash.\n" "Set this to true if your server is set up to restart automatically." msgstr "" +"Či ná ponúknuť klientom obnovenie spojenia po páde (Lua).\n" +"Povoľ, ak je tvoj server nastavený na automatický reštart." #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "Zasielaný rozsah aktívnych objektov" #: src/settings_translation_file.cpp msgid "" @@ -5115,10 +5159,16 @@ msgid "" "to maintain active objects up to this distance in the direction the\n" "player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" +"Do akej vzdialenosti vedia klienti o objektoch, uvádzané v blokoch mapy (16 " +"kociek).\n" +"\n" +"Nastavenie vyššie ako active_block_range spôsobí, že server bude\n" +"uchovávať objekty až do udanej vzdialenosti v smere v ktorom sa\n" +"hráč pozerá. (Toto môže zabrániť tomu aby mobovia zrazu zmizli z pohľadu)" #: src/settings_translation_file.cpp msgid "Active block range" -msgstr "" +msgstr "Rozsah aktívnych blokov" #: src/settings_translation_file.cpp msgid "" @@ -5130,35 +5180,43 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" +"Polomer objemu blokov okolo každého hráča, ktoré sú predmetom\n" +"záležitostí okolo aktívnych objektov, uvádzané v blokoch mapy (16 kociek).\n" +"V objektoch aktívnych blokov sú nahrávané a spúšťané ABM.\n" +"Toto je tiež minimálna vzdialenosť v ktorej sú aktívne objekty (mobovia) " +"zachovávaný.\n" +"Malo by to byť konfigurované spolu s active_object_send_range_blocks." #: src/settings_translation_file.cpp msgid "Max block send distance" -msgstr "" +msgstr "Max vzdialenosť posielania objektov" #: src/settings_translation_file.cpp msgid "" "From how far blocks are sent to clients, stated in mapblocks (16 nodes)." msgstr "" +"Z akej vzdialenosti sú bloky posielané klientovi, uvádzané v blokoch mapy (" +"16 kociek)." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" -msgstr "" +msgstr "Maximum vynútene nahraných blokov" #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." -msgstr "" +msgstr "Maximálny počet vynútene nahraných blokov mapy." #: src/settings_translation_file.cpp msgid "Time send interval" -msgstr "" +msgstr "Interval posielania času" #: src/settings_translation_file.cpp msgid "Interval of sending time of day to clients." -msgstr "" +msgstr "Interval v akom sa posiela denný čas klientom." #: src/settings_translation_file.cpp msgid "Time speed" -msgstr "" +msgstr "Rýchlosť času" #: src/settings_translation_file.cpp msgid "" @@ -5166,158 +5224,170 @@ msgid "" "Examples:\n" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" +"Riadi dĺžku dňa a noci.\n" +"Príklad:\n" +"72 = 20min, 360 = 4min, 1 = 24hodín, 0 = deň/noc/čokoľvek ostáva nezmenený." #: src/settings_translation_file.cpp msgid "World start time" -msgstr "" +msgstr "Počiatočný čas sveta" #: src/settings_translation_file.cpp msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" +msgstr "Čas pri spustení nového sveta, v milihodinách (0-23999)." #: src/settings_translation_file.cpp msgid "Map save interval" -msgstr "" +msgstr "Interval ukladania mapy" #: src/settings_translation_file.cpp msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" +msgstr "Interval ukladania dôležitých zmien vo svete, uvádzaný v sekundách." #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "" +msgstr "Max dĺžka správy" #: src/settings_translation_file.cpp msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" +msgstr "Nastav maximálny počet znakov komunikačnej správy posielanej klientmi." #: src/settings_translation_file.cpp msgid "Chat message count limit" -msgstr "" +msgstr "Limit počtu správ" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "Počet správ, ktoré môže hráč poslať za 10 sekúnd." #: src/settings_translation_file.cpp msgid "Chat message kick threshold" -msgstr "" +msgstr "Hranica správ pre vylúčenie" #: src/settings_translation_file.cpp msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" +msgstr "Vylúč hráča, ktorý pošle viac ako X správ za 10 sekúnd." #: src/settings_translation_file.cpp msgid "Physics" -msgstr "" +msgstr "Fyzika" #: src/settings_translation_file.cpp msgid "Default acceleration" -msgstr "" +msgstr "Štandardné zrýchlenie" #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Horizontálne a vertikálne zrýchlenie na zemi, alebo pri šplhaní,\n" +"v kockách za sekundu na druhú." #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "Zrýchlenie vo vzduchu" #: src/settings_translation_file.cpp msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Horizontálne zrýchlenie vo vzduchu pri skákaní alebo padaní,\n" +"v kockách za sekundu na druhú." #: src/settings_translation_file.cpp msgid "Fast mode acceleration" -msgstr "" +msgstr "Zrýchlenie v rýchlom režime" #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Horizontálne a vertikálne zrýchlenie v rýchlom režime,\n" +"v kockách za sekundu na druhú." #: src/settings_translation_file.cpp msgid "Walking speed" -msgstr "" +msgstr "Rýchlosť chôdze" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Rýchlosť chôdze a lietania, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "Sneaking speed" -msgstr "" +msgstr "Rýchlosť zakrádania" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Rýchlosť zakrádania sa, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "Fast mode speed" -msgstr "" +msgstr "Rýchlosť v rýchlom režime" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Rýchlosť chôdze, lietania a šplhania v rýchlom režime, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "Climbing speed" -msgstr "" +msgstr "Rýchlosť šplhania" #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Vertikálna rýchlosť šplhania, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "Jumping speed" -msgstr "" +msgstr "Rýchlosť skákania" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Počiatočná vertikálna rýchlosť pri skákaní, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "Liquid fluidity" -msgstr "" +msgstr "Tekutosť kvapalín" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistance to movement." -msgstr "" +msgstr "Zníž pre spomalenie tečenia." #: src/settings_translation_file.cpp msgid "Liquid fluidity smoothing" -msgstr "" +msgstr "Zjemnenie tekutosti kvapalín" #: src/settings_translation_file.cpp msgid "" "Maximum liquid resistance. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Maximálny odpor tekutín. Riadi spomalenie ak sa tekutina\n" +"vlieva vysokou rýchlosťou." #: src/settings_translation_file.cpp msgid "Liquid sinking" -msgstr "" +msgstr "Ponáranie v tekutinách" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Riadi rýchlosť ponárania v tekutinách." #: src/settings_translation_file.cpp msgid "Gravity" -msgstr "" +msgstr "Gravitácia" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Gravitačné zrýchlenie, v kockách za sekundu na druhú." #: src/settings_translation_file.cpp msgid "Deprecated Lua API handling" -msgstr "" +msgstr "Zastaralé Lua API spracovanie" #: src/settings_translation_file.cpp msgid "" @@ -5326,10 +5396,16 @@ msgid "" "- log: mimic and log backtrace of deprecated call (default for debug).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" +"Spracovanie zastaralých Lua API volaní:\n" +"- legacy: (skús to) napodobni staré správanie (štandard pre release).\n" +"- log: napodobni log backtrace zastaralého volania (štandard pre debug)." +"\n" +"- error: preruš spracovanie zastaralého volania (odporúčané pre vývojárov " +"rozšírení)." #: src/settings_translation_file.cpp msgid "Max. clearobjects extra blocks" -msgstr "" +msgstr "Max. extra blokov clearobjects" #: src/settings_translation_file.cpp msgid "" @@ -5337,36 +5413,41 @@ msgid "" "This is a trade-off between sqlite transaction overhead and\n" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" +"Počet extra blokov, ktoré môžu byť naraz nahrané pomocou /clearobjects.\n" +"Toto je kompromis medzi vyťažením sqlite transakciami\n" +"a spotrebou pamäti (4096=100MB, ako približné pravidlo)." #: src/settings_translation_file.cpp msgid "Unload unused server data" -msgstr "" +msgstr "Uvoľni nepoužívané serverové dáta" #: src/settings_translation_file.cpp msgid "" "How much the server will wait before unloading unused mapblocks.\n" "Higher value is smoother, but will use more RAM." msgstr "" +"Koľko bude server čakať kým uvoľní nepoužívané bloky mapy.\n" +"Vyššia hodnota je plynulejšia, ale použije viac RAM." #: src/settings_translation_file.cpp msgid "Maximum objects per block" -msgstr "" +msgstr "Max. počet objektov na blok" #: src/settings_translation_file.cpp msgid "Maximum number of statically stored objects in a block." -msgstr "" +msgstr "Maximálny počet staticky uložených objektov v bloku." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" -msgstr "" +msgstr "Synchrónne SQLite" #: src/settings_translation_file.cpp msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" +msgstr "Viď. https://www.sqlite.org/pragma.html#pragma_synchronous" #: src/settings_translation_file.cpp msgid "Dedicated server step" -msgstr "" +msgstr "Určený krok servera" #: src/settings_translation_file.cpp msgid "" @@ -5374,52 +5455,60 @@ msgid "" "updated over\n" "network." msgstr "" +"Dĺžka kroku servera a interval v ktorom sú objekty aktualizované\n" +"cez sieť." #: src/settings_translation_file.cpp msgid "Active block management interval" -msgstr "" +msgstr "Riadiaci interval aktívnych blokov" #: src/settings_translation_file.cpp msgid "Length of time between active block management cycles" -msgstr "" +msgstr "Časový interval medzi jednotlivými riadiacimi cyklami aktívnych blokov" #: src/settings_translation_file.cpp msgid "ABM interval" -msgstr "" +msgstr "ABM interval" #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" +"Časový interval medzi jednotlivými vykonávacími cyklami ABM (Active Block " +"Modifier)" #: src/settings_translation_file.cpp msgid "NodeTimer interval" -msgstr "" +msgstr "Interval časovača kociek" #: src/settings_translation_file.cpp msgid "Length of time between NodeTimer execution cycles" msgstr "" +"Časový interval medzi jednotlivými vykonávacími cyklami časovača kociek " +"(NodeTimer)" #: src/settings_translation_file.cpp msgid "Ignore world errors" -msgstr "" +msgstr "Ignoruj chyby vo svete" #: src/settings_translation_file.cpp msgid "" "If enabled, invalid world data won't cause the server to shut down.\n" "Only enable this if you know what you are doing." msgstr "" +"Ak je aktivované, chybné dáta nespôsobia vypnutie servera.\n" +"Povoľ len ak vieš čo robíš." #: src/settings_translation_file.cpp msgid "Liquid loop max" -msgstr "" +msgstr "Max sprac. tekutín" #: src/settings_translation_file.cpp msgid "Max liquids processed per step." -msgstr "" +msgstr "Maximálny počet tekutín spracovaný v jednom kroku." #: src/settings_translation_file.cpp msgid "Liquid queue purge time" -msgstr "" +msgstr "Čas do uvolnenia fronty tekutín" #: src/settings_translation_file.cpp msgid "" @@ -5427,18 +5516,21 @@ msgid "" "capacity until an attempt is made to decrease its size by dumping old queue\n" "items. A value of 0 disables the functionality." msgstr "" +"Čas (c sekundách) kedy fronta tekutín môže narastať nad kapacitu\n" +"spracovania než bude urobený pokus o jej zníženie zrušením starých\n" +"vecí z fronty. Hodnota 0 vypne túto funkciu." #: src/settings_translation_file.cpp msgid "Liquid update tick" -msgstr "" +msgstr "Aktualizačný interval tekutín" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." -msgstr "" +msgstr "Aktualizačný interval tekutín v sekundách." #: src/settings_translation_file.cpp msgid "Block send optimize distance" -msgstr "" +msgstr "Vzdialenosť pre optimalizáciu posielania blokov" #: src/settings_translation_file.cpp msgid "" @@ -5454,10 +5546,19 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" +"V tento vzdialenosti bude server agresívne optimalizovať, ktoré\n" +"bloky pošle klientovi.\n" +"Malé hodnoty potenciálne výrazne zvýšia výkon, za cenu viditeľných\n" +"chýb renderovania (niektoré bloky nebudú vyrenderované pod vodou a v " +"jaskyniach,\n" +"prípadne niekedy aj na súši).\n" +"Nastavenie hodnoty vyššej ako max_block_send_distance deaktivuje túto\n" +"optimalizáciu.\n" +"Udávane v blokoch mapy (16 kociek)." #: src/settings_translation_file.cpp msgid "Server side occlusion culling" -msgstr "" +msgstr "Occlusion culling na strane servera" #: src/settings_translation_file.cpp msgid "" @@ -5467,10 +5568,15 @@ msgid "" "invisible\n" "so that the utility of noclip mode is reduced." msgstr "" +"Ak je aktivovaný, server bude realizovať occlusion culling blokov mapy " +"založený\n" +"na pozícií oka hráča. Toto môže znížiť počet blokov posielaných klientovi\n" +"o 50-80%. Klient už nebude dostávať takmer neviditeľné bloky,\n" +"takže funkčnosť režim prechádzania stenami je obmedzená." #: src/settings_translation_file.cpp msgid "Client side modding restrictions" -msgstr "" +msgstr "Obmedzenia úprav na strane klienta" #: src/settings_translation_file.cpp msgid "" @@ -5485,10 +5591,20 @@ msgid "" "csm_restriction_noderange)\n" "READ_PLAYERINFO: 32 (disable get_player_names call client-side)" msgstr "" +"Obmedzi prístup k určitým klientským funkciám na serveroch.\n" +"Skombinuj bajtové príznaky dole pre obmedzenie jednotlivých\n" +"fukncii u klienta, alebo nastav 0 pre funkcie bez obmedzení:\n" +"LOAD_CLIENT_MODS: 1 (zakáže nahrávanie rozšírení u klienta)\n" +"CHAT_MESSAGES: 2 (zakáže send_chat_message volania u klienta)\n" +"READ_ITEMDEFS: 4 (zakáže get_item_def volania u klienta)\n" +"READ_NODEDEFS: 8 (zakáže get_node_def volania u klienta)\n" +"LOOKUP_NODES_LIMIT: 16 (obmedzí get_node volania u klienta na\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO: 32 (zakáže get_player_names volania u klienta)" #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" -msgstr "" +msgstr "Obmedzenie vyhľadávania dosahu kociek na strane klienta" #: src/settings_translation_file.cpp msgid "" @@ -5496,46 +5612,55 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" +"Ak sú CSM obmedzenia pre dohľad kocky aktívne, volania get_node sú\n" +"obmedzené touto vzdialenosťou od hráča ku kocke." #: src/settings_translation_file.cpp msgid "Security" -msgstr "" +msgstr "Bezpečnosť" #: src/settings_translation_file.cpp msgid "Enable mod security" -msgstr "" +msgstr "Aktivuj rozšírenie pre zabezpečenie" #: src/settings_translation_file.cpp msgid "Prevent mods from doing insecure things like running shell commands." msgstr "" +"Zabráni rozšíreniam aby robili nebezpečné veci ako spúšťanie systémových " +"príkazov." #: src/settings_translation_file.cpp msgid "Trusted mods" -msgstr "" +msgstr "Dôveryhodné rozšírenia" #: src/settings_translation_file.cpp msgid "" "Comma-separated list of trusted mods that are allowed to access insecure\n" "functions even when mod security is on (via request_insecure_environment())." msgstr "" +"Čiarkou oddelený zoznam dôveryhodných rozšírení, ktoré majú povolené\n" +"nebezpečné funkcie aj keď je bezpečnosť rozšírení aktívna (cez " +"request_insecure_environment())." #: src/settings_translation_file.cpp msgid "HTTP mods" -msgstr "" +msgstr "HTTP rozšírenia" #: src/settings_translation_file.cpp msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" +"Čiarkou oddelený zoznam rozšírení, ktoré majú povolené prístup na HTTP API,\n" +"ktoré im dovolia posielať a sťahovať dáta z/na internet." #: src/settings_translation_file.cpp msgid "Profiling" -msgstr "" +msgstr "Profilovanie" #: src/settings_translation_file.cpp msgid "Load the game profiler" -msgstr "" +msgstr "Nahraj profiler hry" #: src/settings_translation_file.cpp msgid "" @@ -5543,87 +5668,97 @@ msgid "" "Provides a /profiler command to access the compiled profile.\n" "Useful for mod developers and server operators." msgstr "" +"Nahraj profiler hry pre získanie profilových dát.\n" +"Poskytne príkaz /profiler pre prístup k skompilovanému profilu.\n" +"Užitočné pre vývojárov rozšírení a správcov serverov." #: src/settings_translation_file.cpp msgid "Default report format" -msgstr "" +msgstr "Štandardný formát záznamov" #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" "when calling `/profiler save [format]` without format." msgstr "" +"Štandardný formát v ktorom sa ukladajú profily,\n" +"pri volaní `/profiler save [format]` bez udania formátu." #: src/settings_translation_file.cpp msgid "Report path" -msgstr "" +msgstr "Cesta k záznamom" #: src/settings_translation_file.cpp msgid "" "The file path relative to your worldpath in which profiles will be saved to." msgstr "" +"Relatívna cesta k súboru vzhľadom na svet z ktorého budú profily uložené." #: src/settings_translation_file.cpp msgid "Instrumentation" -msgstr "" +msgstr "Výstroj" #: src/settings_translation_file.cpp msgid "Entity methods" -msgstr "" +msgstr "Metódy bytostí" #: src/settings_translation_file.cpp msgid "Instrument the methods of entities on registration." -msgstr "" +msgstr "Inštrumentuj metódy bytostí pri registrácií." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" -msgstr "" +msgstr "Aktívne modifikátory blokov (ABM)" #: src/settings_translation_file.cpp msgid "" "Instrument the action function of Active Block Modifiers on registration." -msgstr "" +msgstr "Inštrumentuj funkcie ABM pri registrácií." #: src/settings_translation_file.cpp msgid "Loading Block Modifiers" -msgstr "" +msgstr "Nahrávam modifikátory blokov" #: src/settings_translation_file.cpp msgid "" "Instrument the action function of Loading Block Modifiers on registration." -msgstr "" +msgstr "Inštrumentuj funkcie nahrávania modifikátorov blokov pri registrácií." #: src/settings_translation_file.cpp msgid "Chatcommands" -msgstr "" +msgstr "Komunikačné príkazy" #: src/settings_translation_file.cpp msgid "Instrument chatcommands on registration." -msgstr "" +msgstr "Inštrumentuj komunikačné príkazy pri registrácií." #: src/settings_translation_file.cpp msgid "Global callbacks" -msgstr "" +msgstr "Globálne odozvy" #: src/settings_translation_file.cpp msgid "" "Instrument global callback functions on registration.\n" "(anything you pass to a minetest.register_*() function)" msgstr "" +"Inštrumentuj globálne odozvy volaní funkcií pri registrácií.\n" +"(čokoľvek je poslané minetest.register_*() funkcií)" #: src/settings_translation_file.cpp msgid "Builtin" -msgstr "" +msgstr "Vstavané (Builtin)" #: src/settings_translation_file.cpp msgid "" "Instrument builtin.\n" "This is usually only needed by core/builtin contributors" msgstr "" +"Inštrumentuj vstavané (builtin).\n" +"Toto je obvykle potrebné len pre core/builtin prispievateľov" #: src/settings_translation_file.cpp msgid "Profiler" -msgstr "" +msgstr "Profiler" #: src/settings_translation_file.cpp msgid "" @@ -5633,14 +5768,19 @@ msgid "" "call).\n" "* Instrument the sampler being used to update the statistics." msgstr "" +"Ako má profiler inštrumentovať sám seba:\n" +"* Inštrumentuj prázdnu funkciu.\n" +"Toto odhaduje režijné náklady, táto inštrumentácia pridáva (+1 funkčné " +"volanie).\n" +"* Instrument the sampler being used to update the statistics." #: src/settings_translation_file.cpp msgid "Client and Server" -msgstr "" +msgstr "Klient a Server" #: src/settings_translation_file.cpp msgid "Player name" -msgstr "" +msgstr "Meno hráča" #: src/settings_translation_file.cpp msgid "" @@ -5648,20 +5788,25 @@ msgid "" "When running a server, clients connecting with this name are admins.\n" "When starting from the main menu, this is overridden." msgstr "" +"Meno hráča.\n" +"Ak je spustený server, klienti s týmto menom sú administrátori.\n" +"Pri štarte z hlavného menu, toto bude prepísané." #: src/settings_translation_file.cpp msgid "Language" -msgstr "" +msgstr "Jazyk" #: src/settings_translation_file.cpp msgid "" "Set the language. Leave empty to use the system language.\n" "A restart is required after changing this." msgstr "" +"Nastav jazyk. Ponechaj prázdne pre systémové nastavenie.\n" +"Po zmene je požadovaný reštart." #: src/settings_translation_file.cpp msgid "Debug log level" -msgstr "" +msgstr "Úroveň ladiacich info" #: src/settings_translation_file.cpp msgid "" @@ -5674,10 +5819,18 @@ msgid "" "- info\n" "- verbose" msgstr "" +"Úroveň ladiacich informácií, ktoré budú zapísané do debug.txt:\n" +"- (bez logovania)\n" +"- žiadna (správy bez úrovne)\n" +"- chyby\n" +"- varovania\n" +"- akcie\n" +"- informácie\n" +"- všetko" #: src/settings_translation_file.cpp msgid "Debug log file size threshold" -msgstr "" +msgstr "Hraničná veľkosť ladiaceho log súboru" #: src/settings_translation_file.cpp msgid "" @@ -5686,38 +5839,46 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Ak veľkosť súboru debug.txt prekročí zadanú veľkosť v megabytoch,\n" +"keď bude otvorený, súbor bude presunutý do debug.txt.1,\n" +"ak existuje starší debug.txt.1, tak tento bude zmazaný.\n" +"debug.txt bude presunutý, len ak je toto nastavenie kladné." #: src/settings_translation_file.cpp msgid "Chat log level" -msgstr "" +msgstr "Úroveň komunikačného logu" #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Minimálna úroveň záznamov, ktoré budú vypísané do komunikačného okna." #: src/settings_translation_file.cpp msgid "IPv6" -msgstr "" +msgstr "IPv6" #: src/settings_translation_file.cpp msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." msgstr "" +"Aktivuj IPv6 podporu (pre klienta ako i server).\n" +"Požadované aby IPv6 spojenie vôbec mohlo fungovať." #: src/settings_translation_file.cpp msgid "cURL timeout" -msgstr "" +msgstr "Časový rámec cURL" #: src/settings_translation_file.cpp msgid "" "Default timeout for cURL, stated in milliseconds.\n" "Only has an effect if compiled with cURL." msgstr "" +"Štandardný časový rámec pre cURL, zadaný v milisekundách.\n" +"Má efekt len ak je skompilovaný s cURL." #: src/settings_translation_file.cpp msgid "cURL parallel limit" -msgstr "" +msgstr "Paralelný limit cURL" #: src/settings_translation_file.cpp msgid "" @@ -5727,26 +5888,33 @@ msgid "" "- Downloads performed by main menu (e.g. mod manager).\n" "Only has an effect if compiled with cURL." msgstr "" +"Maximálny počet paralelných HTTP požiadavok. Ovplyvňuje:\n" +"- Získavanie médií ak server používa nastavenie remote_media.\n" +"- Sťahovanie zoznamu serverov a zverejňovanie servera.\n" +"- Sťahovania vykonávané z hlavného menu (napr. správca rozšírení).\n" +"Má efekt len ak je skompilovaný s cURL." #: src/settings_translation_file.cpp msgid "cURL file download timeout" -msgstr "" +msgstr "cURL časový rámec sťahovania súborov" #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." msgstr "" +"Maximálny čas v ms, ktorý môže zabrať sťahovanie súboru (napr. sťahovanie " +"rozšírenia)." #: src/settings_translation_file.cpp msgid "High-precision FPU" -msgstr "" +msgstr "Vysoko-presné FPU" #: src/settings_translation_file.cpp msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" +msgstr "Umožní DirectX pracovať s LuaJIT. Vypni ak to spôsobuje problémy." #: src/settings_translation_file.cpp msgid "Main menu style" -msgstr "" +msgstr "Štýl hlavného menu" #: src/settings_translation_file.cpp msgid "" @@ -5757,28 +5925,35 @@ msgid "" "be\n" "necessary for smaller screens." msgstr "" +"Zmení užívateľské rozhranie (UI) hlavného menu:\n" +"- Plné: Viacero svetov, voľby hry, voľba balíčka textúr, atď.\n" +"- Jednoduché: Jeden svet, bez herných volieb, alebo voľby textúr. Môže " +"byť\n" +"nevyhnutné pre malé obrazovky." #: src/settings_translation_file.cpp msgid "Main menu script" -msgstr "" +msgstr "Skript hlavného menu" #: src/settings_translation_file.cpp msgid "Replaces the default main menu with a custom one." -msgstr "" +msgstr "Nahradí štandardné hlavné menu vlastným." #: src/settings_translation_file.cpp msgid "Engine profiling data print interval" -msgstr "" +msgstr "Interval tlače profilových dát enginu" #: src/settings_translation_file.cpp msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." msgstr "" +"Vytlačí profilové dáta enginu v pravidelných intervaloch (v sekundách).\n" +"0 = vypnuté. Užitočné pre vývojárov." #: src/settings_translation_file.cpp msgid "Mapgen name" -msgstr "" +msgstr "Meno generátora mapy" #: src/settings_translation_file.cpp msgid "" @@ -5787,28 +5962,34 @@ msgid "" "Current mapgens in a highly unstable state:\n" "- The optional floatlands of v7 (disabled by default)." msgstr "" +"Meno generátora mapy, ktorý sa použije pri vytváraní nového sveta.\n" +"Vytvorenie sveta cez hlavné menu toto prepíše.\n" +"Aktuálne nestabilné generátory:\n" +"- Voliteľné lietajúce pevniny (floatlands) vo v7 (štandardne vypnuté)." #: src/settings_translation_file.cpp msgid "Water level" -msgstr "" +msgstr "Úroveň vody" #: src/settings_translation_file.cpp msgid "Water surface level of the world." -msgstr "" +msgstr "Hladina povrchovej vody vo svete." #: src/settings_translation_file.cpp msgid "Max block generate distance" -msgstr "" +msgstr "Maximálna vzdialenosť generovania blokov" #: src/settings_translation_file.cpp msgid "" "From how far blocks are generated for clients, stated in mapblocks (16 " "nodes)." msgstr "" +"Z akej vzdialeností sú klientovi generované bloky, zadané v blokoch mapy (16 " +"kociek)." #: src/settings_translation_file.cpp msgid "Map generation limit" -msgstr "" +msgstr "Limit generovania mapy" #: src/settings_translation_file.cpp msgid "" @@ -5816,6 +5997,10 @@ msgid "" "Only mapchunks completely within the mapgen limit are generated.\n" "Value is stored per-world." msgstr "" +"Limit pre generovanie mapy, v kockách, vo všetkých 6 smeroch (0, 0, 0).\n" +"Len časti mapy (mapchunks) kompletne v rámci limitu generátora máp sú " +"generované.\n" +"Hodnota sa ukladá pre každý svet." #: src/settings_translation_file.cpp msgid "" @@ -5823,58 +6008,62 @@ msgid "" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" +"Globálne atribúty pre generovanie máp.\n" +"V generátore v6 príznak 'decorations' riadi všetky dekorácie okrem stromov\n" +"a vysokej trávy, vo všetkých ostatných generátoroch tento príznak riadi " +"všetky dekorácie." #: src/settings_translation_file.cpp msgid "Biome API temperature and humidity noise parameters" -msgstr "" +msgstr "Parametre šumu teploty a vlhkosti pre Biome API" #: src/settings_translation_file.cpp msgid "Heat noise" -msgstr "" +msgstr "Teplotný šum" #: src/settings_translation_file.cpp msgid "Temperature variation for biomes." -msgstr "" +msgstr "Odchýlky teplôt pre biómy." #: src/settings_translation_file.cpp msgid "Heat blend noise" -msgstr "" +msgstr "Šum miešania teplôt" #: src/settings_translation_file.cpp msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" +msgstr "Drobné odchýlky teplôt pre zjemnenie prechodu na hraniciach biómov." #: src/settings_translation_file.cpp msgid "Humidity noise" -msgstr "" +msgstr "Šum vlhkosti" #: src/settings_translation_file.cpp msgid "Humidity variation for biomes." -msgstr "" +msgstr "Odchýlky vlhkosti pre biómy." #: src/settings_translation_file.cpp msgid "Humidity blend noise" -msgstr "" +msgstr "Šum miešania vlhkostí" #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" +msgstr "Drobné odchýlky vlhkosti pre zjemnenie prechodu na hraniciach biómov." #: src/settings_translation_file.cpp msgid "Mapgen V5" -msgstr "" +msgstr "Generátor mapy V5" #: src/settings_translation_file.cpp msgid "Mapgen V5 specific flags" -msgstr "" +msgstr "Špecifické príznaky pre generátor mapy V5" #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen v5." -msgstr "" +msgstr "Príznaky pre generovanie špecifické pre generátor V5." #: src/settings_translation_file.cpp msgid "Cave width" -msgstr "" +msgstr "Šírka jaskyne" #: src/settings_translation_file.cpp msgid "" @@ -5882,172 +6071,181 @@ msgid "" "Value >= 10.0 completely disables generation of tunnels and avoids the\n" "intensive noise calculations." msgstr "" +"Riadi šírku tunelov, menšia hodnota vytvára širšie tunely.\n" +"Hodnota >= 10.0 úplne vypne generovanie tunelov, čím sa vyhne\n" +"náročným prepočtom šumu." #: src/settings_translation_file.cpp msgid "Large cave depth" -msgstr "" +msgstr "Hĺbka veľkých jaskýň" #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." -msgstr "" +msgstr "Horný Y limit veľkých jaskýň." #: src/settings_translation_file.cpp msgid "Small cave minimum number" -msgstr "" +msgstr "Minimálny počet malých jaskýň" #: src/settings_translation_file.cpp msgid "Minimum limit of random number of small caves per mapchunk." msgstr "" +"Minimálny limit náhodného počtu malých jaskýň v danej časti mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "Small cave maximum number" -msgstr "" +msgstr "Maximálny počet malých jaskýň" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of small caves per mapchunk." msgstr "" +"Maximálny limit náhodného počtu malých jaskýň v danej časti mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "Large cave minimum number" -msgstr "" +msgstr "Minimálny počet veľkých jaskýň" #: src/settings_translation_file.cpp msgid "Minimum limit of random number of large caves per mapchunk." msgstr "" +"Minimálny limit náhodného počtu veľkých jaskýň v danej časti mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "Large cave maximum number" -msgstr "" +msgstr "Minimálny počet veľkých jaskýň" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of large caves per mapchunk." msgstr "" +"Maximálny limit náhodného počtu veľkých jaskýň v danej časti mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" -msgstr "" +msgstr "Pomer zaplavených častí veľkých jaskýň" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." -msgstr "" +msgstr "Pomer častí veľkých jaskýň, ktoré obsahujú tekutinu." #: src/settings_translation_file.cpp msgid "Cavern limit" -msgstr "" +msgstr "Limit dutín" #: src/settings_translation_file.cpp msgid "Y-level of cavern upper limit." -msgstr "" +msgstr "Y-úroveň horného limitu dutín." #: src/settings_translation_file.cpp msgid "Cavern taper" -msgstr "" +msgstr "Zbiehavosť dutín" #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." -msgstr "" +msgstr "Y-nová vzdialenosť nad ktorou dutiny expandujú do plnej veľkosti." #: src/settings_translation_file.cpp msgid "Cavern threshold" -msgstr "" +msgstr "Hraničná hodnota dutín" #: src/settings_translation_file.cpp msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" +msgstr "Definuje plnú šírku dutín, menšie hodnoty vytvoria väčšie dutiny." #: src/settings_translation_file.cpp msgid "Dungeon minimum Y" -msgstr "" +msgstr "Minimálne Y kobky" #: src/settings_translation_file.cpp msgid "Lower Y limit of dungeons." -msgstr "" +msgstr "Dolný Y limit kobiek." #: src/settings_translation_file.cpp msgid "Dungeon maximum Y" -msgstr "" +msgstr "Maximálne Y kobky" #: src/settings_translation_file.cpp msgid "Upper Y limit of dungeons." -msgstr "" +msgstr "Horný Y limit kobiek." #: src/settings_translation_file.cpp msgid "Noises" -msgstr "" +msgstr "Šumy" #: src/settings_translation_file.cpp msgid "Filler depth noise" -msgstr "" +msgstr "Šum hĺbky výplne" #: src/settings_translation_file.cpp msgid "Variation of biome filler depth." -msgstr "" +msgstr "Odchýlka hĺbky výplne biómu." #: src/settings_translation_file.cpp msgid "Factor noise" -msgstr "" +msgstr "Faktor šumu" #: src/settings_translation_file.cpp msgid "" "Variation of terrain vertical scale.\n" "When noise is < -0.55 terrain is near-flat." msgstr "" +"Rozptyl vertikálnej mierky terénu.\n" +"Ak je šum <-0.55, terén je takmer rovný." #: src/settings_translation_file.cpp msgid "Height noise" -msgstr "" +msgstr "Výškový šum" #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." -msgstr "" +msgstr "Y-úroveň priemeru povrchu terénu." #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "" +msgstr "Cave1 šum" #: src/settings_translation_file.cpp msgid "First of two 3D noises that together define tunnels." -msgstr "" +msgstr "Prvý z dvoch 3D šumov, ktoré spolu definujú tunely." #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "" +msgstr "Cave2 šum" #: src/settings_translation_file.cpp msgid "Second of two 3D noises that together define tunnels." -msgstr "" +msgstr "Druhý z dvoch 3D šumov, ktoré spolu definujú tunely." #: src/settings_translation_file.cpp msgid "Cavern noise" -msgstr "" +msgstr "Šum dutín" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "3D šum definujúci gigantické dutiny/jaskyne." #: src/settings_translation_file.cpp msgid "Ground noise" -msgstr "" +msgstr "Šum terénu" #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "3D šum definujúci terén." #: src/settings_translation_file.cpp msgid "Dungeon noise" -msgstr "" +msgstr "Šum kobky" #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D šum definujúci počet kobiek na časť mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "Mapgen V6" -msgstr "" +msgstr "Generátor mapy V6" #: src/settings_translation_file.cpp msgid "Mapgen V6 specific flags" -msgstr "" +msgstr "Špecifické príznaky generátora mapy V6" #: src/settings_translation_file.cpp msgid "" @@ -6056,108 +6254,114 @@ msgid "" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" +"Špecifické atribúty pre generátor V6.\n" +"Príznak 'snowbiomes' aktivuje nový systém 5 biómov.\n" +"Ak je aktívny prźnak 'snowbiomes', džungle sú automaticky povolené a\n" +"príznak 'jungles' je ignorovaný." #: src/settings_translation_file.cpp msgid "Desert noise threshold" -msgstr "" +msgstr "Hraničná hodnota šumu púšte" #: src/settings_translation_file.cpp msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" +"Púšte sa objavia keď np_biome presiahne túto hodnotu.\n" +"Ak je aktívny príznak 'snowbiomes', tak toto je ignorované." #: src/settings_translation_file.cpp msgid "Beach noise threshold" -msgstr "" +msgstr "Hraničná hodnota šumu pláže" #: src/settings_translation_file.cpp msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" +msgstr "Pieskové pláže sa objavia keď np_beach presiahne túto hodnotu." #: src/settings_translation_file.cpp msgid "Terrain base noise" -msgstr "" +msgstr "Základný šum terénu" #: src/settings_translation_file.cpp msgid "Y-level of lower terrain and seabed." -msgstr "" +msgstr "Y-úroveň dolnej časti terénu a morského dna." #: src/settings_translation_file.cpp msgid "Terrain higher noise" -msgstr "" +msgstr "Horný šum terénu" #: src/settings_translation_file.cpp msgid "Y-level of higher terrain that creates cliffs." -msgstr "" +msgstr "Y-úroveň horného terénu, ktorý tvorí útesy/skaly." #: src/settings_translation_file.cpp msgid "Steepness noise" -msgstr "" +msgstr "Šum zrázov" #: src/settings_translation_file.cpp msgid "Varies steepness of cliffs." -msgstr "" +msgstr "Pozmeňuje strmosť útesov." #: src/settings_translation_file.cpp msgid "Height select noise" -msgstr "" +msgstr "Šum výšok" #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain." -msgstr "" +msgstr "Definuje rozdelenie vyššieho terénu." #: src/settings_translation_file.cpp msgid "Mud noise" -msgstr "" +msgstr "Šum bahna" #: src/settings_translation_file.cpp msgid "Varies depth of biome surface nodes." -msgstr "" +msgstr "Pozmeňuje hĺbku povrchových kociek biómu." #: src/settings_translation_file.cpp msgid "Beach noise" -msgstr "" +msgstr "Šum pláže" #: src/settings_translation_file.cpp msgid "Defines areas with sandy beaches." -msgstr "" +msgstr "Definuje oblasti s pieskovými plážami." #: src/settings_translation_file.cpp msgid "Biome noise" -msgstr "" +msgstr "Šum biómu" #: src/settings_translation_file.cpp msgid "Cave noise" -msgstr "" +msgstr "Šum jaskyne" #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "" +msgstr "Rôznosť počtu jaskýň." #: src/settings_translation_file.cpp msgid "Trees noise" -msgstr "" +msgstr "Šum stromov" #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." -msgstr "" +msgstr "Definuje oblasti so stromami a hustotu stromov." #: src/settings_translation_file.cpp msgid "Apple trees noise" -msgstr "" +msgstr "Šum jabloní" #: src/settings_translation_file.cpp msgid "Defines areas where trees have apples." -msgstr "" +msgstr "Definuje oblasti, kde stromy majú jablká." #: src/settings_translation_file.cpp msgid "Mapgen V7" -msgstr "" +msgstr "Generátor mapy V7" #: src/settings_translation_file.cpp msgid "Mapgen V7 specific flags" -msgstr "" +msgstr "Špecifické príznaky generátora V7" #: src/settings_translation_file.cpp msgid "" @@ -6166,36 +6370,42 @@ msgid "" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" +"Špecifické príznaky pre generátor máp V7.\n" +"'ridges': Rieky.\n" +"'floatlands': Lietajúce masy pevnín v atmosfére.\n" +"'caverns': Gigantické jaskyne hlboko v podzemí." #: src/settings_translation_file.cpp msgid "Mountain zero level" -msgstr "" +msgstr "Základná úroveň hôr" #: src/settings_translation_file.cpp msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." msgstr "" +"Y hustotný gradient hladiny nula pre hory. Používa sa pre vertikálny posun " +"hôr." #: src/settings_translation_file.cpp msgid "Floatland minimum Y" -msgstr "" +msgstr "Minimálne Y lietajúcich pevnín" #: src/settings_translation_file.cpp msgid "Lower Y limit of floatlands." -msgstr "" +msgstr "Spodný Y limit lietajúcich pevnín." #: src/settings_translation_file.cpp msgid "Floatland maximum Y" -msgstr "" +msgstr "Maximálne Y lietajúcich pevnín" #: src/settings_translation_file.cpp msgid "Upper Y limit of floatlands." -msgstr "" +msgstr "Horný Y limit lietajúcich pevnín." #: src/settings_translation_file.cpp msgid "Floatland tapering distance" -msgstr "" +msgstr "Vzdialenosť špicatosti lietajúcich krajín" #: src/settings_translation_file.cpp msgid "" @@ -6204,10 +6414,14 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Y-vzdialenosť kde sa lietajúce pevniny zužujú od plnej hustoty po nič.\n" +"Zužovanie začína na tejto vzdialenosti z Y limitu.\n" +"Pre jednoznačnosť vrstvy lietajúcej krajiny, toto riadi výšku kopcov/hôr.\n" +"Musí byť menej ako, alebo rovnako ako polovica vzdialenosti medzi Y limitami." #: src/settings_translation_file.cpp msgid "Floatland taper exponent" -msgstr "" +msgstr "Exponent kužeľovitosti lietajúcej pevniny" #: src/settings_translation_file.cpp msgid "" @@ -6218,10 +6432,17 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Exponent zošpicatenia lietajúcej pevniny. Pozmeňuje fungovanie zošpicatenia." +"\n" +"Hodnota = 1.0 vytvorí stále, lineárne zošpicatenie.\n" +"Hodnoty > 1.0 vytvoria plynulé zošpicatenie, vhodné pre štandardné oddelené\n" +"lietajúce pevniny.\n" +"Hodnoty < 1.0 (napríklad 0.25) vytvoria viac vymedzený povrch s\n" +"rovnejšími nížinami, vhodné ako pevná základná vrstva lietajúcej pevniny." #: src/settings_translation_file.cpp msgid "Floatland density" -msgstr "" +msgstr "Hustota lietajúcej pevniny" #: src/settings_translation_file.cpp #, c-format @@ -6232,10 +6453,16 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Nastav hustotu vrstvy lietajúcej pevniny.\n" +"Zvýš hodnotu pre zvýšenie hustoty. Môže byť kladná, alebo záporná.\n" +"Hodnota = 0.0: 50% objemu je lietajúca pevnina.\n" +"Hodnota = 2.0 (môže byť vyššie v závislosti od 'mgv7_np_floatland', vždy " +"otestuj\n" +"aby si si bol istý) vytvorí pevnú úroveň lietajúcej pevniny." #: src/settings_translation_file.cpp msgid "Floatland water level" -msgstr "" +msgstr "Úroveň vody lietajúcich pevnín" #: src/settings_translation_file.cpp msgid "" @@ -6250,62 +6477,79 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Povrchová úroveň voliteľnej vody umiestnená na pevnej vrstve lietajúcej " +"krajiny.\n" +"Štandardne je voda deaktivovaná a bude umiestnená len ak je táto voľba " +"nastavená\n" +"nad 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n" +"(štart horného zašpicaťovania).\n" +"***VAROVANIE, POTENCIÁLNE RIZIKO PRE VÝKON SVETOV A SERVEROV***:\n" +"Pri aktivovaní vody na lietajúcich pevninách musí byť nastavený\n" +"a otestovaný pevný povrch nastavením 'mgv7_floatland_density' na 2.0 ( alebo " +"inú\n" +"požadovanú hodnotu v závislosti na 'mgv7_np_floatland'), aby sa zabránilo\n" +"pre server náročnému extrémnemu toku vody a rozsiahlym záplavám\n" +"na svet pod nimi." #: src/settings_translation_file.cpp msgid "Terrain alternative noise" -msgstr "" +msgstr "Alternatívny šum terénu" #: src/settings_translation_file.cpp msgid "Terrain persistence noise" -msgstr "" +msgstr "Stálosť šumu terénu" #: src/settings_translation_file.cpp msgid "" "Varies roughness of terrain.\n" "Defines the 'persistence' value for terrain_base and terrain_alt noises." msgstr "" +"Mení rôznorodosť terénu.\n" +"Definuje hodnotu 'stálosti' pre terrain_base a terrain_alt noises." #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" +msgstr "Definuje rozdelenie vyššieho terénu a strmosť útesov." #: src/settings_translation_file.cpp msgid "Mountain height noise" -msgstr "" +msgstr "Šum pre výšku hôr" #: src/settings_translation_file.cpp msgid "Variation of maximum mountain height (in nodes)." -msgstr "" +msgstr "Obmieňa maximálnu výšku hôr (v kockách)." #: src/settings_translation_file.cpp msgid "Ridge underwater noise" -msgstr "" +msgstr "Šum podmorského hrebeňa" #: src/settings_translation_file.cpp msgid "Defines large-scale river channel structure." -msgstr "" +msgstr "Vo veľkom merítku definuje štruktúru kanálov riek." #: src/settings_translation_file.cpp msgid "Mountain noise" -msgstr "" +msgstr "Šum hôr" #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"3D šum definujúci štruktúru a výšku hôr.\n" +"Takisto definuje štruktúru pohorí lietajúcich pevnín." #: src/settings_translation_file.cpp msgid "Ridge noise" -msgstr "" +msgstr "Šum hrebeňa" #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "3D šum definujúci štruktúru stien kaňona rieky." #: src/settings_translation_file.cpp msgid "Floatland noise" -msgstr "" +msgstr "Šum lietajúcich krajín" #: src/settings_translation_file.cpp msgid "" @@ -6314,172 +6558,179 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D šum definujúci štruktúru lietajúcich pevnín.\n" +"Ak je zmenený zo štandardného, 'mierka' šumu (štandardne 0.7) môže\n" +"potrebovať nastavenie, keďže zošpicaťovanie lietajúcej pevniny funguje " +"najlepšie,\n" +"keď tento šum má hodnotu približne v rozsahu -2.0 až 2.0." #: src/settings_translation_file.cpp msgid "Mapgen Carpathian" -msgstr "" +msgstr "Generátor mapy Karpaty" #: src/settings_translation_file.cpp msgid "Mapgen Carpathian specific flags" -msgstr "" +msgstr "Špecifické príznaky generátora máp Karpaty" #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" +msgstr "Špecifické príznaky pre generátor máp Karpaty." #: src/settings_translation_file.cpp msgid "Base ground level" -msgstr "" +msgstr "Základná úroveň dna" #: src/settings_translation_file.cpp msgid "Defines the base ground level." -msgstr "" +msgstr "Definuje úroveň dna." #: src/settings_translation_file.cpp msgid "River channel width" -msgstr "" +msgstr "Šírka kanála rieky" #: src/settings_translation_file.cpp msgid "Defines the width of the river channel." -msgstr "" +msgstr "Definuje šírku pre koryto rieky." #: src/settings_translation_file.cpp msgid "River channel depth" -msgstr "" +msgstr "Hĺbka riečneho kanála" #: src/settings_translation_file.cpp msgid "Defines the depth of the river channel." -msgstr "" +msgstr "Definuje hĺbku koryta rieky." #: src/settings_translation_file.cpp msgid "River valley width" -msgstr "" +msgstr "Šírka údolia rieky" #: src/settings_translation_file.cpp msgid "Defines the width of the river valley." -msgstr "" +msgstr "Definuje šírku údolia rieky." #: src/settings_translation_file.cpp msgid "Hilliness1 noise" -msgstr "" +msgstr "Šum Kopcovitosť1" #: src/settings_translation_file.cpp msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgstr "Prvý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp msgid "Hilliness2 noise" -msgstr "" +msgstr "Šum Kopcovitosť2" #: src/settings_translation_file.cpp msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgstr "Druhý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp msgid "Hilliness3 noise" -msgstr "" +msgstr "Šum Kopcovitosť3" #: src/settings_translation_file.cpp msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgstr "Tretí zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp msgid "Hilliness4 noise" -msgstr "" +msgstr "Šum Kopcovitosť4" #: src/settings_translation_file.cpp msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgstr "Štvrtý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp msgid "Rolling hills spread noise" -msgstr "" +msgstr "Rozptyl šumu vlnitosti kopcov" #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "2D šum, ktorý riadi veľkosť/výskyt zvlnenia kopcov." #: src/settings_translation_file.cpp msgid "Ridge mountain spread noise" -msgstr "" +msgstr "Rozptyl šumu hrebeňa hôr" #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "2D šum, ktorý riadi veľkosť/výskyt hrebeňa kopcov." #: src/settings_translation_file.cpp msgid "Step mountain spread noise" -msgstr "" +msgstr "Rozptyl šumu horských stepí" #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "2D šum, ktorý riadi veľkosť/výskyt horských stepí." #: src/settings_translation_file.cpp msgid "Rolling hill size noise" -msgstr "" +msgstr "Veľkosť šumu vlnitosti kopcov" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "2D šum, ktorý riadi tvar/veľkosť vlnitosti kopcov." #: src/settings_translation_file.cpp msgid "Ridged mountain size noise" -msgstr "" +msgstr "Veľkosť šumu hrebeňa hôr" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "2D šum, ktorý riadi tvar/veľkosť hrebeňa hôr." #: src/settings_translation_file.cpp msgid "Step mountain size noise" -msgstr "" +msgstr "Veľkosť šumu horských stepí" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "2D šum, ktorý riadi tvar/veľkosť horských stepí." #: src/settings_translation_file.cpp msgid "River noise" -msgstr "" +msgstr "Šum riek" #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "2D šum, ktorý určuje údolia a kanály riek." #: src/settings_translation_file.cpp msgid "Mountain variation noise" -msgstr "" +msgstr "Odchýlka šumu hôr" #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgstr "3D šum pre previsy, útesy, atď. hôr. Obvykle malé odchýlky." #: src/settings_translation_file.cpp msgid "Mapgen Flat" -msgstr "" +msgstr "Generátor mapy plochý" #: src/settings_translation_file.cpp msgid "Mapgen Flat specific flags" -msgstr "" +msgstr "Špecifické príznaky plochého generátora mapy" #: src/settings_translation_file.cpp msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" +"Špecifické atribúty pre plochý generátor mapy.\n" +"Príležitostne môžu byť na plochý svet pridané jazerá a kopce." #: src/settings_translation_file.cpp msgid "Ground level" -msgstr "" +msgstr "Základná úroveň" #: src/settings_translation_file.cpp msgid "Y of flat ground." -msgstr "" +msgstr "Y plochej zeme." #: src/settings_translation_file.cpp msgid "Lake threshold" -msgstr "" +msgstr "Hranica jazier" #: src/settings_translation_file.cpp msgid "" @@ -6487,18 +6738,21 @@ msgid "" "Controls proportion of world area covered by lakes.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"Prah šumu terénu pre jazerá.\n" +"Riadi pomer plochy sveta pokrytého jazerami.\n" +"Uprav smerom k 0.0 pre väčší pomer." #: src/settings_translation_file.cpp msgid "Lake steepness" -msgstr "" +msgstr "Strmosť jazier" #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." -msgstr "" +msgstr "Riadi strmosť/hĺbku jazier." #: src/settings_translation_file.cpp msgid "Hill threshold" -msgstr "" +msgstr "Hranica kopcov" #: src/settings_translation_file.cpp msgid "" @@ -6506,30 +6760,33 @@ msgid "" "Controls proportion of world area covered by hills.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"Prah šumu terénu pre kopce.\n" +"Riadi pomer plochy sveta pokrytého kopcami.\n" +"Uprav smerom k 0.0 pre väčší pomer." #: src/settings_translation_file.cpp msgid "Hill steepness" -msgstr "" +msgstr "Strmosť kopcov" #: src/settings_translation_file.cpp msgid "Controls steepness/height of hills." -msgstr "" +msgstr "Riadi strmosť/výšku kopcov." #: src/settings_translation_file.cpp msgid "Terrain noise" -msgstr "" +msgstr "Šum terénu" #: src/settings_translation_file.cpp msgid "Defines location and terrain of optional hills and lakes." -msgstr "" +msgstr "Definuje umiestnenie a terén voliteľných kopcov a jazier." #: src/settings_translation_file.cpp msgid "Mapgen Fractal" -msgstr "" +msgstr "Generátor mapy Fraktál" #: src/settings_translation_file.cpp msgid "Mapgen Fractal specific flags" -msgstr "" +msgstr "Špecifické príznaky generátora máp Fraktál" #: src/settings_translation_file.cpp msgid "" @@ -6537,10 +6794,13 @@ msgid "" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" +"Špecifické príznaky generátora máp Fraktál.\n" +"'terrain' aktivuje generovanie nie-fraktálneho terénu:\n" +"oceán, ostrovy and podzemie." #: src/settings_translation_file.cpp msgid "Fractal type" -msgstr "" +msgstr "Typ fraktálu" #: src/settings_translation_file.cpp msgid "" @@ -6564,10 +6824,29 @@ msgid "" "17 = 4D \"Mandelbulb\" Mandelbrot set.\n" "18 = 4D \"Mandelbulb\" Julia set." msgstr "" +"Zvoľ si jeden z 18 typov fraktálu.\n" +"1 = 4D \"Roundy\" sada Mandelbrot.\n" +"2 = 4D \"Roundy\" sada Julia.\n" +"3 = 4D \"Squarry\" sada Mandelbrot.\n" +"4 = 4D \"Squarry\" sada Julia.\n" +"5 = 4D \"Mandy Cousin\" sada Mandelbrot.\n" +"6 = 4D \"Mandy Cousin\" sada Julia.\n" +"7 = 4D \"Variation\" sada Mandelbrot.\n" +"8 = 4D \"Variation\" sada Julia.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" sada Mandelbrot.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" sada Julia.\n" +"11 = 3D \"Christmas Tree\" sada Mandelbrot.\n" +"12 = 3D \"Christmas Tree\" sada Julia.\n" +"13 = 3D \"Mandelbulb\" sada Mandelbrot.\n" +"14 = 3D \"Mandelbulb\" sada Julia.\n" +"15 = 3D \"Cosine Mandelbulb\" sada Mandelbrot.\n" +"16 = 3D \"Cosine Mandelbulb\" sada Julia.\n" +"17 = 4D \"Mandelbulb\" sada Mandelbrot.\n" +"18 = 4D \"Mandelbulb\" sada Julia." #: src/settings_translation_file.cpp msgid "Iterations" -msgstr "" +msgstr "Iterácie" #: src/settings_translation_file.cpp msgid "" @@ -6576,6 +6855,10 @@ msgid "" "increases processing load.\n" "At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" +"Iterácie rekurzívnej funkcie.\n" +"Zvýšenie zvýši úroveň jemnosti detailov, ale tiež\n" +"zvýši zaťaženie pri spracovaní.\n" +"Pri iteráciach = 20 má tento generátor podobné zaťaženie ako generátor V7." #: src/settings_translation_file.cpp msgid "" @@ -6587,6 +6870,13 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" +"(X,Y,Z) mierka fraktálu v kockách.\n" +"Skutočná veľkosť fraktálu bude 2 až 3 krát väčšia.\n" +"Tieto čísla môžu byť veľmi veľké, fraktál sa nemusí\n" +"zmestiť do sveta.\n" +"Zvýš pre 'priblíženie' detailu fraktálu.\n" +"Štandardne je vertikálne stlačený tvar vhodný pre\n" +"ostrov, nastav všetky 3 čísla rovnaké pre nezmenený tvar." #: src/settings_translation_file.cpp msgid "" @@ -6599,10 +6889,18 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X,Y,Z) posun fraktálu od stredu sveta v jednotkách 'mierky'.\n" +"Môže byť použité pre posun požadovaného bodu do (0, 0) pre\n" +"vytvorenie vhodného bodu pre ožitie, alebo pre povolenie 'priblíženia'\n" +"na želaný bod zväčšením 'mierky'.\n" +"Štandardne je to vyladené na vhodný bod oživenia pre Mandelbrot\n" +"sadu so štandardnými parametrami, je možné, že bude potrebná úprava\n" +"v iných situáciach.\n" +"Rozsah je približne -2 to 2. Zväčší podľa 'mierky' pre posun v kockách." #: src/settings_translation_file.cpp msgid "Slice w" -msgstr "" +msgstr "Plátok w" #: src/settings_translation_file.cpp msgid "" @@ -6612,10 +6910,15 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" +"W koordináty generovaného 3D plátku v 4D fraktáli.\n" +"Určuje, ktorý 3D plátok z 4D tvaru je generovaný.\n" +"Zmení tvar fraktálu.\n" +"Nemá vplyv na 3D fraktály.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "Julia x" -msgstr "" +msgstr "Julia x" #: src/settings_translation_file.cpp msgid "" @@ -6624,10 +6927,14 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"X komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "Julia y" -msgstr "" +msgstr "Julia y" #: src/settings_translation_file.cpp msgid "" @@ -6636,10 +6943,14 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"Y komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "Julia z" -msgstr "" +msgstr "Julia z" #: src/settings_translation_file.cpp msgid "" @@ -6648,10 +6959,14 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"Z komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "Julia w" -msgstr "" +msgstr "Julia w" #: src/settings_translation_file.cpp msgid "" @@ -6661,22 +6976,27 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"W komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Nemá vplyv na 3D fraktály.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "Seabed noise" -msgstr "" +msgstr "Šum morského dna" #: src/settings_translation_file.cpp msgid "Y-level of seabed." -msgstr "" +msgstr "Y-úroveň morského dna." #: src/settings_translation_file.cpp msgid "Mapgen Valleys" -msgstr "" +msgstr "Generátor mapy Údolia" #: src/settings_translation_file.cpp msgid "Mapgen Valleys specific flags" -msgstr "" +msgstr "Špecifické príznaky pre generátor Údolia" #: src/settings_translation_file.cpp msgid "" @@ -6687,6 +7007,12 @@ msgid "" "to become shallower and occasionally dry.\n" "'altitude_dry': Reduces humidity with altitude." msgstr "" +"Špecifické príznaky pre generovanie mapy generátora Údolia.\n" +"'altitude_chill': Znižuje teplotu s nadmorskou výškou.\n" +"'humid_rivers': Zvyšuje vlhkosť okolo riek.\n" +"'vary_river_depth': ak je aktívne, nízka vlhkosť a vysoké teploty\n" +"spôsobia, že hladina rieky poklesne, niekdy aj vyschne.\n" +"'altitude_dry': Znižuje vlhkosť s nadmorskou výškou." #: src/settings_translation_file.cpp msgid "" @@ -6694,90 +7020,93 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" +"Vertikálna vzdialenosť kedy poklesne teplota o 20 ak je 'altitude_chill'\n" +"aktívne. Tiež je to vertikálna vzdialenosť kedy poklesne vlhkosť o 10,\n" +"ak je 'altitude_dry' aktívne." #: src/settings_translation_file.cpp msgid "Depth below which you'll find large caves." -msgstr "" +msgstr "Hĺbka pod ktorou nájdeš veľké jaskyne." #: src/settings_translation_file.cpp msgid "Cavern upper limit" -msgstr "" +msgstr "Horný limit dutín" #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." -msgstr "" +msgstr "Hĺbka pod ktorou nájdeš gigantické dutiny/jaskyne." #: src/settings_translation_file.cpp msgid "River depth" -msgstr "" +msgstr "Hĺbka rieky" #: src/settings_translation_file.cpp msgid "How deep to make rivers." -msgstr "" +msgstr "Aké hlboké majú byť rieky." #: src/settings_translation_file.cpp msgid "River size" -msgstr "" +msgstr "Veľkosť riek" #: src/settings_translation_file.cpp msgid "How wide to make rivers." -msgstr "" +msgstr "Aké široké majú byť rieky." #: src/settings_translation_file.cpp msgid "Cave noise #1" -msgstr "" +msgstr "Šum jaskýň #1" #: src/settings_translation_file.cpp msgid "Cave noise #2" -msgstr "" +msgstr "Šum jaskýň #2" #: src/settings_translation_file.cpp msgid "Filler depth" -msgstr "" +msgstr "Hĺbka výplne" #: src/settings_translation_file.cpp msgid "The depth of dirt or other biome filler node." -msgstr "" +msgstr "Hĺbka zeminy, alebo inej výplne kocky." #: src/settings_translation_file.cpp msgid "Terrain height" -msgstr "" +msgstr "Výška terénu" #: src/settings_translation_file.cpp msgid "Base terrain height." -msgstr "" +msgstr "Základná výška terénu." #: src/settings_translation_file.cpp msgid "Valley depth" -msgstr "" +msgstr "Hĺbka údolia" #: src/settings_translation_file.cpp msgid "Raises terrain to make valleys around the rivers." -msgstr "" +msgstr "Zvýši terén aby vznikli údolia okolo riek." #: src/settings_translation_file.cpp msgid "Valley fill" -msgstr "" +msgstr "Výplň údolí" #: src/settings_translation_file.cpp msgid "Slope and fill work together to modify the heights." -msgstr "" +msgstr "Sklon a výplň spolupracujú aby upravili výšky." #: src/settings_translation_file.cpp msgid "Valley profile" -msgstr "" +msgstr "Profil údolia" #: src/settings_translation_file.cpp msgid "Amplifies the valleys." -msgstr "" +msgstr "Zväčšuje údolia." #: src/settings_translation_file.cpp msgid "Valley slope" -msgstr "" +msgstr "Sklon údolia" #: src/settings_translation_file.cpp msgid "Chunk size" -msgstr "" +msgstr "Veľkosť časti (chunk)" #: src/settings_translation_file.cpp msgid "" @@ -6788,46 +7117,57 @@ msgid "" "Altering this value is for special usage, leaving it unchanged is\n" "recommended." msgstr "" +"Veľkosť časti mapy generovanej generátorom mapy, zadaný v blokoch mapy (16 " +"kociek).\n" +"VAROVANIE!: Neexistuje žiadna výhoda, a je tu pár rizík,\n" +"pri zvýšení tejto hodnoty nad 5.\n" +"Zníženie tejto hodnoty zvýši hustotu jaskýň a kobiek.\n" +"Zmena tejto hodnoty slúži k špeciálnym účelom, odporúča sa ponechať\n" +"to nezmenené." #: src/settings_translation_file.cpp msgid "Mapgen debug" -msgstr "" +msgstr "Ladenie generátora máp" #: src/settings_translation_file.cpp msgid "Dump the mapgen debug information." -msgstr "" +msgstr "Získaj ladiace informácie generátora máp." #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "" +msgstr "Absolútny limit kociek vo fronte" #: src/settings_translation_file.cpp msgid "Maximum number of blocks that can be queued for loading." -msgstr "" +msgstr "Maximálny limit kociek, ktoré môžu byť vo fronte pre nahrávanie." #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" -msgstr "" +msgstr "Limit kociek vo fronte na každého hráča nahrávaných z disku" #: src/settings_translation_file.cpp msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" +"Maximálny limit kociek vo fronte, ktoré budú nahrané zo súboru.\n" +"Tento limit je vynútený pre každého hráča." #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks to generate" -msgstr "" +msgstr "Limit kociek vo fronte na každého hráča pre generovanie" #: src/settings_translation_file.cpp msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" +"Maximálny limit kociek vo fronte, ktoré budú generované.\n" +"Tento limit je vynútený pre každého hráča." #: src/settings_translation_file.cpp msgid "Number of emerge threads" -msgstr "" +msgstr "Počet použitých vlákien" #: src/settings_translation_file.cpp msgid "" @@ -6842,6 +7182,16 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" +"Počet použitých vlákien.\n" +"Hodnota 0:\n" +"- Automatický určenie. Počet použitých vlákien bude\n" +"- 'počet procesorov - 2', s dolným limitom 1.\n" +"Akákoľvek iná hodnota:\n" +"- Definuje počet vlákien, s dolným limitom 1.\n" +"VAROVANIE: Zvýšenie počtu vlákien zvýši rýchlosť generátora máp,\n" +"ale môže to uškodiť hernému výkonu interferenciou s inými\n" +"procesmi, obzvlášť pri hre jedného hráča a/alebo ak beží Lua kód\n" +"v 'on_generated'. Pre mnohých hráčov môže byť optimálne nastavenie '1'." #: src/settings_translation_file.cpp msgid "Online Content Repository" @@ -6857,7 +7207,7 @@ msgstr "Webová adresa (URL) k úložisku doplnkov" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" -msgstr "" +msgstr "Čierna listina príznakov z ContentDB" #: src/settings_translation_file.cpp msgid "" @@ -6869,3 +7219,10 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" +"Čiarkou oddelený zoznam príznakov, ktoré sa skryjú v zozname doplnkov.\n" +"\"nonfree\" môže byť využité na skrytie doplnkov, ktoré nie je možné " +"považovať za 'voľný softvér',\n" +"tak ako je definovaný Free Software Foundation.\n" +"Môžeš definovať aj hodnotenie obsahu.\n" +"Tie to príznaky sú nezávislé od verzie Minetestu,\n" +"viď. aj kompletný zoznam na https://content.minetest.net/help/content_flags/" From 855545d3066806202e01fa48f765833261d87015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81cs=20Zolt=C3=A1n?= Date: Wed, 29 Jul 2020 21:08:11 +0000 Subject: [PATCH 389/624] Translated using Weblate (Hungarian) Currently translated at 77.8% (1051 of 1350 strings) --- po/hu/minetest.po | 51 +++++++++++++++++++---------------------------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/po/hu/minetest.po b/po/hu/minetest.po index 725c12629..732d33fc4 100644 --- a/po/hu/minetest.po +++ b/po/hu/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Hungarian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-22 17:56+0000\n" +"PO-Revision-Date: 2020-12-05 15:29+0000\n" "Last-Translator: Ács Zoltán \n" "Language-Team: Hungarian \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Meghaltál" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -169,7 +169,7 @@ msgstr "Vissza a főmenübe" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "A ContentDB nem elérhető, ha a Minetest cURL nélkül lett lefordítva" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." @@ -231,9 +231,8 @@ msgid "Additional terrain" msgstr "További terep" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -#, fuzzy msgid "Altitude chill" -msgstr "Hőmérsékletcsökkenés a magassággal" +msgstr "Hőmérséklet-csökkenés a magassággal" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" @@ -272,13 +271,12 @@ msgid "Download one from minetest.net" msgstr "Letöltés a minetest.net címről" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Tömlöc zaj" +msgstr "Tömlöcök" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Lapos terep" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" @@ -293,8 +291,9 @@ msgid "Game" msgstr "Játék" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Nem-fraktál terep generálása: Óceánok és földalatti rész" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" @@ -372,14 +371,17 @@ msgid "Smooth transition between biomes" msgstr "Sima átmenet a biomok között" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"A terepen megjelenő struktúrák (nincs hatása a fákra és a dzsungelfűre, " +"amelyet a v6 készített)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "A terepen megjelenő struktúrák, általában fák és növények" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -396,7 +398,7 @@ msgstr "Mérsékelt, Sivatag, Dzsungel, Tundra, Tajga" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Terrain surface erosion" -msgstr "Terep alapzaj" +msgstr "Terepfelület erózió" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" @@ -1950,7 +1952,6 @@ msgstr "" "gombot ha kint van a fő körből." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" "Can be used to move a desired point to (0, 0) to create a\n" @@ -1961,13 +1962,6 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"A fraktál (X,Y,Z) eltolása a világ középpontjától, 'scale' egységekben.\n" -"Egy megfelelő, alacsony magasságú keletkezési pont (0, 0) közelébe " -"mozgatására használható.\n" -"Az alapértelmezés megfelelő Mandelbrot-halmazokhoz, a szerkesztés Julia-" -"halmazok esetén szükséges.\n" -"Körülbelül -2 és 2 közötti érték. Szorozd be 'scale'-lel, hogy kockákban " -"kapd meg az eltolást." #: src/settings_translation_file.cpp msgid "" @@ -2027,9 +2021,8 @@ msgid "3D mode" msgstr "3D mód" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Parallax Occlusion hatás ereje" +msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2112,9 +2105,8 @@ msgid "ABM interval" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" -msgstr "A világgeneráló szálak számának abszolút határa" +msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2227,17 +2219,16 @@ msgid "Apple trees noise" msgstr "Almafa zaj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Arm inertia" msgstr "Kar tehetetlenség" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" "A kar tehetetlensége reálisabb mozgást biztosít\n" +"a karnak, amikor a kamera mozog.\n" "a karnak, amikor a kamera mozog." #: src/settings_translation_file.cpp @@ -2284,7 +2275,6 @@ msgid "Autosave screen size" msgstr "Képernyőméret automatikus mentése" #: src/settings_translation_file.cpp -#, fuzzy msgid "Autoscaling mode" msgstr "Automatikus méretezés mód" @@ -2349,9 +2339,8 @@ msgid "Bold and italic monospace font path" msgstr "Félkövér dőlt monospace betűtípus útvonal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold font path" -msgstr "Betűtípus helye" +msgstr "Félkövér betűtípus útvonala" #: src/settings_translation_file.cpp msgid "Bold monospace font path" @@ -3293,11 +3282,11 @@ msgstr "Köd váltása gomb" #: src/settings_translation_file.cpp msgid "Font bold by default" -msgstr "" +msgstr "Félkövér betűtípus alapértelmezetten" #: src/settings_translation_file.cpp msgid "Font italic by default" -msgstr "" +msgstr "Dőlt betűtípus alapértelmezetten" #: src/settings_translation_file.cpp msgid "Font shadow" From 775d22aacbf2d59fe62277a75cbb20e0af05c1f7 Mon Sep 17 00:00:00 2001 From: Giov4 Date: Wed, 29 Jul 2020 13:42:20 +0000 Subject: [PATCH 390/624] Translated using Weblate (Italian) Currently translated at 100.0% (1350 of 1350 strings) --- po/it/minetest.po | 202 +++++++++++++++++++++++----------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/po/it/minetest.po b/po/it/minetest.po index c7ce03705..ac63ae8c4 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-26 10:41+0000\n" -"Last-Translator: Hamlet \n" +"PO-Revision-Date: 2020-12-07 09:22+0000\n" +"Last-Translator: Giov4 \n" "Language-Team: Italian \n" "Language: it\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -96,7 +96,7 @@ msgstr "Disattiva tutto" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Disattiva la raccolta di mod" +msgstr "Disattiva il pacchetto mod" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -104,7 +104,7 @@ msgstr "Attiva tutto" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Attiva la raccolta di mod" +msgstr "Attiva il pacchetto mod" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -136,7 +136,7 @@ msgstr "Nessuna dipendenza" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "Non è stata fornita nessuna descrizione per la raccolta di mod." +msgstr "Non è stata fornita alcuna descrizione per il pacchetto mod." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" @@ -208,7 +208,7 @@ msgstr "Cerca" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "Raccolte di immagini" +msgstr "Pacchetti texture" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" @@ -448,15 +448,15 @@ msgstr "Accetta" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "Rinomina la raccolta di mod:" +msgstr "Rinomina il pacchetto mod:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" -"Questa raccolta di mod esplicita un nome in modpack.conf che sovrascriverà " -"ogni modifica qui fatta." +"Questo pacchetto mod esplicita un nome in modpack.conf che sovrascriverà " +"ogni modifica qui effettuata." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" @@ -604,8 +604,8 @@ msgstr "Installa mod: Impossibile trovare il vero nome del mod per: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Installa mod: Impossibile trovare un nome cartella corretto per la raccolta " -"di mod $1" +"Installa mod: Impossibile trovare un nome cartella corretto per il pacchetto " +"mod $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" @@ -617,11 +617,11 @@ msgstr "Install: File: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "Impossibile trovare un mod o una raccolta di mod validi" +msgstr "Impossibile trovare un mod o un pacchetto mod validi" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" -msgstr "Impossibile installare un $1 come una raccolta di immagini" +msgstr "Impossibile installare un $1 come un pacchetto texture" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" @@ -633,11 +633,11 @@ msgstr "Impossibile installare un mod come un $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" -msgstr "Impossibile installare una raccolta di mod come un $1" +msgstr "Impossibile installare un pacchetto mod come un $1" #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "Mostra contenuti in linea" +msgstr "Mostra contenuti online" #: builtin/mainmenu/tab_content.lua msgid "Content" @@ -645,7 +645,7 @@ msgstr "Contenuti" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" -msgstr "Disattiva raccolta immagini" +msgstr "Disattiva pacchetto texture" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -673,7 +673,7 @@ msgstr "Disinstalla la raccolta" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" -msgstr "Usa la raccolta di immagini" +msgstr "Usa pacchetto texture" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" @@ -725,7 +725,7 @@ msgstr "Ospita un server" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "Installa giochi dal ContentDB" +msgstr "Installa giochi da ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -757,7 +757,7 @@ msgstr "Porta del server" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "Comincia gioco" +msgstr "Gioca" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" @@ -785,7 +785,7 @@ msgstr "Preferito" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "Entra in un gioco" +msgstr "Gioca online" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" @@ -998,7 +998,7 @@ msgstr "Inizializzazione nodi..." #: src/client/client.cpp msgid "Loading textures..." -msgstr "Caricamento immagini..." +msgstr "Caricando le texture..." #: src/client/client.cpp msgid "Rebuilding shaders..." @@ -1157,7 +1157,7 @@ msgstr "" "- %s: sinistra\n" "- %s: destra\n" "- %s: salta/arrampica\n" -"- %s: striscia/scendi\n" +"- %s: furtivo/scendi\n" "- %s: butta oggetto\n" "- %s: inventario\n" "- Mouse: gira/guarda\n" @@ -1348,11 +1348,11 @@ msgstr "Attivato" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "Modalità movimento inclinazione disabilitata" +msgstr "Modalità inclinazione movimento disabilitata" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "Modalità movimento inclinazione abilitata" +msgstr "Modalità inclinazione movimento abilitata" #: src/client/game.cpp msgid "Profiler graph shown" @@ -1436,11 +1436,11 @@ msgstr "Chat visualizzata" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "Visore nascosto" +msgstr "HUD nascosto" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "Visore visualizzato" +msgstr "HUD visibile" #: src/client/gameui.cpp msgid "Profiler hidden" @@ -1783,7 +1783,7 @@ msgstr "Diminuisci volume" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "Doppio \"salta\" per scegliere il volo" +msgstr "Doppio \"salta\" per volare" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" @@ -1824,7 +1824,7 @@ msgstr "Comando locale" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "Silenzio" +msgstr "Muta audio" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" @@ -1844,7 +1844,7 @@ msgstr "Schermata" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" -msgstr "Striscia" +msgstr "Furtivo" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" @@ -1852,35 +1852,35 @@ msgstr "Speciale" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Scegli visore" +msgstr "HUD sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "Scegli registro chat" +msgstr "Log chat sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "Scegli rapido" +msgstr "Corsa sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "Scegli volo" +msgstr "Volo sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "Scegli nebbia" +msgstr "Nebbia sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "Scegli minimappa" +msgstr "Minimappa sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" -msgstr "Scegli incorporea" +msgstr "Incorporeità sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "Modalità beccheggio" +msgstr "Beccheggio sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -2418,7 +2418,7 @@ msgstr "Fluidità della telecamera in modalità cinematic" #: src/settings_translation_file.cpp msgid "Camera update toggle key" -msgstr "Tasto di scelta dell'aggiornamento della telecamera" +msgstr "Tasto di (dis)attivazione dell'aggiornamento della telecamera" #: src/settings_translation_file.cpp msgid "Cave noise" @@ -2483,9 +2483,9 @@ msgid "" msgstr "" "Cambia l'UI del menu principale:\n" "- Completa: mondi locali multipli, scelta del gioco, selettore pacchetti " -"grafici, ecc.\n" -"- Semplice: un mondo locale, nessun selettore di gioco o pacchetti " -"grafici.\n" +"texture, ecc.\n" +"- Semplice: un mondo locale, nessun selettore di gioco o pacchetti grafici." +"\n" "Potrebbe servire per gli schermi più piccoli." #: src/settings_translation_file.cpp @@ -2518,7 +2518,7 @@ msgstr "Lunghezza massima dei messaggi di chat" #: src/settings_translation_file.cpp msgid "Chat toggle key" -msgstr "Tasto di scelta della chat" +msgstr "Tasto di (dis)attivazione della chat" #: src/settings_translation_file.cpp msgid "Chatcommands" @@ -2538,7 +2538,7 @@ msgstr "Tasto modalità cinematic" #: src/settings_translation_file.cpp msgid "Clean transparent textures" -msgstr "Pulizia delle immagini trasparenti" +msgstr "Pulizia delle texture trasparenti" #: src/settings_translation_file.cpp msgid "Client" @@ -2594,12 +2594,12 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" -"Elenco separato da virgole di valori da nascondere nel deposito dei " -"contenuti.\n" +"Elenco di valori separato da virgole che si vuole nascondere dall'archivio " +"dei contenuti.\n" "\"nonfree\" può essere usato per nascondere pacchetti che non si " "qualificano\n" -"come \"software libero\", così come definito dalla Free Software " -"Foundation.\n" +"come \"software libero\", così come definito dalla Free Software Foundation." +"\n" "Puoi anche specificare la classificazione dei contenuti.\n" "Questi valori sono indipendenti dalle versioni Minetest,\n" "si veda un elenco completo qui https://content.minetest.net/help/" @@ -2653,7 +2653,7 @@ msgstr "Altezza della console" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" -msgstr "Lista nera dei valori per il ContentDB" +msgstr "Contenuti esclusi da ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2668,9 +2668,9 @@ msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" -"Avanzamento continuo, scelto dal tasto avanzamento automatico.\n" -"Premi nuovamente il tasto avanzamento automatico o il tasto di arretramento " -"per disabilitarlo." +"Avanzamento continuo, attivato dal tasto avanzamento automatico.\n" +"Premi nuovamente il tasto di avanzamento automatico o il tasto di " +"arretramento per disabilitarlo." #: src/settings_translation_file.cpp msgid "Controls" @@ -2744,7 +2744,7 @@ msgstr "Ferimento" #: src/settings_translation_file.cpp msgid "Debug info toggle key" -msgstr "Tasto di scelta delle informazioni di debug" +msgstr "Tasto di (dis)attivazione delle informazioni di debug" #: src/settings_translation_file.cpp msgid "Debug log file size threshold" @@ -2842,7 +2842,7 @@ msgid "" "Defines sampling step of texture.\n" "A higher value results in smoother normal maps." msgstr "" -"Stabilisce il passo di campionamento dell'immagine.\n" +"Stabilisce il passo di campionamento della texture.\n" "Un valore maggiore dà normalmap più uniformi." #: src/settings_translation_file.cpp @@ -2946,7 +2946,8 @@ msgstr "Doppio \"salta\" per volare" #: src/settings_translation_file.cpp msgid "Double-tapping the jump key toggles fly mode." -msgstr "Premendo due volte il tasto di salto si sceglie la modalità di volo." +msgstr "" +"Premendo due volte il tasto di salto si (dis)attiva la modalità di volo." #: src/settings_translation_file.cpp msgid "Drop item key" @@ -3055,11 +3056,11 @@ msgid "" "textures)\n" "when connecting to the server." msgstr "" -"Abilita l'utilizzo di un server multimediale remoto (se fornito dal " -"server).\n" +"Abilita l'utilizzo di un server multimediale remoto (se fornito dal server)." +"\n" "I server remoti offrono un sistema significativamente più rapido per " "scaricare\n" -"contenuti multimediali (es. immagini) quando ci si connette al server." +"contenuti multimediali (es. texture) quando ci si connette al server." #: src/settings_translation_file.cpp msgid "" @@ -3112,8 +3113,8 @@ msgid "" "or need to be auto-generated.\n" "Requires shaders to be enabled." msgstr "" -"Attiva il bumpmapping per le immagini. È necessario fornire le normalmap\n" -"con la raccolta di immagini, o devono essere generate automaticamente.\n" +"Attiva il bumpmapping per le texture. È necessario fornire le normalmap\n" +"con i pacchetti texture, o devono essere generate automaticamente.\n" "Necessita l'attivazione degli shader." #: src/settings_translation_file.cpp @@ -3280,12 +3281,12 @@ msgid "" "light edge to transparent textures. Apply this filter to clean that up\n" "at texture load time." msgstr "" -"Le immagini a cui si applicano i filtri possono amalgamare i valori RGB con " +"Le texture a cui si applicano i filtri possono amalgamare i valori RGB con " "quelle vicine completamente trasparenti,\n" "che normalmente vengono scartati dagli ottimizzatori PNG, risultando a volte " -"in immagini trasparenti scure o\n" +"in texture trasparenti scure o\n" "dai bordi chiari. Applicare questo filtro aiuta a ripulire tutto ciò\n" -"al momento del caricamento dell'immagine." +"al momento del caricamento della texture." #: src/settings_translation_file.cpp msgid "Filtering" @@ -3355,7 +3356,7 @@ msgstr "Inizio nebbia" #: src/settings_translation_file.cpp msgid "Fog toggle key" -msgstr "Tasto scelta nebbia" +msgstr "Tasto (dis)attivazione nebbia" #: src/settings_translation_file.cpp msgid "Font bold by default" @@ -3580,11 +3581,11 @@ msgstr "Moduli HTTP" #: src/settings_translation_file.cpp msgid "HUD scale factor" -msgstr "Fattore di scala del visore" +msgstr "Fattore di scala dell'HUD" #: src/settings_translation_file.cpp msgid "HUD toggle key" -msgstr "Tasto di scelta del visore" +msgstr "Tasto di (dis)attivazione dell'HUD" #: src/settings_translation_file.cpp msgid "" @@ -3922,7 +3923,7 @@ msgid "" "down and\n" "descending." msgstr "" -"Se abilitata, si usa il tasto \"speciale\" invece di \"striscia\" per " +"Se abilitata, si usa il tasto \"speciale\" invece di \"furtivo\" per " "arrampicarsi e\n" "scendere." @@ -4724,7 +4725,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per strisciare.\n" +"Tasto per muoversi furtivamente.\n" "Usato anche per scendere, e per immergersi in acqua se aux1_descends è " "disattivato.\n" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4816,7 +4817,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per scegliere la modalità di movimento di pendenza.\n" +"Tasto per scegliere la modalità di inclinazione del movimento. \n" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4857,7 +4858,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per scegliere la visualizzazione della nebbia.\n" +"Tasto per attivare/disattivare la visualizzazione della nebbia.\n" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4867,7 +4868,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per scegliere la visualizzazione del visore.\n" +"Tasto per attivare/disattivare la visualizzazione dell'HUD.\n" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5522,7 +5523,7 @@ msgstr "Limite minimo di piccole grotte casuali per pezzo di mappa." #: src/settings_translation_file.cpp msgid "Minimum texture size" -msgstr "Dimensione minima dell'immagine" +msgstr "Dimensione minima della texture" #: src/settings_translation_file.cpp msgid "Mipmapping" @@ -5534,7 +5535,7 @@ msgstr "Canali mod" #: src/settings_translation_file.cpp msgid "Modifies the size of the hudbar elements." -msgstr "Modifica la dimensione degli elementi della barra del visore." +msgstr "Modifica la dimensione degli elementi della barra dell'HUD." #: src/settings_translation_file.cpp msgid "Monospace font path" @@ -5582,7 +5583,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Mute key" -msgstr "Tasto silenzio" +msgstr "Tasto muta" #: src/settings_translation_file.cpp msgid "Mute sound" @@ -5806,8 +5807,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Path to texture directory. All textures are first searched from here." msgstr "" -"Percorso della cartella immagini. Tutte le immagini vengono cercate a " -"partire da qui." +"Percorso della cartella contenente le texture. Tutte le texture vengono " +"cercate a partire da qui." #: src/settings_translation_file.cpp msgid "" @@ -5857,11 +5858,11 @@ msgstr "Fisica" #: src/settings_translation_file.cpp msgid "Pitch move key" -msgstr "Modalità movimento pendenza" +msgstr "Modalità inclinazione movimento" #: src/settings_translation_file.cpp msgid "Pitch move mode" -msgstr "Modalità movimento pendenza" +msgstr "Modalità inclinazione movimento" #: src/settings_translation_file.cpp msgid "" @@ -5926,7 +5927,7 @@ msgstr "Generatore di profili" #: src/settings_translation_file.cpp msgid "Profiler toggle key" -msgstr "Tasto di scelta del generatore di profili" +msgstr "Tasto di (dis)attivazione del generatore di profili" #: src/settings_translation_file.cpp msgid "Profiling" @@ -6440,11 +6441,11 @@ msgstr "Rende fluida la rotazione della telecamera. 0 per disattivare." #: src/settings_translation_file.cpp msgid "Sneak key" -msgstr "Tasto striscia" +msgstr "Tasto furtivo" #: src/settings_translation_file.cpp msgid "Sneaking speed" -msgstr "Velocità di strisciamento" +msgstr "Velocità furtiva" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." @@ -6621,7 +6622,7 @@ msgstr "Rumore di continuità del terreno" #: src/settings_translation_file.cpp msgid "Texture path" -msgstr "Percorso delle immagini" +msgstr "Percorso delle texture" #: src/settings_translation_file.cpp msgid "" @@ -6632,7 +6633,7 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" -"Le immagini su un nodo possono essere allineate sia al nodo che al mondo.\n" +"Le texture su un nodo possono essere allineate sia al nodo che al mondo.\n" "Il primo modo si addice meglio a cose come macchine, arredamento, ecc.,\n" "mentre il secondo fa sì che scale e microblocchi si adattino meglio ai " "dintorni.\n" @@ -6847,7 +6848,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Toggle camera mode key" -msgstr "Tasto di scelta della modalità telecamera" +msgstr "Tasto di (dis)attivazione della modalità telecamera" #: src/settings_translation_file.cpp msgid "Tooltip delay" @@ -6930,12 +6931,12 @@ msgstr "Usare un'animazione con le nuvole per lo sfondo del menu principale." #: src/settings_translation_file.cpp msgid "Use anisotropic filtering when viewing at textures from an angle." msgstr "" -"Usare il filtraggio anisotropico quando si guardano le immagini da " +"Usare il filtraggio anisotropico quando si guardano le texture da " "un'angolazione." #: src/settings_translation_file.cpp msgid "Use bilinear filtering when scaling textures." -msgstr "Usare il filtraggio bilineare quando si ridimensionano le immagini." +msgstr "Usare il filtraggio bilineare quando si ridimensionano le texture." #: src/settings_translation_file.cpp msgid "" @@ -6943,14 +6944,14 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" -"Usare il mip mapping per ridimensionare le immagini. Potrebbe aumentare " +"Usare il mip mapping per ridimensionare le texture. Potrebbe aumentare " "leggermente le prestazioni,\n" -"specialmente quando si usa una raccolta di immagini ad alta risoluzione.\n" +"specialmente quando si usa un pacchetto texture ad alta risoluzione.\n" "La correzione gamma del downscaling non è supportata." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." -msgstr "Usare il filtraggio trilineare quando si ridimensionano le immagini." +msgstr "Usare il filtraggio trilineare quando si ridimensionano le texture." #: src/settings_translation_file.cpp msgid "VBO" @@ -7150,7 +7151,7 @@ msgstr "" "Quando gui_scaling_filter_txr2img è Vero, copia quelle immagini\n" "dall'hardware al software per il ridimensionamento. Quando è Falso,\n" "ripiega sul vecchio metodo di ridimensionamento, per i driver video che\n" -"non supportano correttamente lo scaricamento delle immagini dall'hardware." +"non supportano correttamente lo scaricamento delle texture dall'hardware." #: src/settings_translation_file.cpp msgid "" @@ -7164,13 +7165,13 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" -"Quando si usano i filtri bilineare/trilineare/anisotropico, le immagini a " +"Quando si usano i filtri bilineare/trilineare/anisotropico, le texture a " "bassa risoluzione\n" -"possono essere sfocate, così si esegue l'upscaling automatico con " +"possono essere sfocate, così viene eseguito l'ingrandimento automatico con " "l'interpolazione nearest-neighbor\n" "per conservare pixel chiari. Questo imposta la dimensione minima delle " "immagini\n" -"per le immagini upscaled; valori più alti hanno un aspetto più nitido, ma " +"per le texture ingrandite; valori più alti hanno un aspetto più nitido, ma " "richiedono più memoria.\n" "Sono raccomandate le potenze di 2. Impostarla a un valore maggiore di 1 " "potrebbe non avere\n" @@ -7193,7 +7194,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" -"Se le animazioni delle immagini dei nodi dovrebbero essere asincrone per " +"Se le animazioni delle texture dei nodi dovrebbero essere asincrone per " "blocco mappa." #: src/settings_translation_file.cpp @@ -7231,8 +7232,7 @@ msgstr "" "Se silenziare i suoni. È possibile de-silenziare i suoni in qualsiasi " "momento, a meno che\n" "il sistema audio non sia disabilitato (enable_sound=false).\n" -"Nel gioco, puoi alternare lo stato silenziato col tasto di silenzio o " -"usando\n" +"Nel gioco, puoi alternare lo stato silenziato col tasto muta o usando\n" "il menu di pausa." #: src/settings_translation_file.cpp @@ -7281,19 +7281,19 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" -"Le immagini allineate al mondo possono essere ridimensionate per estendersi " +"Le texture allineate al mondo possono essere ridimensionate per estendersi " "su diversi nodi.\n" "Comunque, il server potrebbe non inviare la scala che vuoi, specialmente se " -"usi una raccolta di immagini\n" -"progettata specificamente; con questa opzione, il client prova a stabilire " +"usi un pacchetto texture\n" +"progettato specificamente; con questa opzione, il client prova a stabilire " "automaticamente la scala\n" -"basandosi sulla dimensione dell'immagine.\n" +"basandosi sulla dimensione della texture.\n" "Si veda anche texture_min_size.\n" "Avviso: questa opzione è SPERIMENTALE!" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "Modalità immagini allineate al mondo" +msgstr "Modalità texture allineate al mondo" #: src/settings_translation_file.cpp msgid "Y of flat ground." From 4232a1335f202bf386d06abc5715c742719916a9 Mon Sep 17 00:00:00 2001 From: florian deschenaux Date: Sat, 1 Aug 2020 08:07:46 +0000 Subject: [PATCH 391/624] Translated using Weblate (French) Currently translated at 99.0% (1337 of 1350 strings) --- po/fr/minetest.po | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index 45560e294..fba49b876 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-13 15:59+0000\n" -"Last-Translator: J. Lavoie \n" +"PO-Revision-Date: 2020-08-01 11:12+0000\n" +"Last-Translator: florian deschenaux \n" "Language-Team: French \n" "Language: fr\n" @@ -766,7 +766,7 @@ msgstr "Démarrer" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "Adresse / Port :" +msgstr "Adresse / Port" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Connect" @@ -782,7 +782,7 @@ msgstr "Dégâts activés" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Del. Favorite" -msgstr "Supprimer favori :" +msgstr "Supprimer favori" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Favorite" @@ -1158,19 +1158,19 @@ msgid "" "- %s: chat\n" msgstr "" "Contrôles:\n" -"- %s : avancer\n" -"- %s : reculer\n" -"- %s : à gauche\n" -"- %s : à droite\n" -"- %s : sauter/grimper\n" -"- %s : marcher lentement/descendre\n" -"- %s : lâcher l'objet en main\n" -"- %s : inventaire\n" +"- %s: avancer\n" +"- %s: reculer\n" +"- %s: à gauche\n" +"- %s: à droite\n" +"- %s: sauter/grimper\n" +"- %s: marcher lentement/descendre\n" +"- %s: lâcher l'objet en main\n" +"- %s: inventaire\n" "- Souris : tourner/regarder\n" "- Souris gauche : creuser/attaquer\n" "- Souris droite : placer/utiliser\n" "- Molette souris : sélectionner objet\n" -"- %s : discuter\n" +"- %s: discuter\n" #: src/client/game.cpp msgid "Creating client..." @@ -2026,7 +2026,7 @@ msgstr "Bruit 2D contrôlant la taille et la fréquence des plateaux montagneux. #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "Bruit 2D qui localise les vallées fluviales et les canaux" +msgstr "Bruit 2D qui localise les vallées fluviales et les canaux." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -3888,7 +3888,7 @@ msgid "" "are\n" "enabled." msgstr "" -"Si désactivé, la touche \"special\" est utilisée si le vole et le mode " +"Si désactivé, la touche \"special\" est utilisée si le vole et le mode " "rapide sont tous les deux activés." #: src/settings_translation_file.cpp @@ -7196,7 +7196,6 @@ msgid "Whether to fog out the end of the visible area." msgstr "Détermine la visibilité de la brume au bout de l'aire visible." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether to mute sounds. You can unmute sounds at any time, unless the\n" "sound system is disabled (enable_sound=false).\n" @@ -7204,10 +7203,10 @@ msgid "" "pause menu." msgstr "" "S'il faut mettre les sons en sourdine. Vous pouvez désactiver les sons à " -"tout moment, sauf si le\n" +"tout moment, sauf si\n" "le système de sonorisation est désactivé (enable_sound=false).\n" "Dans le jeu, vous pouvez passer en mode silencieux avec la touche de mise en " -"sourdine ou en utilisant la\n" +"sourdine ou en utilisant le\n" "menu pause." #: src/settings_translation_file.cpp From 426bae8a9829789c710334c196093b8f58e9ff78 Mon Sep 17 00:00:00 2001 From: atomicbeef Date: Sun, 2 Aug 2020 04:29:38 +0200 Subject: [PATCH 392/624] Added translation using Weblate (Bulgarian) --- po/bg/minetest.po | 6325 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6325 insertions(+) create mode 100644 po/bg/minetest.po diff --git a/po/bg/minetest.po b/po/bg/minetest.po new file mode 100644 index 000000000..71d923205 --- /dev/null +++ b/po/bg/minetest.po @@ -0,0 +1,6325 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the minetest package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: minetest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "" + +#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp +msgid "OK" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred in a Lua script:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred:" +msgstr "" + +#: builtin/mainmenu/common.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server supports protocol versions between $1 and $2. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server enforces protocol version $1. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We support protocol versions between version $1 and $2." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We only support protocol version $1." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Protocol version mismatch. " +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "World:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Mod:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No (optional) dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No hard dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No optional dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp +msgid "Save" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Find More Mods" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "enabled" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "All packages" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Games" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Mods" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back to Main Menu" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No results" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No packages could be retrieved" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Downloading..." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Uninstall" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caverns" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Very large caverns deep in the underground" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Sea level rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Mountains" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floatlands (experimental)" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floating landmasses in the sky" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Altitude chill" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Reduces heat with altitude" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Altitude dry" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Reduces humidity with altitude" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Humid rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Increases humidity around rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Vary river depth" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Low humidity and high heat causes shallow or dry rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Hills" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Lakes" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Additional terrain" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Generate non-fractal terrain: Oceans and underground" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Trees and jungle grass" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Flat terrain" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Mud flow" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Terrain surface erosion" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Temperate, Desert, Jungle, Tundra, Taiga" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Temperate, Desert, Jungle" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Temperate, Desert" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "You have no games installed." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caves" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Dungeons" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Decorations" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "" +"Structures appearing on the terrain (no effect on trees and jungle grass " +"created by v6)" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Structures appearing on the terrain, typically trees and plants" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Network of tunnels and caves" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biomes" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biome blending" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Smooth transition between biomes" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Mapgen-specific flags" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Warning: The Development Test is meant for developers." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "World name" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "A world named \"$1\" already exists" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "No game selected" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "Are you sure you want to delete \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua +#: src/client/keycode.cpp +msgid "Delete" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: failed to delete \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: invalid path \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_world.lua +msgid "Delete World \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Accept" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "" +"This modpack has an explicit name given in its modpack.conf which will " +"override any renaming here." +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "2D Noise" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Octaves" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Persistance" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Lacunarity" +msgstr "" + +#. ~ "defaults" is a noise parameter flag. +#. It describes the default processing options +#. for noise settings in main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "defaults" +msgstr "" + +#. ~ "eased" is a noise parameter flag. +#. It is used to make the map smoother and +#. can be enabled in noise settings in +#. main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "eased" +msgstr "" + +#. ~ "absvalue" is a noise parameter flag. +#. It is short for "absolute value". +#. It can be enabled in noise settings in +#. main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid integer." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select directory" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select file" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "< Back to Settings page" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 (Enabled)" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Failed to install $1 to $2" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to find a valid mod or modpack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find suitable folder name for modpack $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find real mod name for: $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: file: \"$1\"" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: Unsupported file type \"$1\" or broken archive" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 mods" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Installed Packages:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No package description available" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Rename" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No dependencies." +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Use Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Uninstall Package" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Active Contributors" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative Mode" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Announce Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name/Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Bind Address" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Play Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Start Game" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Address / Port" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Name / Password" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Connect" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Ping" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative mode" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Damage enabled" +msgstr "" + +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "PvP enabled" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Fancy Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Trilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "2x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "4x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "8x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Yes" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Connected Glass" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Antialiasing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Autosave Screen Size" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/client/game.cpp +msgid "Change Keys" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "All Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Touchthreshold: (px)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bump Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Tone Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Generate Normal Maps" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Plants" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Start Singleplayer" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Config mods" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Main" +msgstr "" + +#: src/client/client.cpp +msgid "Connection timed out." +msgstr "" + +#: src/client/client.cpp +msgid "Loading textures..." +msgstr "" + +#: src/client/client.cpp +msgid "Rebuilding shaders..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Connection error (timed out?)" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Could not find or load game \"" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Invalid gamespec." +msgstr "" + +#. ~ DO NOT TRANSLATE THIS LITERALLY! +#. This is a special string. Put either "no" or "yes" +#. into the translation field (literally). +#. Choose "yes" if the language requires use of the fallback +#. font, "no" otherwise. +#. The fallback font is (normally) required for languages with +#. non-Latin script, like Chinese. +#. When in doubt, test your translation. +#: src/client/fontengine.cpp +msgid "needs_fallback_font" +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating server..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating client..." +msgstr "" + +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/client/game.cpp +msgid "Item definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Node definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "KiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "" + +#: src/client/game.cpp +msgid "ok" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Profiler graph shown" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info and profiler graph hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update enabled" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +msgid "Enabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Disabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "" +"Default Controls:\n" +"No menu visible:\n" +"- single tap: button activate\n" +"- double tap: place/use\n" +"- slide finger: look around\n" +"Menu/Inventory visible:\n" +"- double tap (outside):\n" +" -->close\n" +"- touch stack, touch slot:\n" +" --> move stack\n" +"- touch&drag, tap 2nd finger\n" +" --> place single item to slot\n" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" + +#: src/client/game.cpp +msgid "Continue" +msgstr "" + +#: src/client/game.cpp +msgid "Change Password" +msgstr "" + +#: src/client/game.cpp +msgid "Game paused" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to Menu" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to OS" +msgstr "" + +#: src/client/game.cpp +msgid "Game info:" +msgstr "" + +#: src/client/game.cpp +msgid "- Mode: " +msgstr "" + +#: src/client/game.cpp +msgid "Remote server" +msgstr "" + +#: src/client/game.cpp +msgid "- Address: " +msgstr "" + +#: src/client/game.cpp +msgid "Hosting server" +msgstr "" + +#: src/client/game.cpp +msgid "- Port: " +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "On" +msgstr "" + +#: src/client/game.cpp +msgid "Off" +msgstr "" + +#: src/client/game.cpp +msgid "- Damage: " +msgstr "" + +#: src/client/game.cpp +msgid "- Creative Mode: " +msgstr "" + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +msgid "- PvP: " +msgstr "" + +#: src/client/game.cpp +msgid "- Public: " +msgstr "" + +#: src/client/game.cpp +msgid "- Server Name: " +msgstr "" + +#: src/client/game.cpp +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat hidden" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD hidden" +msgstr "" + +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" +msgstr "" + +#: src/client/gameui.cpp +msgid "Profiler hidden" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Middle Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Backspace" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Clear" +msgstr "" + +#: src/client/keycode.cpp +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp +msgid "Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Control" +msgstr "" + +#. ~ Key name, common on Windows keyboards +#: src/client/keycode.cpp +msgid "Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Pause" +msgstr "" + +#: src/client/keycode.cpp +msgid "Caps Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page up" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" +msgstr "" + +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" +msgstr "" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Snapshot" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 0" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 3" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 4" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 5" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 6" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 7" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 8" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 9" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad *" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad +" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad ." +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad -" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad /" +msgstr "" + +#: src/client/keycode.cpp +msgid "Num Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Scroll Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "Apps" +msgstr "" + +#: src/client/keycode.cpp +msgid "Sleep" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Play" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Zoom" +msgstr "" + +#: src/client/keycode.cpp +msgid "OEM Clear" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +#, c-format +msgid "" +"You are about to join this server with the name \"%s\" for the first time.\n" +"If you proceed, a new account using your credentials will be created on this " +"server.\n" +"Please retype your password and click 'Register and Join' to confirm account " +"creation, or click 'Cancel' to abort." +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiFormSpecMenu.cpp +msgid "Proceed" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "\"Special\" = climb down" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Automatic jumping" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Change camera" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Autoforward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Local command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle HUD" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle chat log" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fog" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "New Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Confirm Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Change" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Exit" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Muted" +msgstr "" + +#. ~ Imperative, as in "Enter/type in text". +#. Don't forget the space. +#: src/gui/modalMenu.cpp +msgid "Enter " +msgstr "" + +#. ~ DO NOT TRANSLATE THIS LITERALLY! +#. This is a special string which needs to contain the translation's +#. language code (e.g. "de" for German). +#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp +msgid "LANG_CODE" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Always fly and fast" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated right clicks when holding the " +"right\n" +"mouse button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Fixes the position of virtual joystick.\n" +"If disabled, virtual joystick will center to first-touch's position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Use virtual joystick to trigger \"aux\" button.\n" +"If enabled, virtual joystick will also tap \"aux\" button when out of main " +"circle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Right key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Adds particles when digging a node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shader path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bumpmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of generated normalmaps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion scale" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS in pause menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve low gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve high gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost center" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost spread" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended, and it’s the only driver with\n" +"shader support currently." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D support.\n" +"Currently supported:\n" +"- none: no 3d output.\n" +"- anaglyph: cyan/magenta color 3d.\n" +"- interlaced: odd/even line based polarisation screen support.\n" +"- topbottom: split screen top/bottom.\n" +"- sidebyside: split screen side by side.\n" +"- crossview: Cross-eyed 3d\n" +"- pageflip: quadbuffer based 3d.\n" +"Note that the interlaced mode requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D mode parallax strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box border color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ambient occlusion gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name to tooltip." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font bold by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font italic by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the default font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Regular font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the monospace font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the fallback font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path of the fallback font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to save screenshots at. Can be an absolute or relative path.\n" +"The folder will be created if it doesn't already exist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prometheus listener address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce to this serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default stack size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rollback recording" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shutdown message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server crashes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ask to reconnect after crash" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amount of messages a player may send per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated Lua API calls:\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block management interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ABM interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"At this distance the server will aggressively optimize which blocks are sent " +"to\n" +"clients.\n" +"Small values potentially improve performance a lot, at the expense of " +"visible\n" +"rendering glitches (some blocks will not be rendered under water and in " +"caves,\n" +"as well as sometimes on land).\n" +"Setting this to a value greater than max_block_send_distance disables this\n" +"optimization.\n" +"Stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Restricts the access of certain client-side functions on servers.\n" +"Combine the byteflags below to restrict client-side features, or set to 0\n" +"for no restrictions:\n" +"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" +"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" +"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" +"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" +"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Changes the main menu UI:\n" +"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " +"etc.\n" +"- Simple: One singleplayer world, no game or texture pack choosers. May " +"be\n" +"necessary for smaller screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Proportion of large caves that contain liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "" + +#: src/settings_translation_file.cpp +#, c-format +msgid "" +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Surface level of optional water placed on a solid floatland layer.\n" +"Water is disabled by default and will only be placed if this value is set\n" +"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" +"upper tapering).\n" +"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" +"When enabling water placement the floatlands must be configured and tested\n" +"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" +"required value depending on 'mgv7_np_floatland'), to avoid\n" +"server-intensive extreme water flow and to avoid vast flooding of the\n" +"world surface below." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge underwater noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River valley width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of step mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hill size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridged mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of ridged mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of step mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that locates the river valleys and channels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Selects one of 18 fractal types.\n" +"1 = 4D \"Roundy\" Mandelbrot set.\n" +"2 = 4D \"Roundy\" Julia set.\n" +"3 = 4D \"Squarry\" Mandelbrot set.\n" +"4 = 4D \"Squarry\" Julia set.\n" +"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" +"6 = 4D \"Mandy Cousin\" Julia set.\n" +"7 = 4D \"Variation\" Mandelbrot set.\n" +"8 = 4D \"Variation\" Julia set.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" +"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" +"12 = 3D \"Christmas Tree\" Julia set.\n" +"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" +"14 = 3D \"Mandelbulb\" Julia set.\n" +"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" +"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" +"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" +"18 = 4D \"Mandelbulb\" Julia set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slice w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Seabed noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slope and fill work together to modify the heights." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amplifies the valleys." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" +"WARNING!: There is no benefit, and there are several dangers, in\n" +"increasing this value above 5.\n" +"Reducing this value increases cave and dungeon density.\n" +"Altering this value is for special usage, leaving it unchanged is\n" +"recommended." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Absolute limit of queued blocks to emerge" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The URL for the content repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" From ace25f516b9674fb09e4df09caccdb3fd1a31eb6 Mon Sep 17 00:00:00 2001 From: atomicbeef Date: Mon, 3 Aug 2020 04:22:56 +0000 Subject: [PATCH 393/624] Translated using Weblate (Bulgarian) Currently translated at 8.0% (108 of 1350 strings) --- po/bg/minetest.po | 234 ++++++++++++++++++++++++---------------------- 1 file changed, 124 insertions(+), 110 deletions(-) diff --git a/po/bg/minetest.po b/po/bg/minetest.po index 71d923205..d3ad1c9ec 100644 --- a/po/bg/minetest.po +++ b/po/bg/minetest.po @@ -8,114 +8,119 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"PO-Revision-Date: 2020-08-04 04:41+0000\n" +"Last-Translator: atomicbeef \n" +"Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +msgstr "Ти умря" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" -msgstr "" +msgstr "Прераждането" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Добре" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "" +msgstr "Сървърт поиска нова връзка:" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "" +msgstr "Повтаряне на връзката" #: builtin/fstk/ui.lua msgid "Main menu" -msgstr "" +msgstr "Главното меню" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" -msgstr "" +msgstr "Имаше грешка в Lua скрипт:" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "" +msgstr "Имаше грешка:" #: builtin/mainmenu/common.lua src/client/game.cpp msgid "Loading..." -msgstr "" +msgstr "Зарежда..." #: builtin/mainmenu/common.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "" +"Опитай да включиш публичния списък на сървъри отново и си провай интернет " +"връзката." #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "" +msgstr "Сървърът подкрепя версии на протокола между $1 и $2. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "" +msgstr "Сървърт налага версия $1 на протокола. " #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "" +msgstr "Ние подкрепяме версии на протокола между $1 и $2." #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "" +msgstr "Ние само подкрепяме версия $1 на протокола." #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " -msgstr "" +msgstr "Версията на протокола е грешна. " #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "" +msgstr "Свят:" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "" +msgstr "Няма описание за модпака." #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "" +msgstr "Няма описание за играта." #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" -msgstr "" +msgstr "Мод:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "" +msgstr "Няма (незадължителни) зависимости" #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "" +msgstr "Няма задължителни зависимости" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "" +msgstr "Незадължителни зависимости:" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "" +msgstr "Зависимости:" #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "" +msgstr "Няма незадължителни зависимости" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "" +msgstr "Записване" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua @@ -125,359 +130,368 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "" +msgstr "Отказ" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Намиране на Още Модове" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "" +msgstr "Деактивиране на модпака" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "" +msgstr "Активиране на модпака" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "" +msgstr "Активиран" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "" +msgstr "Деактивиране на всички" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "" +msgstr "Актиривране на всички" #: builtin/mainmenu/dlg_config_world.lua msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" +"Активиране на мода \"$1\" беше неуспешно, защото съдържа забранени символи. " +"Само символите [a-z0-9_] са разрешени." #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB не е налично когато Minetest е съставен без cURL" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" -msgstr "" +msgstr "Всички пакети" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "" +msgstr "Игри" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "" +msgstr "Модове" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "" +msgstr "Пакети на текстури" #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "" +msgstr "Изтеглянето на $1 беше неуспешно" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua msgid "Search" -msgstr "" +msgstr "Търсене" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "" +msgstr "Обратно към Главното Меню" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "" +msgstr "Няма резултати" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "Получаване на пакети беше неуспешно" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." -msgstr "" +msgstr "Изтегля..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "" +msgstr "Инсталиране" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "" +msgstr "Актуализация" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" -msgstr "" +msgstr "Деинсталиране" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "Гледане" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "Пещери" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Много големи пещери дълбоко под земята" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Реки на морското ниво" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "Реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Планини" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Земни маси в небето (експериментално)" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Земни маси в небето" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "Студ от височина" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Намалява топлина с височина" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "Сух от височина" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Намалява влажност с височина" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Влажни реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Нараства влажност около реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Вариране на дълбочина на реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Ниска влажност и висока топлина причинява ниски или сухи реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Хълми" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Езера" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Допълнителен терен" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Създаване на нефрактален терен: Морета и под земята" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Трева в джунглата и дървета" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Равен терен" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Кален поток" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Ерозия на повърхност на терен" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Умерен, Пустиня, Джунгла, Тундра, Тайга" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Умерен, Пустиня, Джунгла" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Умерен, Пустиня" #: builtin/mainmenu/dlg_create_world.lua msgid "You have no games installed." -msgstr "" +msgstr "Нямаш инсалирани игри." #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "" +msgstr "Изтегли един от minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "Пещери" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "Тъмници" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" -msgstr "" +msgstr "Украси" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Появяване на структури на терена (няма ефект на трева от джунгла и дървета " +"създадени от v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Появяване на структури на терена, типично дървета и растения" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Мрежа от тунели и пещери" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Природни зони" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "Смесване между природни зони" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Гладка промяна между природни зони" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Флагове за създаване на света" #: builtin/mainmenu/dlg_create_world.lua msgid "Mapgen-specific flags" -msgstr "" +msgstr "Флагове спесифични за създване на света" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." -msgstr "" +msgstr "Внимание: Тестът за Развитие е предназначен за разработници." #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" +msgstr "Изтегляне на игра, например Minetest Game, от minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "World name" -msgstr "" +msgstr "Име на света" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "" +msgstr "Семе" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" -msgstr "" +msgstr "Създаване на света" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "" +msgstr "Игра" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" -msgstr "" +msgstr "Създаване" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "" +msgstr "Вече има свят с името \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" -msgstr "" +msgstr "Няма избрана игра" #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "" +msgstr "Сигурен ли си че искаш да изтриваш \"$1\"?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" -msgstr "" +msgstr "Изтриване" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" +msgstr "pkgmgr: Изтриване на \"$1\" беше неуспешно" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "" +msgstr "pkgmgr: Грешна пътека \"$1\"" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "" +msgstr "Да изтриe ли света \"$1\"?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "" +msgstr "Приемане" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" +"Този модпак има изрично име дадено в неговия modpack.conf, което ще отменя " +"всяко преименуване тука." #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "" +msgstr "Преименуване на модпак:" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "" +msgstr "Изключено" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "" +msgstr "Включено" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "Browse" -msgstr "" +msgstr "Преглеждане" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" -msgstr "" +msgstr "Изместване" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +#, fuzzy msgid "Scale" -msgstr "" +msgstr "Мащаб" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "X spread" -msgstr "" +msgstr "Разпространение на Х-оста" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "" +msgstr "Разпространение на У-оста" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" From c1957df5437756137e2f713bc050c2b5f302aaae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Carvalho=20de=20Ara=C3=BAjo?= Date: Sat, 8 Aug 2020 19:22:48 +0000 Subject: [PATCH 394/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 90.5% (1222 of 1350 strings) --- po/pt_BR/minetest.po | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index fc31640c4..93b6a8ff1 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2019-12-11 13:36+0000\n" -"Last-Translator: ramon.venson \n" +"PO-Revision-Date: 2020-08-09 19:32+0000\n" +"Last-Translator: Samuel Carvalho de Araújo \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -132,9 +132,8 @@ msgid "No game description provided." msgstr "Nenhuma descrição de jogo disponível." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Sem dependências." +msgstr "Sem dependências rígidas" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -238,7 +237,6 @@ msgid "Altitude chill" msgstr "Frio de altitude" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" msgstr "Frio de altitude" From fb129f17ecbf2655040bd708627e2eb3699399ff Mon Sep 17 00:00:00 2001 From: Vinicius Martins Date: Fri, 7 Aug 2020 16:08:27 +0000 Subject: [PATCH 395/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 90.5% (1222 of 1350 strings) --- po/pt_BR/minetest.po | 146 +++++++++++++++++++------------------------ 1 file changed, 65 insertions(+), 81 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index 93b6a8ff1..f162666a8 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-08-09 19:32+0000\n" -"Last-Translator: Samuel Carvalho de Araújo \n" +"Last-Translator: Vinicius Martins \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -24,7 +24,7 @@ msgstr "Você morreu" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -117,7 +117,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Encontre Mais Mods" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -170,12 +170,11 @@ msgstr "Voltar ao menu principal" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB não está disponível quando Minetest é compilado sem cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Carregando..." +msgstr "Baixando..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -222,7 +221,7 @@ msgstr "Atualizar" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "Vizualizar" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -230,7 +229,7 @@ msgstr "Já existe um mundo com o nome \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Terreno adicional" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -246,28 +245,24 @@ msgid "Biome blending" msgstr "Ruído do bioma" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Ruído do bioma" +msgstr "Biomas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Barulho da caverna" +msgstr "Cavernas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Octavos" +msgstr "Cavernas" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Criar" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Monitorização" +msgstr "Decorações" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -278,23 +273,20 @@ msgid "Download one from minetest.net" msgstr "Baixe um apartir do site minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Y mínimo da dungeon" +msgstr "Masmorras (Dungeons)" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Terreno plano" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Densidade da Ilha Flutuante montanhosa" +msgstr "Ilhas flutuantes" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Nível de água" +msgstr "Ilhas flutuantes (experimental)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -302,28 +294,27 @@ msgstr "Jogo" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Excluir Oceanos e subterrâneos do fractal" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Montanhas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Driver de vídeo" +msgstr "Rios húmidos" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Alta humidade perto dos rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Lagos" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Baixa umidade e calor elevado resultam em rios rasos ou secos" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -334,22 +325,20 @@ msgid "Mapgen flags" msgstr "Flags do gerador de mundo" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Flags específicas do gerador de mundo V5" +msgstr "Parâmetros específicos do gerador de mundo V5" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Ruído da montanha" +msgstr "Montanhas" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Fluxo de lama" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Conectar túneis e cavernas" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -357,20 +346,19 @@ msgstr "Nenhum jogo selecionado" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Reduz calor com altitude" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Reduz humidade com altitude" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Tamanho do Rio" +msgstr "Rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Rios ao nível do mar" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -379,50 +367,49 @@ msgstr "Seed" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Transição suave entre biomas" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Estruturas que aparecem no terreno (sem efeito em árvores e grama da selva " +"criada pelo v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Estruturas que aparecem no terreno, geralmente árvores e plantas" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Temperado, Deserto" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Temperado, Deserto, Selva" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Temperado, Deserto, Selva, Tundra, Floresta Boreal" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "Altura do terreno" +msgstr "Altura da erosão de terreno" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Árvores e grama da selva" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Profundidade do Rio" +msgstr "Rios profundos" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Cavernas bastante profundas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." msgstr "" "Aviso: O game \"minimal development test\" apenas serve para desenvolvedores." @@ -741,7 +728,7 @@ msgstr "Criar Servidor" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instalar jogos do ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -973,9 +960,8 @@ msgid "Waving Leaves" msgstr "Folhas Balançam" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Nós que balancam" +msgstr "Líquidos com ondas" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1415,11 +1401,11 @@ msgstr "Som mutado" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Som do sistema está desabilitado" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Som do sistema não é suportado nesta versão" #: src/client/game.cpp msgid "Sound unmuted" @@ -1754,7 +1740,7 @@ msgid "Register and Join" msgstr "Registrar e entrar" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1762,11 +1748,12 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Você está prestes a entrar no servidor em %1$s com o nome \"%2$s\" pela " -"primeira vez. Se continuar, uma nova conta usando suas credenciais será " -"criada neste servidor.\n" -"Por favor, redigite sua senha e clique registrar e entrar para confirmar a " -"criação da conta ou clique em cancelar para abortar." +"Você está prestes a entrar no servidor com o nome \"%s\" pela primeira vez. " +"\n" +"Se continuar, uma nova conta usando suas credenciais será criada neste " +"servidor.\n" +"Por favor, confirme sua senha e clique em \"Registrar e Entrar\" para " +"confirmar a criação da conta, ou clique em \"Cancelar\" para abortar." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1911,9 +1898,8 @@ msgid "Toggle noclip" msgstr "Alternar noclip" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Ativar histórico de conversa" +msgstr "Ativar Voar seguindo a câmera" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1980,7 +1966,6 @@ msgstr "" "estiver fora do circulo principal." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" "Can be used to move a desired point to (0, 0) to create a\n" @@ -1991,13 +1976,15 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"(X,Y,Z) Espaço do fractal a partir centro do mundo em unidades de 'escala'.\n" -"Pode ser usado para mover um ponto desejado para (0, 0) para criar um ponto " -"de spawn apropriado, ou para permitir zoom em um ponto desejado aumentando " -"sua escala.\n" -"O padrão é configurado para ponto de spawn mandelbrot, pode ser necessário " -"altera-lo em outras situações.\n" -"Variam de -2 a 2. Multiplica por \"escala\" para compensação de nós." +"(X,Y,Z) offset do fractal a partir centro do mundo em unidades de 'escala'.\n" +"Pode ser usado para mover um ponto desejado para (0, 0) para criar um \n" +"Ponto de spawn flexível, ou para permitir zoom em um ponto desejado " +"aumentando sua escala.\n" +"O padrão é configurado com ponto de spawn Mandelbrot\n" +"usando os parâmetros padrão, pode ser necessário altera-lo em outras \n" +"situações.\n" +"Variam aproximadamente de -2 a 2. Multiplicando a escala pelo offset de " +"blocos." #: src/settings_translation_file.cpp msgid "" @@ -3569,19 +3556,16 @@ msgid "HUD toggle key" msgstr "Tecla de comutação HUD" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- legacy: (try to) mimic old behaviour (default for release).\n" "- log: mimic and log backtrace of deprecated call (default for debug).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"Manipulação para chamadas de API Lua reprovados:\n" -"- legacy: (tentar) imitar o comportamento antigo (padrão para a " -"liberação).\n" -"- log: imitação e log de retraçamento da chamada reprovada (padrão para " -"depuração).\n" -"- error: abortar no uso da chamada reprovada (sugerido para " +"Lidando com funções obsoletas da API Lua:\n" +"-...legacy: (tenta) imitar o comportamento antigo (padrão para release).\n" +"-...log: Imita e gera log das funções obsoletas (padrão para debug).\n" +"-...error: Aborta quando chama uma função obsoleta (sugerido para " "desenvolvedores de mods)." #: src/settings_translation_file.cpp From b43f8cb2de26ccd5760199eb0e733a0172bec10f Mon Sep 17 00:00:00 2001 From: Larissa Piklor Date: Fri, 7 Aug 2020 11:57:35 +0000 Subject: [PATCH 396/624] Translated using Weblate (Romanian) Currently translated at 46.3% (626 of 1350 strings) --- po/ro/minetest.po | 102 +++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 55 deletions(-) diff --git a/po/ro/minetest.po b/po/ro/minetest.po index f7c6b6fef..b6f0d813c 100644 --- a/po/ro/minetest.po +++ b/po/ro/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Romanian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-04 16:41+0000\n" -"Last-Translator: f0roots \n" +"PO-Revision-Date: 2020-08-09 19:32+0000\n" +"Last-Translator: Larissa Piklor \n" "Language-Team: Romanian \n" "Language: ro\n" @@ -13,7 +13,7 @@ msgstr "" "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 4.1-dev\n" +"X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -25,7 +25,7 @@ msgstr "Ai murit" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -117,7 +117,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Căutare Mai Multe Moduri" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -173,9 +173,8 @@ msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Se încarcă..." +msgstr "Descărcare..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -222,7 +221,7 @@ msgstr "Actualizare" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "Vizualizare" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -230,7 +229,7 @@ msgstr "O lume cu numele \"$1\" deja există" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Teren suplimentar" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -242,33 +241,28 @@ msgid "Altitude dry" msgstr "Altitudine de frisoane" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Biome zgomot" +msgstr "Amestec de biom" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Biome zgomot" +msgstr "Biomuri" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Pragul cavernei" +msgstr "Caverne" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Octava" +msgstr "Peșteri" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Creează" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informații:" +msgstr "Decorațiuni" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -279,21 +273,20 @@ msgid "Download one from minetest.net" msgstr "Descărcați unul de pe minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Zgomotul temnițelor" +msgstr "Temnițe" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Teren plat" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Mase de teren plutitoare în cer" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Terenuri plutitoare (experimental)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -301,27 +294,28 @@ msgstr "Joc" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Generare terenuri fără fracturi: Oceane și sub pământ" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Dealuri" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Râuri umede" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Mărește umiditea în jurul râurilor" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Lacuri" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Umiditatea redusă și căldura ridicată cauzează râuri superficiale sau uscate" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -332,21 +326,20 @@ msgid "Mapgen flags" msgstr "Steagurile Mapgen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Steaguri specifice Mapgen V5" +msgstr "Steaguri specifice Mapgen" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Munți" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Curgere de noroi" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Rețea de tunele și peșteri" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -354,20 +347,19 @@ msgstr "Nici un joc selectat" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Reduce căldura cu altitudinea" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Reduce umiditatea cu altitudinea" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Zgomotul râului" +msgstr "Râuri" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Râuri la nivelul mării" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -376,51 +368,51 @@ msgstr "Seminţe" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Tranziție lină între biomi" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Structuri care apar pe teren (fără efect asupra copacilor și a ierbii de " +"junglă creați de v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Structuri care apar pe teren, tipic copaci și plante" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Temperat, Deșert" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Temperat, Deșert, Junglă" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Temperat, Deșert, Junglă, Tundră, Taiga" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Eroziunea suprafeței terenului" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Copaci și iarbă de junglă" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Adâncimea râului variază" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Caverne foarte mari adânc în pământ" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "" -"Avertisment: Testul de dezvoltare minimă este destinat dezvoltatorilor." +msgstr "Avertisment: Testul de dezvoltare este destinat dezvoltatorilor." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -735,7 +727,7 @@ msgstr "Găzduiește Server" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instalarea jocurilor din ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -1394,11 +1386,11 @@ msgstr "Sunet dezactivat" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Sistem audio dezactivat" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Sistemul audio nu e suportat în această construcție" #: src/client/game.cpp msgid "Sound unmuted" @@ -2045,7 +2037,7 @@ msgstr "Mod 3D" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "Mod 3D putere paralaxă" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." From 5e01970c40e46344e737e1df542c57d840036cf1 Mon Sep 17 00:00:00 2001 From: Gao Tiesuan Date: Sat, 8 Aug 2020 07:35:16 +0000 Subject: [PATCH 397/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 88.8% (1200 of 1350 strings) --- po/zh_CN/minetest.po | 105 +++++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 59 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 80f2d86fa..90e077b04 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-13 21:08+0000\n" -"Last-Translator: ferrumcccp \n" +"PO-Revision-Date: 2020-08-12 22:32+0000\n" +"Last-Translator: Gao Tiesuan \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "您已死亡" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -112,7 +112,7 @@ msgstr "无法启用 mod \"$1\":因为包含有不支持的字符。只允许 #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "寻找更多mod" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -165,12 +165,11 @@ msgstr "返回主菜单" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "在没有cURL的情况下编译Minetest时,ContentDB不可用" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "载入中..." +msgstr "下载中..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -217,7 +216,7 @@ msgstr "更新" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "视野" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -225,45 +224,39 @@ msgstr "名为 \"$1\" 的世界已经存在" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "额外地形" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "高地寒冷" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "高地寒冷" +msgstr "高地干燥" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "生物群系噪声" +msgstr "生物群系融合" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "生物群系噪声" +msgstr "生物群系" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "大型洞穴噪声" +msgstr "大型洞穴" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "八音" +msgstr "洞穴" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "创建" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "迭代" +msgstr "装饰" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -274,51 +267,48 @@ msgid "Download one from minetest.net" msgstr "从 minetest.net 下载一个" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "地窖噪声" +msgstr "地窖" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "平坦地形" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "空中漂浮的陆地" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "水级别" +msgstr "悬空岛(实验性)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "游戏" +msgstr "子游戏" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "生成非分形地形:海洋和地底" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "丘陵" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "视频驱动程序" +msgstr "潮湿河流" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "增加河流周边湿度" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "湖" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "低湿度和高温导致浅而干燥的河流" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -329,22 +319,20 @@ msgid "Mapgen flags" msgstr "地图生成器标志" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "地图生成器 v5 标签" +msgstr "地图生成器专用标签" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "山噪声" +msgstr "山" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "泥流" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "通道和洞穴网络" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -352,16 +340,15 @@ msgstr "未选择游戏" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "随海拔高度降低热量" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "随海拔高度降低湿度" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "河流大小" +msgstr "河流" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" @@ -940,7 +927,7 @@ msgstr "平滑光照" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" -msgstr "纹理:" +msgstr "材质:" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." @@ -1182,7 +1169,7 @@ msgstr "建立服务器...." #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "隐藏的调试信息和性能分析图" +msgstr "调试信息和性能分析图已隐藏" #: src/client/game.cpp msgid "Debug info shown" @@ -1190,7 +1177,7 @@ msgstr "调试信息已显示" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "隐藏调试信息,性能分析图,和线框" +msgstr "调试信息、性能分析图和线框已隐藏" #: src/client/game.cpp msgid "" @@ -1242,7 +1229,7 @@ msgstr "快速模式已禁用" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "快速移动模式已启用" +msgstr "快速模式已启用" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" @@ -1362,7 +1349,7 @@ msgstr "俯仰移动模式已禁用" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "显示性能分析图" +msgstr "性能分析图已显示" #: src/client/game.cpp msgid "Remote server" @@ -1862,7 +1849,7 @@ msgstr "启用/禁用聊天记录" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "启用/禁用快速移动模式" +msgstr "启用/禁用快速模式" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" @@ -2192,7 +2179,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Always fly and fast" -msgstr "保持高速飞行" +msgstr "保持飞行和快速模式" #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" @@ -2359,7 +2346,7 @@ msgstr "粗体等宽字体路径" #: src/settings_translation_file.cpp msgid "Build inside player" -msgstr "建立内部玩家" +msgstr "在玩家内部搭建" #: src/settings_translation_file.cpp msgid "Builtin" @@ -3161,7 +3148,7 @@ msgstr "后备字体大小" #: src/settings_translation_file.cpp msgid "Fast key" -msgstr "快速移动键" +msgstr "快速键" #: src/settings_translation_file.cpp msgid "Fast mode acceleration" @@ -4667,7 +4654,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"开关电影模式键。\n" +"启用/禁用电影模式键。\n" "见http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -6419,7 +6406,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Texture path" -msgstr "纹理路径" +msgstr "材质路径" #: src/settings_translation_file.cpp msgid "" @@ -6803,7 +6790,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "步行和飞行速度,单位为方块每秒。" #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6811,7 +6798,7 @@ msgstr "步行速度" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" +msgstr "快速模式下的步行、飞行和攀爬速度,单位为方块每秒。" #: src/settings_translation_file.cpp msgid "Water level" From 265df122f6f3065fed945ba6247d6bd8a732aaa3 Mon Sep 17 00:00:00 2001 From: Alexsandro Thomas Date: Tue, 11 Aug 2020 22:25:12 +0000 Subject: [PATCH 398/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 91.9% (1241 of 1350 strings) --- po/pt_BR/minetest.po | 69 +++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 40 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index f162666a8..9f85f281d 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-09 19:32+0000\n" -"Last-Translator: Vinicius Martins \n" +"PO-Revision-Date: 2020-08-12 22:32+0000\n" +"Last-Translator: Alexsandro Thomas \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -240,9 +240,8 @@ msgid "Altitude dry" msgstr "Frio de altitude" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Ruído do bioma" +msgstr "Harmonização do bioma" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" @@ -2037,9 +2036,8 @@ msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "Ruído 2D que controla o tamanho/ocorrência de montanhas de passo." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "Ruído 2D que controla o formato/tamanho de colinas." +msgstr "Ruído 2D que localiza os vales e canais dos rios." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2050,9 +2048,8 @@ msgid "3D mode" msgstr "modo 3D" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Intensidade de normalmaps" +msgstr "Força de paralaxe do modo 3D" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2073,6 +2070,11 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"Ruído 3D definindo as estruturas de terras flutuantes\n" +"Se alterar do padrão, a 'escala' do ruído (0.7 por padrão) pode precisar\n" +"ser ajustada, já que o afunilamento das terras flutuantes funciona melhor " +"quando o ruído tem\n" +"um valor entre -2.0 e 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2141,9 +2143,8 @@ msgid "ABM interval" msgstr "Intervalo do ABM" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" -msgstr "Limite absoluto de filas emergentes" +msgstr "Limite absoluto de filas de blocos para emergir" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2373,19 +2374,16 @@ msgid "Bold and italic font path" msgstr "Caminho de fonte monoespaçada" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold and italic monospace font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho de fonte monoespaçada para negrito e itálico" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold font path" -msgstr "Caminho da fonte" +msgstr "Caminho da fonte em negrito" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold monospace font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho de fonte monoespaçada em negrito" #: src/settings_translation_file.cpp msgid "Build inside player" @@ -2400,15 +2398,15 @@ msgid "Bumpmapping" msgstr "Bump mapping" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Distancia do plano próximo da câmera em nós, entre 0 e 0.5\n" -"A maioria dos usuários não precisarão mudar isto.\n" +"Distancia do plano próximo da câmera em nós, entre 0 e 0.25\n" +"Só funciona em plataformas GLES. A maioria dos usuários não precisarão mudar " +"isto.\n" "Aumentar pode reduzir a ocorrencia de artefatos em GPUs mais fracas.\n" "0.1 = Padrão, 0.25 = Bom valor para tablets fracos." @@ -2490,27 +2488,24 @@ msgstr "" "texturas. Pode ser necessário para telas menores." #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Tamanho da fonte" +msgstr "Tamanho da fonte do chat" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Tecla de Chat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Nível de log do Debug" +msgstr "Nível de log do chat" #: src/settings_translation_file.cpp msgid "Chat message count limit" msgstr "Limite do contador de mensagens de bate-papo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Tamanho máximo da mensagem de conversa" +msgstr "Formato da mensagem de chat" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2791,9 +2786,8 @@ msgid "Default report format" msgstr "Formato de reporte padrão" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Jogo padrão" +msgstr "Tamanho padrão de stack" #: src/settings_translation_file.cpp msgid "" @@ -2847,9 +2841,8 @@ msgid "Defines the base ground level." msgstr "Define o nível base do solo." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Define o nível base do solo." +msgstr "Define a profundidade do canal do rio." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2858,14 +2851,12 @@ msgstr "" "ilimitado)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Define estruturas de canais de grande porte (rios)." +msgstr "Define a largura do canal do rio." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Define áreas onde na árvores têm maçãs." +msgstr "Define a largura do vale do rio." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2913,13 +2904,12 @@ msgid "Desert noise threshold" msgstr "Limite do ruído de deserto" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" -"Deserto ocorre quando \"np_biome\" excede esse valor.\n" -"Quando o novo sistema de biomas está habilitado, isso é ignorado." +"Os desertos ocorrem quando np_biome excede este valor.\n" +"Quando a marcação 'snowbiomes' está ativada, isto é ignorado." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2966,9 +2956,8 @@ msgid "Dungeon minimum Y" msgstr "Y mínimo da dungeon" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Y mínimo da dungeon" +msgstr "Ruído de masmorra" #: src/settings_translation_file.cpp msgid "" @@ -3073,14 +3062,14 @@ msgstr "" "Por exemplo: 0 para não ver balançando; 1.0 para normal; 2.0 para duplo." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enable/disable running an IPv6 server.\n" "Ignored if bind_address is set.\n" "Needs enable_ipv6 to be enabled." msgstr "" "Habilitar/desabilitar a execução de um IPv6 do servidor. \n" -"Ignorado se bind_address estiver definido." +"Ignorado se bind_address estiver definido.\n" +"Precisa de enable_ipv6 para ser ativado." #: src/settings_translation_file.cpp msgid "" From 683cc45a5c7287109f4e6600ef39207c9c150fe5 Mon Sep 17 00:00:00 2001 From: Brian Gaucher Date: Fri, 14 Aug 2020 02:27:14 +0000 Subject: [PATCH 399/624] Translated using Weblate (French) Currently translated at 99.9% (1349 of 1350 strings) --- po/fr/minetest.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index fba49b876..f8a35827e 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-01 11:12+0000\n" -"Last-Translator: florian deschenaux \n" +"PO-Revision-Date: 2020-08-14 02:30+0000\n" +"Last-Translator: Brian Gaucher \n" "Language-Team: French \n" "Language: fr\n" @@ -1961,17 +1961,17 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"(X ; Y ; Z) de décalage fractal à partir du centre du monde en \n" -"unités « échelle ». Peut être utilisé pour déplacer un point\n" -"désiré en (0 ; 0) pour créer un point d'apparition convenable,\n" -"ou pour « zoomer » sur un point désiré en augmentant\n" -"« l'échelle ».\n" -"La valeur par défaut est réglée pour créer une zone\n" -"d'apparition convenable pour les ensembles de Mandelbrot\n" -"avec les paramètres par défaut, elle peut nécessité une \n" -"modification dans d'autres situations.\n" -"Interval environ de -2 à 2. Multiplier par « échelle » convertir\n" -"le décalage en nœuds." +"(X,Y,Z) de décalage fractal à partir du centre du monde en unités « échelle " +"».\n" +"Peut être utilisé pour déplacer un point désiré à (0, 0) pour créer une\n" +"zone d'apparition convenable, ou pour autoriser à « zoomer » sur un\n" +"point désiré en augmentant l'« échelle ».\n" +"La valeur par défaut est adaptée pour créer un zone d'apparition convenable " +"pour les ensembles\n" +"de Mandelbrot avec des paramètres par défaut, elle peut nécessité une " +"modification dans\n" +"d'autres situations.\n" +"Portée environ -2 à 2. Multiplier par « échelle » pour le décalage des nœuds." #: src/settings_translation_file.cpp msgid "" From 70a066571e6cfac26c4b9fc5991f45f32bf3fc0c Mon Sep 17 00:00:00 2001 From: Olivier Dragon Date: Fri, 14 Aug 2020 02:22:15 +0000 Subject: [PATCH 400/624] Translated using Weblate (French) Currently translated at 99.9% (1349 of 1350 strings) --- po/fr/minetest.po | 78 ++++++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index f8a35827e..da261ba26 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-08-14 02:30+0000\n" -"Last-Translator: Brian Gaucher \n" +"Last-Translator: Olivier Dragon \n" "Language-Team: French \n" "Language: fr\n" @@ -577,7 +577,7 @@ msgstr "Valeur absolue" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "par défaut" +msgstr "Paramètres par défaut" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -1780,7 +1780,7 @@ msgstr "Console" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" -msgstr "Plage de visualisation" +msgstr "Reduire champ vision" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" @@ -1888,7 +1888,7 @@ msgstr "Activer/désactiver vol vertical" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "appuyez sur une touche" +msgstr "Appuyez sur une touche" #: src/gui/guiPasswordChange.cpp msgid "Change" @@ -6532,6 +6532,19 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Niveau de la surface de l'eau (facultative) placée sur une couche solide de " +"terre suspendue.\n" +"L'eau est désactivée par défaut et ne sera placée que si cette valeur est\n" +"fixée à plus de 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n" +"(début de l’effilage du haut)\n" +"***ATTENTION, DANGER POTENTIEL AU MONDES ET AUX PERFORMANCES DES SERVEURS*** " +":\n" +"Lorsque le placement de l'eau est activé, les île volantes doivent être\n" +"configurées avec une couche solide en mettant 'mgv7_floatland_density' à 2." +"0\n" +"(ou autre valeur dépendante de 'mgv7_np_floatland'), pour éviter\n" +"les chutes d'eaux énormes qui surchargent les serveurs et pourraient\n" +"inonder les terres en dessous." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6668,7 +6681,6 @@ msgstr "" "Entrer /privs dans le jeu pour voir une liste complète des privilèges." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6679,12 +6691,11 @@ msgid "" "This should be configured together with active_object_send_range_blocks." msgstr "" "Le rayon du volume de blocs autour de chaque joueur soumis à la\n" -"truc de bloc actif, indiqué dans mapblocks (16 noeuds).\n" -"Dans les blocs actifs, les objets sont chargés et les guichets automatiques " -"sont exécutés.\n" +"matière de bloc actif, indiqué dans mapblocks (16 nœuds).\n" +"Dans les blocs actifs, les objets sont chargés et les ABMs sont exécutés.\n" "C'est également la plage minimale dans laquelle les objets actifs (mobs) " "sont conservés.\n" -"Ceci devrait être configuré avec active_object_range." +"Ceci devrait être configuré avec 'active_object_send_range_blocks'." #: src/settings_translation_file.cpp msgid "" @@ -6860,7 +6871,6 @@ msgid "Undersampling" msgstr "Sous-échantillonage" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6868,11 +6878,12 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"Le sous-échantillonage ressemble à l'utilisation d'une définition d'écran\n" -"plus faible, mais il ne s'applique qu'au rendu 3D, gardant l'interface " -"intacte.\n" +"Le sous-échantillonage ressemble à l'utilisation d'une résolution d'écran " +"inférieure,\n" +"mais il ne s'applique qu'au rendu 3D, gardant l'interface usager intacte.\n" "Cela peut donner lieu à un bonus de performance conséquent, au détriment de " -"la qualité d'image." +"la qualité d'image.\n" +"Les valeurs plus élevées réduisent la qualité du détail des images." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6887,9 +6898,8 @@ msgid "Upper Y limit of dungeons." msgstr "Limite haute Y des donjons." #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "Limite haute Y des donjons." +msgstr "Limite en Y des îles volantes." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." @@ -7031,13 +7041,12 @@ msgid "Volume" msgstr "Volume du son" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" -"Active l'occlusion parallaxe.\n" -"Nécessite les shaders pour être activé." +"Volume de tous les sons.\n" +"Exige que le son du système soit activé." #: src/settings_translation_file.cpp msgid "" @@ -7083,24 +7092,20 @@ msgid "Waving leaves" msgstr "Feuilles d'arbres mouvantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" msgstr "Liquides ondulants" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" msgstr "Hauteur des vagues" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" msgstr "Vitesse de mouvement des liquides" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "Durée du mouvement des liquides" +msgstr "Espacement des vagues de liquides" #: src/settings_translation_file.cpp msgid "Waving plants" @@ -7130,7 +7135,6 @@ msgstr "" "qui ne supportent pas le chargement des textures depuis le matériel." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" "can be blurred, so automatically upscale them with nearest-neighbor\n" @@ -7144,28 +7148,29 @@ msgid "" msgstr "" "En utilisant le filtrage bilinéaire/trilinéaire/anisotrope, les textures de " "basse résolution\n" -"peuvent être floutées, agrandissez-les donc automatiquement avec " -"l'interpolation du plus proche voisin\n" -"pour garder des pixels nets. Ceci détermine la taille de la texture " -"minimale\n" -"pour les textures agrandies ; les valeurs plus hautes rendent les textures " -"plus détaillées, mais nécessitent\n" +"peuvent être brouillées. Elles seront donc automatiquement agrandies avec l'" +"interpolation\n" +"du plus proche voisin pour garder des pixels moins floues. Ceci détermine la " +"taille de la texture minimale\n" +"pour les textures agrandies ; les valeurs plus hautes rendent plus " +"détaillées, mais nécessitent\n" "plus de mémoire. Les puissances de 2 sont recommandées. Définir une valeur " "supérieure à 1 peut ne pas\n" "avoir d'effet visible sauf si le filtrage bilinéaire / trilinéaire / " "anisotrope est activé.\n" -"ceci est également utilisée comme taille de texture de nœud par défaut pour\n" +"Ceci est également utilisée comme taille de texture de nœud par défaut pour\n" "l'agrandissement des textures basé sur le monde." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" "Détermine l'utilisation des polices Freetype. Nécessite une compilation avec " -"le support Freetype." +"le support Freetype.\n" +"Si désactivée, des polices bitmap et en vecteurs XML seront utilisé en " +"remplacement." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7298,6 +7303,11 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Hauteur-Y à laquelle les îles volantes commence à rétrécir.\n" +"L'effilage comment à cette distance de la limite en Y.\n" +"Pour une courche solide de terre suspendue, ceci contrôle la hauteur des " +"montagnes.\n" +"Doit être égale ou moindre à la moitié de la distance entre les limites Y." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." From 6cca7c19962213a3e4fa35b0814287c5792ed311 Mon Sep 17 00:00:00 2001 From: Brian Gaucher Date: Fri, 14 Aug 2020 02:45:57 +0000 Subject: [PATCH 401/624] Translated using Weblate (French) Currently translated at 99.9% (1349 of 1350 strings) --- po/fr/minetest.po | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index da261ba26..cb33e87a7 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-14 02:30+0000\n" -"Last-Translator: Olivier Dragon \n" +"PO-Revision-Date: 2020-08-14 02:46+0000\n" +"Last-Translator: Brian Gaucher \n" "Language-Team: French \n" "Language: fr\n" @@ -2026,7 +2026,7 @@ msgstr "Bruit 2D contrôlant la taille et la fréquence des plateaux montagneux. #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "Bruit 2D qui localise les vallées fluviales et les canaux." +msgstr "Bruit 2D qui localise les vallées et les chenaux des rivières." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -3592,11 +3592,11 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Traitement des appels d'API Lua obsolètes :\n" -"- legacy : imite l'ancien comportement (par défaut en mode release).\n" -"- log : imite et enregistre les appels obsolètes (par défaut en mode debug)." -"\n" -"- error : interruption à l'usage d'un appel obsolète (recommandé pour les " -"développeurs de mods)." +"- legacy : imite l'ancien comportement (par défaut en mode release).\n" +"- log : imite et enregistre la trace des appels obsolètes (par défaut en " +"mode debug).\n" +"- error : (=erreur) interruption à l'usage d'un appel obsolète (" +"recommandé pour les développeurs de mods)." #: src/settings_translation_file.cpp msgid "" @@ -4981,8 +4981,8 @@ msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" -"Longueur des vagues.\n" -"Nécessite que l'ondulation des liquides soit active." +"Longueur des vagues liquides.\n" +"Nécessite que liquides ondulatoires soit activé." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" From ccadc2386401ee389f918dea63f833329f45c50b Mon Sep 17 00:00:00 2001 From: Olivier Dragon Date: Fri, 14 Aug 2020 02:44:55 +0000 Subject: [PATCH 402/624] Translated using Weblate (French) Currently translated at 99.9% (1349 of 1350 strings) --- po/fr/minetest.po | 98 ++++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 47 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index cb33e87a7..80792e93b 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-14 02:46+0000\n" -"Last-Translator: Brian Gaucher \n" +"PO-Revision-Date: 2020-08-30 19:38+0000\n" +"Last-Translator: Olivier Dragon \n" "Language-Team: French \n" "Language: fr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1157,20 +1157,20 @@ msgid "" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" -"Contrôles:\n" -"- %s: avancer\n" -"- %s: reculer\n" -"- %s: à gauche\n" -"- %s: à droite\n" -"- %s: sauter/grimper\n" -"- %s: marcher lentement/descendre\n" -"- %s: lâcher l'objet en main\n" -"- %s: inventaire\n" +"Contrôles :\n" +"- %s : avancer\n" +"- %s : reculer\n" +"- %s : à gauche\n" +"- %s : à droite\n" +"- %s : sauter/grimper\n" +"- %s : marcher lentement/descendre\n" +"- %s : lâcher l'objet en main\n" +"- %s : inventaire\n" "- Souris : tourner/regarder\n" "- Souris gauche : creuser/attaquer\n" "- Souris droite : placer/utiliser\n" "- Molette souris : sélectionner objet\n" -"- %s: discuter\n" +"- %s : discuter\n" #: src/client/game.cpp msgid "Creating client..." @@ -1243,7 +1243,7 @@ msgstr "Vitesse en mode rapide activée" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Vitesse en mode rapide activée (note: pas de privilège 'fast')" +msgstr "Vitesse en mode rapide activée (note : pas de privilège 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" @@ -1255,7 +1255,7 @@ msgstr "Mode vol activé" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Mode vol activé (note: pas de privilège 'fly')" +msgstr "Mode vol activé (note : pas de privilège 'fly')" #: src/client/game.cpp msgid "Fog disabled" @@ -1335,7 +1335,7 @@ msgstr "Collisions désactivées" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Collisions activées (note: pas de privilège 'noclip')" +msgstr "Collisions activées (note : pas de privilège 'noclip')" #: src/client/game.cpp msgid "Node definitions..." @@ -1961,17 +1961,18 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"(X,Y,Z) de décalage fractal à partir du centre du monde en unités « échelle " -"».\n" +"(X,Y,Z) de décalage du fractal à partir du centre du monde en unités « " +"échelle ».\n" "Peut être utilisé pour déplacer un point désiré à (0, 0) pour créer une\n" "zone d'apparition convenable, ou pour autoriser à « zoomer » sur un\n" "point désiré en augmentant l'« échelle ».\n" -"La valeur par défaut est adaptée pour créer un zone d'apparition convenable " +"La valeur par défaut est adaptée pour créer une zone d'apparition convenable " "pour les ensembles\n" -"de Mandelbrot avec des paramètres par défaut, elle peut nécessité une " +"de Mandelbrot crées avec des paramètres par défaut. Elle peut nécessiter une " "modification dans\n" "d'autres situations.\n" -"Portée environ -2 à 2. Multiplier par « échelle » pour le décalage des nœuds." +"La gamme est d'environ -2 à 2. Multiplier par « échelle » pour le décalage " +"en nœuds." #: src/settings_translation_file.cpp msgid "" @@ -2375,15 +2376,15 @@ msgstr "Chemin de la police en gras et en italique" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "Chemin de la police Monospace" +msgstr "Chemin de la police Monospace en gras et en italique" #: src/settings_translation_file.cpp msgid "Bold font path" -msgstr "Chemin de police audacieux" +msgstr "Chemin du fichier de police en gras" #: src/settings_translation_file.cpp msgid "Bold monospace font path" -msgstr "Chemin de police monospace audacieux" +msgstr "Chemin de la police Monospace en gras" #: src/settings_translation_file.cpp msgid "Build inside player" @@ -2404,11 +2405,13 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Caméra « près de la coupure de distance » dans les nœuds, entre 0 et 0,25.\n" -"Fonctionne uniquement sur plateformes GLES.\n" +"Distance en nœuds du plan de coupure rapproché de la caméra, entre 0 et 0,25." +"\n" +"Ne fonctionne uniquement que sur les plateformes GLES.\n" "La plupart des utilisateurs n’auront pas besoin de changer cela.\n" -"L’augmentation peut réduire les anomalies sur des petites cartes graphique.\n" -"0,1 par défaut, 0,25 bonne valeur pour des composants faibles." +"L’augmentation peut réduire les anomalies sur des cartes graphique plus " +"faibles.\n" +"0,1 par défaut, 0,25 est une bonne valeur pour des composants faibles." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -3061,7 +3064,7 @@ msgstr "" "Activer l'usage d'un serveur de média distant (si pourvu par le serveur).\n" "Les serveurs de média distants offrent un moyen significativement plus " "rapide de télécharger\n" -"des données média (ex.: textures) lors de la connexion au serveur." +"des données média (ex. : textures) lors de la connexion au serveur." #: src/settings_translation_file.cpp msgid "" @@ -3606,7 +3609,7 @@ msgid "" "call).\n" "* Instrument the sampler being used to update the statistics." msgstr "" -"Auto-instrumentaliser le profileur:\n" +"Auto-instrumentaliser le profileur :\n" "* Instrumentalise une fonction vide.\n" "La surcharge sera évaluée. (l'auto-instrumentalisation ajoute 1 appel de " "fonction à chaque fois).\n" @@ -3651,11 +3654,11 @@ msgstr "Bruit de collines1" #: src/settings_translation_file.cpp msgid "Hilliness2 noise" -msgstr "Bruit de colline2" +msgstr "Bruit de collines2" #: src/settings_translation_file.cpp msgid "Hilliness3 noise" -msgstr "Bruit de colline3" +msgstr "Bruit de collines3" #: src/settings_translation_file.cpp msgid "Hilliness4 noise" @@ -4147,9 +4150,9 @@ msgid "" msgstr "" "Réglage Julia uniquement.\n" "La composante W de la constante hypercomplexe.\n" -"Transforme la forme de la fractale.\n" +"Modifie la forme de la fractale.\n" "N'a aucun effet sur les fractales 3D.\n" -"Portée environ -2 à 2." +"Gamme d'environ -2 à 2." #: src/settings_translation_file.cpp msgid "" @@ -4981,8 +4984,8 @@ msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" -"Longueur des vagues liquides.\n" -"Nécessite que liquides ondulatoires soit activé." +"Longueur des vagues de liquides.\n" +"Nécessite que les liquides ondulatoires soit activé." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" @@ -5062,7 +5065,7 @@ msgstr "" "Nombre limite de requête HTTP en parallèle. Affecte :\n" "- L'obtention de média si le serveur utilise l'option remote_media.\n" "- Le téléchargement de la liste des serveurs et l'annonce du serveur.\n" -"- Les téléchargements effectués par le menu (ex.: gestionnaire de mods).\n" +"- Les téléchargements effectués par le menu (ex. : gestionnaire de mods).\n" "Prend seulement effet si Minetest est compilé avec cURL." #: src/settings_translation_file.cpp @@ -5158,7 +5161,8 @@ msgid "" "Occasional lakes and hills can be added to the flat world." msgstr "" "Attributs de terrain spécifiques au générateur de monde plat.\n" -"Des lacs et des collines occasionnels peuvent être ajoutés au monde plat." +"Des lacs et des collines peuvent être occasionnellement ajoutés au monde " +"plat." #: src/settings_translation_file.cpp msgid "" @@ -5455,7 +5459,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." msgstr "" -"Délais maximaux de téléchargement d'un fichier (ex.: un mod), établi en " +"Délais maximaux de téléchargement d'un fichier (ex. : un mod), établi en " "millisecondes." #: src/settings_translation_file.cpp @@ -6139,7 +6143,7 @@ msgid "" "Use 0 for default quality." msgstr "" "Qualité de capture d'écran. Utilisé uniquement pour le format JPEG.\n" -"1 signifie mauvaise qualité; 100 signifie la meilleure qualité.\n" +"1 signifie mauvaise qualité ; 100 signifie la meilleure qualité.\n" "Utilisez 0 pour la qualité par défaut." #: src/settings_translation_file.cpp @@ -6352,12 +6356,12 @@ msgid "" msgstr "" "Taille des mapchunks générés par mapgen, indiquée dans les mapblocks (16 " "nœuds).\n" -"ATTENTION !: Il n’ya aucun avantage, et il y a plusieurs dangers, dans\n" +"ATTENTION ! : Il n’y a aucun avantage, et plusieurs dangers, à\n" "augmenter cette valeur au-dessus de 5.\n" "Réduire cette valeur augmente la densité de cavernes et de donjons.\n" -"La modification de cette valeur est réservée à un usage spécial, elle reste " -"inchangée.\n" -"conseillé." +"La modification de cette valeur est réservée à un usage spécial. Il est " +"conseillé\n" +"de la laisser inchangée." #: src/settings_translation_file.cpp msgid "" @@ -6692,8 +6696,8 @@ msgid "" msgstr "" "Le rayon du volume de blocs autour de chaque joueur soumis à la\n" "matière de bloc actif, indiqué dans mapblocks (16 nœuds).\n" -"Dans les blocs actifs, les objets sont chargés et les ABMs sont exécutés.\n" -"C'est également la plage minimale dans laquelle les objets actifs (mobs) " +"Les objets sont chargés et les ABMs sont exécutés dans les blocs actifs.\n" +"C'est également la distance minimale pour laquelle les objets actifs (mobs) " "sont conservés.\n" "Ceci devrait être configuré avec 'active_object_send_range_blocks'." @@ -7119,7 +7123,7 @@ msgid "" msgstr "" "Quand gui_scaling_filter est activé, tous les images du GUI sont\n" "filtrées dans Minetest, mais quelques images sont générées directement\n" -"par le matériel (ex.: textures des blocs dans l'inventaire)." +"par le matériel (ex. : textures des blocs dans l'inventaire)." #: src/settings_translation_file.cpp msgid "" From 264ab502e13a84791be0613f75e6ef86a6089ad8 Mon Sep 17 00:00:00 2001 From: Milos Date: Fri, 14 Aug 2020 14:17:24 +0200 Subject: [PATCH 403/624] Added translation using Weblate (Serbian (latin)) --- po/sr_Latn/minetest.po | 6325 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6325 insertions(+) create mode 100644 po/sr_Latn/minetest.po diff --git a/po/sr_Latn/minetest.po b/po/sr_Latn/minetest.po new file mode 100644 index 000000000..7c37ae4c6 --- /dev/null +++ b/po/sr_Latn/minetest.po @@ -0,0 +1,6325 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the minetest package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: minetest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: sr_Latn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "" + +#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp +msgid "OK" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred in a Lua script:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occurred:" +msgstr "" + +#: builtin/mainmenu/common.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server supports protocol versions between $1 and $2. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server enforces protocol version $1. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We support protocol versions between version $1 and $2." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We only support protocol version $1." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Protocol version mismatch. " +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "World:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Mod:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No (optional) dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No hard dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "No optional dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp +msgid "Save" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Find More Mods" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "enabled" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "All packages" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Games" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Mods" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back to Main Menu" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No results" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No packages could be retrieved" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Downloading..." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Uninstall" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caverns" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Very large caverns deep in the underground" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Sea level rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Mountains" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floatlands (experimental)" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floating landmasses in the sky" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Altitude chill" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Reduces heat with altitude" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Altitude dry" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Reduces humidity with altitude" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Humid rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Increases humidity around rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Vary river depth" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Low humidity and high heat causes shallow or dry rivers" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Hills" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Lakes" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Additional terrain" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Generate non-fractal terrain: Oceans and underground" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Trees and jungle grass" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Flat terrain" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Mud flow" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Terrain surface erosion" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Temperate, Desert, Jungle, Tundra, Taiga" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Temperate, Desert, Jungle" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Temperate, Desert" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "You have no games installed." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caves" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Dungeons" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Decorations" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "" +"Structures appearing on the terrain (no effect on trees and jungle grass " +"created by v6)" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Structures appearing on the terrain, typically trees and plants" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Network of tunnels and caves" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biomes" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biome blending" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Smooth transition between biomes" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Mapgen-specific flags" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Warning: The Development Test is meant for developers." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "World name" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "A world named \"$1\" already exists" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "No game selected" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "Are you sure you want to delete \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua +#: src/client/keycode.cpp +msgid "Delete" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: failed to delete \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_content.lua +msgid "pkgmgr: invalid path \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_world.lua +msgid "Delete World \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Accept" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "" +"This modpack has an explicit name given in its modpack.conf which will " +"override any renaming here." +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "2D Noise" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Octaves" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Persistance" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Lacunarity" +msgstr "" + +#. ~ "defaults" is a noise parameter flag. +#. It describes the default processing options +#. for noise settings in main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "defaults" +msgstr "" + +#. ~ "eased" is a noise parameter flag. +#. It is used to make the map smoother and +#. can be enabled in noise settings in +#. main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "eased" +msgstr "" + +#. ~ "absvalue" is a noise parameter flag. +#. It is short for "absolute value". +#. It can be enabled in noise settings in +#. main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid integer." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select directory" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select file" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "< Back to Settings page" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 (Enabled)" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Failed to install $1 to $2" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to find a valid mod or modpack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find suitable folder name for modpack $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install Mod: Unable to find real mod name for: $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: file: \"$1\"" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Install: Unsupported file type \"$1\" or broken archive" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "$1 mods" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Installed Packages:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No package description available" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Rename" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "No dependencies." +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Use Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Uninstall Package" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Active Contributors" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative Mode" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Announce Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name/Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Bind Address" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Play Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Start Game" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Address / Port" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Name / Password" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Connect" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Ping" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative mode" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Damage enabled" +msgstr "" + +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "PvP enabled" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Fancy Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Trilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "2x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "4x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "8x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Yes" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Connected Glass" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Antialiasing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Autosave Screen Size" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/client/game.cpp +msgid "Change Keys" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "All Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Touchthreshold: (px)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bump Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Tone Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Generate Normal Maps" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Plants" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Start Singleplayer" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Config mods" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Main" +msgstr "" + +#: src/client/client.cpp +msgid "Connection timed out." +msgstr "" + +#: src/client/client.cpp +msgid "Loading textures..." +msgstr "" + +#: src/client/client.cpp +msgid "Rebuilding shaders..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Connection error (timed out?)" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Could not find or load game \"" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Invalid gamespec." +msgstr "" + +#. ~ DO NOT TRANSLATE THIS LITERALLY! +#. This is a special string. Put either "no" or "yes" +#. into the translation field (literally). +#. Choose "yes" if the language requires use of the fallback +#. font, "no" otherwise. +#. The fallback font is (normally) required for languages with +#. non-Latin script, like Chinese. +#. When in doubt, test your translation. +#: src/client/fontengine.cpp +msgid "needs_fallback_font" +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating server..." +msgstr "" + +#: src/client/game.cpp +msgid "Creating client..." +msgstr "" + +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/client/game.cpp +msgid "Item definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Node definitions..." +msgstr "" + +#: src/client/game.cpp +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "KiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "" + +#: src/client/game.cpp +msgid "ok" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Pitch move mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Automatic forward disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x1" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x2" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x4" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Profiler graph shown" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info and profiler graph hidden" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Camera update enabled" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +msgid "Enabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Disabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "" +"Default Controls:\n" +"No menu visible:\n" +"- single tap: button activate\n" +"- double tap: place/use\n" +"- slide finger: look around\n" +"Menu/Inventory visible:\n" +"- double tap (outside):\n" +" -->close\n" +"- touch stack, touch slot:\n" +" --> move stack\n" +"- touch&drag, tap 2nd finger\n" +" --> place single item to slot\n" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" + +#: src/client/game.cpp +msgid "Continue" +msgstr "" + +#: src/client/game.cpp +msgid "Change Password" +msgstr "" + +#: src/client/game.cpp +msgid "Game paused" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to Menu" +msgstr "" + +#: src/client/game.cpp +msgid "Exit to OS" +msgstr "" + +#: src/client/game.cpp +msgid "Game info:" +msgstr "" + +#: src/client/game.cpp +msgid "- Mode: " +msgstr "" + +#: src/client/game.cpp +msgid "Remote server" +msgstr "" + +#: src/client/game.cpp +msgid "- Address: " +msgstr "" + +#: src/client/game.cpp +msgid "Hosting server" +msgstr "" + +#: src/client/game.cpp +msgid "- Port: " +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "On" +msgstr "" + +#: src/client/game.cpp +msgid "Off" +msgstr "" + +#: src/client/game.cpp +msgid "- Damage: " +msgstr "" + +#: src/client/game.cpp +msgid "- Creative Mode: " +msgstr "" + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +msgid "- PvP: " +msgstr "" + +#: src/client/game.cpp +msgid "- Public: " +msgstr "" + +#: src/client/game.cpp +msgid "- Server Name: " +msgstr "" + +#: src/client/game.cpp +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat hidden" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD shown" +msgstr "" + +#: src/client/gameui.cpp +msgid "HUD hidden" +msgstr "" + +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" +msgstr "" + +#: src/client/gameui.cpp +msgid "Profiler hidden" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Middle Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Backspace" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Clear" +msgstr "" + +#: src/client/keycode.cpp +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp +msgid "Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Control" +msgstr "" + +#. ~ Key name, common on Windows keyboards +#: src/client/keycode.cpp +msgid "Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Pause" +msgstr "" + +#: src/client/keycode.cpp +msgid "Caps Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page up" +msgstr "" + +#: src/client/keycode.cpp +msgid "Page down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" +msgstr "" + +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" +msgstr "" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Snapshot" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Windows" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 0" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 2" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 3" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 4" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 5" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 6" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 7" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 8" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad 9" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad *" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad +" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad ." +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad -" +msgstr "" + +#: src/client/keycode.cpp +msgid "Numpad /" +msgstr "" + +#: src/client/keycode.cpp +msgid "Num Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Scroll Lock" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Right Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "Apps" +msgstr "" + +#: src/client/keycode.cpp +msgid "Sleep" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Play" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Zoom" +msgstr "" + +#: src/client/keycode.cpp +msgid "OEM Clear" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +#, c-format +msgid "" +"You are about to join this server with the name \"%s\" for the first time.\n" +"If you proceed, a new account using your credentials will be created on this " +"server.\n" +"Please retype your password and click 'Register and Join' to confirm account " +"creation, or click 'Cancel' to abort." +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiFormSpecMenu.cpp +msgid "Proceed" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "\"Special\" = climb down" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Automatic jumping" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Change camera" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Autoforward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Local command" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle HUD" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle chat log" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fog" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "New Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Confirm Password" +msgstr "" + +#: src/gui/guiPasswordChange.cpp +msgid "Change" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Exit" +msgstr "" + +#: src/gui/guiVolumeChange.cpp +msgid "Muted" +msgstr "" + +#. ~ Imperative, as in "Enter/type in text". +#. Don't forget the space. +#: src/gui/modalMenu.cpp +msgid "Enter " +msgstr "" + +#. ~ DO NOT TRANSLATE THIS LITERALLY! +#. This is a special string which needs to contain the translation's +#. language code (e.g. "de" for German). +#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp +msgid "LANG_CODE" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Always fly and fast" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated right clicks when holding the " +"right\n" +"mouse button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Fixes the position of virtual joystick.\n" +"If disabled, virtual joystick will center to first-touch's position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(Android) Use virtual joystick to trigger \"aux\" button.\n" +"If enabled, virtual joystick will also tap \"aux\" button when out of main " +"circle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Right key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Adds particles when digging a node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shader path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bumpmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of generated normalmaps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion scale" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS in pause menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve low gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve high gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost center" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost spread" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended, and it’s the only driver with\n" +"shader support currently." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D support.\n" +"Currently supported:\n" +"- none: no 3d output.\n" +"- anaglyph: cyan/magenta color 3d.\n" +"- interlaced: odd/even line based polarisation screen support.\n" +"- topbottom: split screen top/bottom.\n" +"- sidebyside: split screen side by side.\n" +"- crossview: Cross-eyed 3d\n" +"- pageflip: quadbuffer based 3d.\n" +"Note that the interlaced mode requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D mode parallax strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box border color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ambient occlusion gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Append item name to tooltip." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font bold by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font italic by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the default font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Regular font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the monospace font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the fallback font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path of the fallback font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to save screenshots at. Can be an absolute or relative path.\n" +"The folder will be created if it doesn't already exist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prometheus listener address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce to this serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default stack size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rollback recording" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shutdown message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server crashes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ask to reconnect after crash" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amount of messages a player may send per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated Lua API calls:\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block management interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ABM interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"At this distance the server will aggressively optimize which blocks are sent " +"to\n" +"clients.\n" +"Small values potentially improve performance a lot, at the expense of " +"visible\n" +"rendering glitches (some blocks will not be rendered under water and in " +"caves,\n" +"as well as sometimes on land).\n" +"Setting this to a value greater than max_block_send_distance disables this\n" +"optimization.\n" +"Stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Restricts the access of certain client-side functions on servers.\n" +"Combine the byteflags below to restrict client-side features, or set to 0\n" +"for no restrictions:\n" +"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" +"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" +"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" +"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" +"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Changes the main menu UI:\n" +"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " +"etc.\n" +"- Simple: One singleplayer world, no game or texture pack choosers. May " +"be\n" +"necessary for smaller screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Proportion of large caves that contain liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "" + +#: src/settings_translation_file.cpp +#, c-format +msgid "" +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Surface level of optional water placed on a solid floatland layer.\n" +"Water is disabled by default and will only be placed if this value is set\n" +"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" +"upper tapering).\n" +"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" +"When enabling water placement the floatlands must be configured and tested\n" +"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" +"required value depending on 'mgv7_np_floatland'), to avoid\n" +"server-intensive extreme water flow and to avoid vast flooding of the\n" +"world surface below." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge underwater noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River valley width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the size/occurrence of step mountain ranges." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hill size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of rolling hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridged mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of ridged mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that controls the shape/size of step mountains." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "2D noise that locates the river valleys and channels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Selects one of 18 fractal types.\n" +"1 = 4D \"Roundy\" Mandelbrot set.\n" +"2 = 4D \"Roundy\" Julia set.\n" +"3 = 4D \"Squarry\" Mandelbrot set.\n" +"4 = 4D \"Squarry\" Julia set.\n" +"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" +"6 = 4D \"Mandy Cousin\" Julia set.\n" +"7 = 4D \"Variation\" Mandelbrot set.\n" +"8 = 4D \"Variation\" Julia set.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" +"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" +"12 = 3D \"Christmas Tree\" Julia set.\n" +"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" +"14 = 3D \"Mandelbulb\" Julia set.\n" +"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" +"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" +"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" +"18 = 4D \"Mandelbulb\" Julia set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slice w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Seabed noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slope and fill work together to modify the heights." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amplifies the valleys." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" +"WARNING!: There is no benefit, and there are several dangers, in\n" +"increasing this value above 5.\n" +"Reducing this value increases cave and dungeon density.\n" +"Altering this value is for special usage, leaving it unchanged is\n" +"recommended." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Absolute limit of queued blocks to emerge" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The URL for the content repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" From ab5065d54a8948703e3d469e8ca30fcdecebd62d Mon Sep 17 00:00:00 2001 From: Milos Date: Fri, 14 Aug 2020 22:56:19 +0000 Subject: [PATCH 404/624] Translated using Weblate (Serbian (latin)) Currently translated at 6.3% (86 of 1350 strings) --- po/sr_Latn/minetest.po | 182 ++++++++++++++++++++++------------------- 1 file changed, 96 insertions(+), 86 deletions(-) diff --git a/po/sr_Latn/minetest.po b/po/sr_Latn/minetest.po index 7c37ae4c6..f4fc64cc1 100644 --- a/po/sr_Latn/minetest.po +++ b/po/sr_Latn/minetest.po @@ -8,114 +8,120 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"PO-Revision-Date: 2020-08-15 23:32+0000\n" +"Last-Translator: Milos \n" +"Language-Team: Serbian (latin) \n" "Language: sr_Latn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +msgstr "Umro/la si." #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" -msgstr "" +msgstr "Vrati se u zivot" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "" +msgstr "Server je zahtevao ponovno povezivanje:" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "" +msgstr "Ponovno povezivanje" #: builtin/fstk/ui.lua msgid "Main menu" -msgstr "" +msgstr "Glavni meni" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" -msgstr "" +msgstr "Doslo je do greske u Lua skripti:" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "" +msgstr "Doslo je do greske:" #: builtin/mainmenu/common.lua src/client/game.cpp msgid "Loading..." -msgstr "" +msgstr "Ucitavanje..." #: builtin/mainmenu/common.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "" +"Pokusajte ponovo omoguciti javnu listu servera i proverite vasu internet " +"vezu." #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "" +msgstr "Server podrzava protokol verzije izmedju $1 ili $2. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "" +msgstr "Server primenjuje protokol verzije $1. " #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "" +msgstr "Mi podrzavamo protokol verzija izmedju verzije $1 i $2." #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "" +msgstr "Mi samo podrzavamo protokol verzije $1." #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " -msgstr "" +msgstr "Protokol verzija neuskladjena. " #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "" +msgstr "Svet:" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "" +msgstr "Opis modpack-a nije prilozen." #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "" +msgstr "Opis igre nije prilozen." #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" -msgstr "" +msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "" +msgstr "Nema (opcionih) zavisnosti" #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "" +msgstr "Bez teskih zavisnosti" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "" +msgstr "Neobavezne zavisnosti:" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "" +msgstr "Zavisnosti:" #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "" +msgstr "Bez neobaveznih zavisnosti" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "" +msgstr "Sacuvaj" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua @@ -125,254 +131,258 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "" +msgstr "Ponisti" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Nadji jos modova" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "" +msgstr "Onemoguci modpack" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "" +msgstr "Omoguci modpack" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "" +msgstr "Omoguceno" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "" +msgstr "Onemoguci sve" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "" +msgstr "Omoguci sve" #: builtin/mainmenu/dlg_config_world.lua msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" +"Nije omogucen mod \"$1\" jer sadrzi nedozvoljene simbole. Samo simboli [a-z, " +"0-9_] su dozvoljeni." #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB je nedostupan kada je Minetest sastavljen bez cURL" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" -msgstr "" +msgstr "Svi paketi" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "" +msgstr "Igre" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "" +msgstr "Modovi" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "" +msgstr "Pakovanja tekstura" #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "" +msgstr "Neuspelo preuzimanje $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua msgid "Search" -msgstr "" +msgstr "Trazi" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "" +msgstr "Nazad na Glavni meni" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "" +msgstr "Bez rezultata" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "Nema paketa za preuzeti" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." -msgstr "" +msgstr "Preuzimanje..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "" +msgstr "Instalirati" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "" +msgstr "Azuriranje" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" -msgstr "" +msgstr "Deinstaliraj" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "Pogled" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "Pecine" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Veoma velike pecine duboko ispod zemlje" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Reke na nivou mora" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "Reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Planine" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Lebdece zemlje (eksperimentalno)" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Lebdece zemaljske mase na nebu" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "Nadmorska visina" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Smanjuje toplotu sa visinom" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "Visina suva" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Smanjuje vlaznost sa visinom" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Vlazne reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Povecana vlaznost oko reka" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Razlicita dubina reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Niska vlaga i visoka toplota uzrokuju plitke ili suve reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Brda" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Jezera" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Dodatni teren" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Stvaranje ne-fraktalnog terena: Okeani i podzemlje" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Drveca i trava dzungle" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Ravan teren" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Protok blata" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Povrsinska erozija terena" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Umereno,Pustinja,Dzungla,Tundra,Tajga" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Umereno,Pustinja,Dzungla" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Umereno,Pustinja" #: builtin/mainmenu/dlg_create_world.lua msgid "You have no games installed." -msgstr "" +msgstr "Nema instaliranih igara." #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "" +msgstr "Preuzmi jednu sa minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "Pecine" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "Tamnice" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" -msgstr "" +msgstr "Dekoracije" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Konstrukcije koje se pojavljuju na terenu (nema efekta na drveca i travu " +"dzungle koje je stvorio v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Konstrukcije koje se pojavljuju na terenu , obicno drvece i biljke" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Mreza tunela i pecina" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Biomi" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "Mesanje bioma" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Glatki prelaz izmedju bioma" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Mapgen zastave" #: builtin/mainmenu/dlg_create_world.lua msgid "Mapgen-specific flags" From bd8dfdd263bdadae26bc3238ad79e2f9ab544389 Mon Sep 17 00:00:00 2001 From: Omeritzics Games Date: Tue, 18 Aug 2020 11:40:10 +0000 Subject: [PATCH 405/624] Translated using Weblate (Hebrew) Currently translated at 6.2% (85 of 1350 strings) --- po/he/minetest.po | 129 ++++++++++++++++++++-------------------------- 1 file changed, 55 insertions(+), 74 deletions(-) diff --git a/po/he/minetest.po b/po/he/minetest.po index f0a49f82e..1d7c692ba 100644 --- a/po/he/minetest.po +++ b/po/he/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Hebrew (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2020-08-30 19:38+0000\n" +"Last-Translator: Omeritzics Games \n" "Language-Team: Hebrew \n" "Language: he\n" @@ -13,29 +13,27 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" -msgstr "" +msgstr "לקום לתחייה" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +msgstr "מתת" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "אישור" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "אירעה שגיאה בקוד לואה (Lua), כנראה באחד המודים:" +msgstr "אירעה שגיאה בתסריט Lua:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" -msgstr "התרחשה שגיאה:" +msgstr "אירעה שגיאה:" #: builtin/fstk/ui.lua msgid "Main menu" @@ -88,28 +86,24 @@ msgid "Cancel" msgstr "ביטול" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Dependencies:" -msgstr "תלוי ב:" +msgstr "רכיבי תלות:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable all" -msgstr "אפשר הכל" +msgstr "השבת הכל" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable modpack" -msgstr "אפשר הכל" +msgstr "השבתת ערכת המודים" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" msgstr "אפשר הכל" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Enable modpack" -msgstr "אפשר הכל" +msgstr "הפעלת ערכת המודים" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy @@ -122,7 +116,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "מצא עוד מודים" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -130,11 +124,11 @@ msgstr "מוד:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "" +msgstr "אין רכיבי תלות (אופציונליים)" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "" +msgstr "לא סופק תיאור משחק." #: builtin/mainmenu/dlg_config_world.lua #, fuzzy @@ -147,11 +141,11 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "" +msgstr "אין רכיבי תלות אופציונליים" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "" +msgstr "רכיבי תלות אופציונליים:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp @@ -168,25 +162,23 @@ msgstr "מופעל" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" -msgstr "" +msgstr "כל החבילות" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Back to Main Menu" -msgstr "תפריט ראשי" +msgstr "חזור אל התפריט הראשי" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "טוען..." +msgstr "מוריד..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "" +msgstr "הורדת $1 נכשלה" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -208,7 +200,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "" +msgstr "אין תוצאות" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua @@ -221,13 +213,12 @@ msgid "Texture packs" msgstr "חבילות מרקם" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Uninstall" -msgstr "החקן" +msgstr "הסר התקנה" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "" +msgstr "עדכן" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" @@ -255,7 +246,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "ביומות" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" @@ -263,7 +254,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "מערות" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -274,13 +265,12 @@ msgid "Decorations" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "הורד מפעיל משחק, למשל \"minetest_game\", מהאתר: minetest.net" +msgstr "הורדת משחק, כמו משחק Minetest, מאתר minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "הורד אחד מ-\"minetest.net\"" +msgstr "הורד אחד מאתר minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" @@ -320,7 +310,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "אגמים" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" @@ -341,7 +331,7 @@ msgstr "מנוע מפות" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "הרים" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -352,9 +342,8 @@ msgid "Network of tunnels and caves" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "No game selected" -msgstr "אין עולם נוצר או נבחר!" +msgstr "לא נבחר משחק" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" @@ -366,7 +355,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "נהרות" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" @@ -375,7 +364,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "" +msgstr "זרע" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" @@ -420,22 +409,20 @@ msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "אזהרה: מצב המפתחים נועד למפתחים!." +msgstr "אזהרה: מצב בדיקת הפיתוח נועד למפתחים." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "שם העולם" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "You have no games installed." -msgstr "אין לך אף מפעיל משחק מותקן." +msgstr "אין לך משחקים מותקנים." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "האם ברצונך למחוק את \"$1\"?" +msgstr "האם ברצונך למחוק את \"$1\"?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua @@ -445,7 +432,7 @@ msgstr "מחק" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" +msgstr "pkgmgr: מחיקת \"$1\" נכשלה" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" @@ -461,7 +448,7 @@ msgstr "קבל" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "" +msgstr "שינוי שם ערכת המודים:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -471,7 +458,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" -msgstr "" +msgstr "(לא נוסף תיאור להגדרה)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" @@ -479,23 +466,23 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "" +msgstr "חזור לדף ההגדרות >" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" -msgstr "" +msgstr "עיון" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "" +msgstr "מושבת" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "" +msgstr "ערוך" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "" +msgstr "מופעל" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" @@ -519,29 +506,27 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." -msgstr "" +msgstr "נא להזין מספר תקין." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "" +msgstr "איפוס לברירת המחדל" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select directory" -msgstr "בחר עולם:" +msgstr "נא לבחור תיקיה" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select file" -msgstr "בחר עולם:" +msgstr "נא לבחור קובץ" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "" +msgstr "הצגת שמות טכניים" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." @@ -599,14 +584,12 @@ msgid "eased" msgstr "" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "$1 (Enabled)" -msgstr "מופעל" +msgstr "$1 (מופעל)" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "$1 mods" -msgstr "מודים" +msgstr "$1 מודים" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" @@ -657,9 +640,8 @@ msgid "Content" msgstr "" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Disable Texture Pack" -msgstr "חבילות מרקם" +msgstr "השבתת חבילת המרקם" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -686,9 +668,8 @@ msgid "Uninstall Package" msgstr "" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Use Texture Pack" -msgstr "חבילות מרקם" +msgstr "שימוש בחבילת המרקם" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" @@ -754,7 +735,7 @@ msgstr "חדש" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" -msgstr "אין עולם נוצר או נבחר!" +msgstr "אין עולם שנוצר או נבחר!" #: builtin/mainmenu/tab_local.lua #, fuzzy @@ -767,7 +748,7 @@ msgstr "פורט" #: builtin/mainmenu/tab_local.lua msgid "Select World:" -msgstr "בחר עולם:" +msgstr "נא לבחור עולם:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" From ffe56c572fa81f3c7cbfb7ffe6014fafd3526760 Mon Sep 17 00:00:00 2001 From: Petter Reinholdtsen Date: Mon, 24 Aug 2020 14:59:07 +0000 Subject: [PATCH 406/624] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 57.1% (771 of 1350 strings) --- po/nb/minetest.po | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/po/nb/minetest.po b/po/nb/minetest.po index ed5bab6db..07b5689d3 100644 --- a/po/nb/minetest.po +++ b/po/nb/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Norwegian Bokmål (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-18 13:41+0000\n" -"Last-Translator: Allan Nordhøy \n" +"PO-Revision-Date: 2020-08-27 13:43+0000\n" +"Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1.1-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Du døde" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -116,7 +116,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Finn flere mods" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -124,7 +124,7 @@ msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "Kan gjerne bruke" +msgstr "Ingen (valgfrie) avhengigheter" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." @@ -139,9 +139,8 @@ msgid "No modpack description provided." msgstr "Ingen modpakke-beskrivelse tilgjengelig." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Valgfrie avhengigheter:" +msgstr "Ingen valgfrie avhengigheter" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -170,7 +169,7 @@ msgstr "Tilbake til hovedmeny" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB er ikke tilgjengelig når Minetest ble kompilert uten cURL" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -230,7 +229,7 @@ msgstr "En verden med navn \"$1\" eksisterer allerede" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Ytterligere terreng" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -285,7 +284,7 @@ msgstr "Grottelyd" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Flatt terreng" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" From e2f97b5ec0849452e99693aef78cccda016f3d9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Mon, 24 Aug 2020 15:29:41 +0000 Subject: [PATCH 407/624] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 57.3% (774 of 1350 strings) --- po/nb/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/nb/minetest.po b/po/nb/minetest.po index 07b5689d3..279c0684e 100644 --- a/po/nb/minetest.po +++ b/po/nb/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-08-27 13:43+0000\n" -"Last-Translator: Petter Reinholdtsen \n" +"Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" @@ -169,7 +169,7 @@ msgstr "Tilbake til hovedmeny" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "ContentDB er ikke tilgjengelig når Minetest ble kompilert uten cURL" +msgstr "ContentDB er ikke tilgjengelig når Minetest kompileres uten cURL" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy From 366ff51e0e138e3063aae7e39c4cf3aab7ee55e9 Mon Sep 17 00:00:00 2001 From: ssantos Date: Mon, 24 Aug 2020 13:10:00 +0000 Subject: [PATCH 408/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 91.8% (1240 of 1350 strings) --- po/pt_BR/minetest.po | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index 9f85f281d..f52ce94fb 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-12 22:32+0000\n" -"Last-Translator: Alexsandro Thomas \n" +"PO-Revision-Date: 2020-08-27 13:43+0000\n" +"Last-Translator: ssantos \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.2.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -221,7 +221,7 @@ msgstr "Atualizar" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "Vizualizar" +msgstr "Vista" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -293,7 +293,7 @@ msgstr "Jogo" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "Excluir Oceanos e subterrâneos do fractal" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" @@ -305,7 +305,7 @@ msgstr "Rios húmidos" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "Alta humidade perto dos rios" +msgstr "Aumenta a humidade perto de rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" @@ -313,7 +313,7 @@ msgstr "Lagos" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "Baixa umidade e calor elevado resultam em rios rasos ou secos" +msgstr "Baixa humidade e calor elevado resultam em rios rasos ou secos" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -398,7 +398,7 @@ msgstr "Altura da erosão de terreno" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "Árvores e grama da selva" +msgstr "Árvores e relva da selva" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" @@ -1400,7 +1400,7 @@ msgstr "Som mutado" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "Som do sistema está desabilitado" +msgstr "Som do sistema está desativado" #: src/client/game.cpp msgid "Sound system is not supported on this build" @@ -2071,7 +2071,8 @@ msgid "" "a value range of approximately -2.0 to 2.0." msgstr "" "Ruído 3D definindo as estruturas de terras flutuantes\n" -"Se alterar do padrão, a 'escala' do ruído (0.7 por padrão) pode precisar\n" +"Se alterar da predefinição, a 'escala' do ruído (0.7 por predefinição) pode " +"precisar\n" "ser ajustada, já que o afunilamento das terras flutuantes funciona melhor " "quando o ruído tem\n" "um valor entre -2.0 e 2.0." From 4015f4eada4aa21fb2c553ae71d7ce0c109cbab7 Mon Sep 17 00:00:00 2001 From: Celio Alves Date: Thu, 27 Aug 2020 20:50:06 +0000 Subject: [PATCH 409/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 92.0% (1243 of 1350 strings) --- po/pt_BR/minetest.po | 60 +++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index f52ce94fb..cc762d2f2 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-27 13:43+0000\n" -"Last-Translator: ssantos \n" +"PO-Revision-Date: 2020-08-30 19:38+0000\n" +"Last-Translator: Celio Alves \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -293,7 +293,7 @@ msgstr "Jogo" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Gera terrenos não fractais: Oceanos e subterrâneos" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" @@ -1423,7 +1423,7 @@ msgstr "Distancia de visualização está no máximo:%d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "Distancia de visualização está no mínima:%d" +msgstr "Alcance de visualização é no mínimo: %d" #: src/client/game.cpp #, c-format @@ -1975,15 +1975,17 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"(X,Y,Z) offset do fractal a partir centro do mundo em unidades de 'escala'.\n" -"Pode ser usado para mover um ponto desejado para (0, 0) para criar um \n" -"Ponto de spawn flexível, ou para permitir zoom em um ponto desejado " -"aumentando sua escala.\n" -"O padrão é configurado com ponto de spawn Mandelbrot\n" -"usando os parâmetros padrão, pode ser necessário altera-lo em outras \n" +"(X,Y,Z) compensação do fractal a partir centro do mundo em unidades de " +"'escala'.\n" +"Pode ser usado para mover um ponto desejado para (0, 0) para criar um\n" +"ponto de spawn flexível ou para permitir zoom em um ponto desejado,\n" +"aumentando 'escala'.\n" +"O padrão é ajustado para um ponto de spawn adequado para conjuntos de\n" +"Mandelbrot com parâmetros padrão, podendo ser necessário alterá-lo em outras " +"\n" "situações.\n" -"Variam aproximadamente de -2 a 2. Multiplicando a escala pelo offset de " -"blocos." +"Variam aproximadamente de -2 a 2. Multiplique por 'escala' para compensar em " +"nodes." #: src/settings_translation_file.cpp msgid "" @@ -1997,11 +1999,11 @@ msgid "" msgstr "" "(X,Y,Z) Escala fractal em nós.\n" "Tamanho fractal atual será de 2 a 3 vezes maior.\n" -"Esses números podem ser muito grandes, o fractal não tem que encaixar dentro " -"do mundo.\n" +"Esses números podem ser muito grandes, o fractal\n" +"não tem que encaixar dentro do mundo.\n" "Aumente estes para 'ampliar' nos detalhes do fractal.\n" -"Padrão é para uma forma espremida verticalmente para uma ilha, coloque todos " -"os 3 números iguais para a forma crua." +"Padrão é para uma forma espremida verticalmente para\n" +"uma ilha, coloque todos os 3 números iguais para a forma crua." #: src/settings_translation_file.cpp msgid "" @@ -2265,8 +2267,8 @@ msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" -"Inercia dos braços fornece um movimento mais realista dos braços quando a " -"câmera mexe." +"Inercia dos braços, fornece um movimento mais realista dos\n" +"braços quando movimenta a câmera." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -2286,14 +2288,18 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" -"Nesta distância, o servidor otimizará agressivamente quais blocos são " -"enviados aos clientes.\n" +"Nesta distância, o servidor otimizará agressivamente quais blocos serão " +"enviados\n" +"aos clientes.\n" "Pequenos valores potencialmente melhoram muito o desempenho, à custa de " -"falhas de renderização visíveis(alguns blocos não serão processados debaixo " -"da água e nas cavernas, bem como às vezes em terra).\n" -"Configure isso como um valor maior do que a " -"distância_máxima_de_envio_do_bloco para desabilitar essa otimização.\n" -"Especificado em barreiras do mapa (16 nós)." +"falhas\n" +"de renderização visíveis (alguns blocos não serão processados debaixo da " +"água e nas\n" +"cavernas, bem como às vezes em terra).\n" +"Configurando isso para um valor maior do que a " +"distância_máxima_de_envio_do_bloco\n" +"para desabilitar essa otimização.\n" +"Especificado em barreiras do mapa (16 nodes)." #: src/settings_translation_file.cpp msgid "Automatic forward key" @@ -2752,7 +2758,7 @@ msgstr "Tecla de abaixar volume" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistance to movement." -msgstr "" +msgstr "Diminua isto para aumentar a resistência do líquido ao movimento." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2965,6 +2971,8 @@ msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." msgstr "" +"Habilitar suporte IPv6 (tanto para cliente quanto para servidor).\n" +"Necessário para que as conexões IPv6 funcionem." #: src/settings_translation_file.cpp msgid "" From 10c237a274f60ece4c322d76a0450c256fa1fa23 Mon Sep 17 00:00:00 2001 From: Fontan 030 Date: Fri, 28 Aug 2020 15:49:22 +0000 Subject: [PATCH 410/624] Translated using Weblate (Kazakh) Currently translated at 4.0% (54 of 1350 strings) --- po/kk/minetest.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/po/kk/minetest.po b/po/kk/minetest.po index 3f68fbc97..0f28b286f 100644 --- a/po/kk/minetest.po +++ b/po/kk/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Kazakh (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" +"PO-Revision-Date: 2020-09-09 01:23+0000\n" "Last-Translator: Fontan 030 \n" "Language-Team: Kazakh \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -823,7 +823,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" -msgstr "" +msgstr "Бисызықты фильтрация" #: builtin/mainmenu/tab_settings.lua msgid "Bump Mapping" @@ -875,7 +875,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "None" -msgstr "" +msgstr "Жоқ" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" @@ -891,7 +891,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Particles" -msgstr "" +msgstr "Бөлшектер" #: builtin/mainmenu/tab_settings.lua msgid "Reset singleplayer world" @@ -923,7 +923,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" -msgstr "" +msgstr "Текстурлеу:" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." @@ -939,7 +939,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" -msgstr "" +msgstr "Үшсызықты фильтрация" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" @@ -963,7 +963,7 @@ msgstr "" #: builtin/mainmenu/tab_simple_main.lua msgid "Main" -msgstr "" +msgstr "Басты мәзір" #: builtin/mainmenu/tab_simple_main.lua msgid "Start Singleplayer" @@ -1098,7 +1098,7 @@ msgstr "" #: src/client/game.cpp msgid "Change Password" -msgstr "" +msgstr "Құпия сөзді өзгерту" #: src/client/game.cpp msgid "Cinematic mode disabled" @@ -6056,7 +6056,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Video driver" -msgstr "" +msgstr "Видеодрайвер" #: src/settings_translation_file.cpp msgid "View bobbing factor" @@ -6111,7 +6111,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking speed" -msgstr "" +msgstr "Жүру жылдамдығы" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." @@ -6276,7 +6276,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." -msgstr "" +msgstr "Үлкен үңгірлердің жоғарғы шегінің Y координаты." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." From 9cb7570cfbc4f04b4ea4bdf7e7f5f3ccf829a45c Mon Sep 17 00:00:00 2001 From: Fixer Date: Tue, 1 Sep 2020 11:45:21 +0000 Subject: [PATCH 411/624] Translated using Weblate (Ukrainian) Currently translated at 42.9% (580 of 1350 strings) --- po/uk/minetest.po | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/po/uk/minetest.po b/po/uk/minetest.po index a87362951..f5272af8b 100644 --- a/po/uk/minetest.po +++ b/po/uk/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Ukrainian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-26 10:41+0000\n" -"Last-Translator: Maksim Gamarnik \n" +"PO-Revision-Date: 2020-09-02 12:36+0000\n" +"Last-Translator: Fixer \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -117,7 +117,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "Знайти Більше Модів" +msgstr "Знайти більше модів" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -260,9 +260,8 @@ msgid "Create" msgstr "Створити" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Інформація" +msgstr "Декорації" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -726,7 +725,7 @@ msgstr "Сервер" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Встановити ігри з ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -1385,7 +1384,7 @@ msgstr "Звук вимкнено" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Звукова система вимкнена" #: src/client/game.cpp msgid "Sound system is not supported on this build" @@ -2407,9 +2406,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Розмір шрифту" +msgstr "Розмір шрифту чату" #: src/settings_translation_file.cpp msgid "Chat key" From aa6bd9750341933113a02ec7a0ed14c595b65843 Mon Sep 17 00:00:00 2001 From: IFRFSX <1079092922@qq.com> Date: Tue, 1 Sep 2020 05:31:12 +0000 Subject: [PATCH 412/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 89.9% (1214 of 1350 strings) --- po/zh_CN/minetest.po | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 90e077b04..748e38b55 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-12 22:32+0000\n" -"Last-Translator: Gao Tiesuan \n" +"PO-Revision-Date: 2020-11-21 04:52+0000\n" +"Last-Translator: IFRFSX <1079092922@qq.com>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -351,8 +351,9 @@ msgid "Rivers" msgstr "河流" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Sea level rivers" -msgstr "" +msgstr "海平面河流" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -361,43 +362,41 @@ msgstr "种子" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "生物群落之间的平滑过渡" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "出现在地形上的结构(对v6创建的树木和丛林草没有影响)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "出现在地形上的结构,通常是树木和植物" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "温带,沙漠" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "温带,沙漠,丛林" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "温带,沙漠,丛林,苔原,泰加林带" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "地形高度" +msgstr "地形表面腐烂" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "树木和丛林草" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "河流深度" +msgstr "改变河的深度" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" @@ -2039,6 +2038,10 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"悬空岛的3D噪波定义结构。\n" +"如果改变了默认值,噪波“scale”(默认为0.7)可能需要\n" +"调整,因为当这个噪波的值范围大约为-2.0到2.0时,\n" +"悬空岛逐渐变窄的函数最好。" #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2158,6 +2161,10 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"调整悬空岛层的密度。\n" +"增加值以增加密度。可以是正值或负值。\n" +"Value = 0.0: 容积的50%是floatland。\n" +"Value = 2.0 (可以更高,取决于“mgv7_np_floatland”,始终测试以确定)创建一个坚实的悬空岛层。" #: src/settings_translation_file.cpp msgid "Advanced" @@ -3113,6 +3120,11 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"悬空岛锥度的指数,更改锥度的行为。\n" +"值等于1.0,创建一个统一的,线性锥度。\n" +"值大于1.0,创建一个平滑的、合适的锥度,默认分隔的悬空岛。\n" +"值小于1.0,(例如0.25)创建一个带有平坦低地的更加轮廓分明的表面级别,\n" +"适用于固体悬空岛层。" #: src/settings_translation_file.cpp msgid "FPS in pause menu" From 485e4d82a2c29d04a3b267e1de450e86b7c002a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lio=20Rodrigues?= Date: Thu, 10 Sep 2020 19:51:16 +0000 Subject: [PATCH 413/624] Translated using Weblate (Portuguese) Currently translated at 94.5% (1277 of 1350 strings) --- po/pt/minetest.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/po/pt/minetest.po b/po/pt/minetest.po index 9ea140219..b8939ca03 100644 --- a/po/pt/minetest.po +++ b/po/pt/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-09-11 20:24+0000\n" -"Last-Translator: ssantos \n" +"Last-Translator: Célio Rodrigues \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -2749,9 +2749,8 @@ msgid "Dec. volume key" msgstr "Tecla de dimin. de som" #: src/settings_translation_file.cpp -#, fuzzy msgid "Decrease this to increase liquid resistance to movement." -msgstr "Diminue isto para aumentar a resistência do líquido ao movimento." +msgstr "Diminuir isto para aumentar a resistência do líquido ao movimento." #: src/settings_translation_file.cpp msgid "Dedicated server step" From 5871e32a842aa68b50af279e792ab8d1c47ea05f Mon Sep 17 00:00:00 2001 From: Nikita Epifanov Date: Thu, 10 Sep 2020 08:58:53 +0000 Subject: [PATCH 414/624] Translated using Weblate (Russian) Currently translated at 99.9% (1349 of 1350 strings) --- po/ru/minetest.po | 106 ++++++++++++++++++++++------------------------ 1 file changed, 50 insertions(+), 56 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 05fc86430..dc9311119 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-23 18:41+0000\n" -"Last-Translator: Maksim Gamarnik \n" +"PO-Revision-Date: 2020-10-22 14:28+0000\n" +"Last-Translator: Nikita Epifanov \n" "Language-Team: Russian \n" "Language: ru\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -157,7 +157,7 @@ msgstr "Мир:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "включен" +msgstr "включено" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" @@ -232,10 +232,9 @@ msgstr "Дополнительная местность" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "Высота нивального пояса" +msgstr "Высота над уровнем моря" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" msgstr "Высота нивального пояса" @@ -285,7 +284,7 @@ msgstr "Парящие острова на небе" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "Парящие острова (экспериментально)" +msgstr "Парящие острова (экспериментальный)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -379,7 +378,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "Структуры, появляющиеся на местности, обычно деревья и растения" +msgstr "Структуры, появляющиеся на поверхности, типично деревья и растения" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -395,7 +394,7 @@ msgstr "Умеренный пояс, Пустыня, Джунгли, Тундр #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "Поверхностная эрозия" +msgstr "Разрушение поверхности местности" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" @@ -456,8 +455,8 @@ msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" -"Этот модпак имеет явное имя, указанное в modpack.conf, который переопределит " -"любое переименование здесь." +"Этот пакет модов имеет имя, явно указанное в modpack.conf, которое не " +"изменится от переименования здесь." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" @@ -513,7 +512,7 @@ msgstr "Пожалуйста, введите допустимое число." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Сброс настроек" +msgstr "Восстановить стандартные настройки" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" @@ -576,7 +575,7 @@ msgstr "абсолютная величина" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "стандартные" +msgstr "Базовый" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -596,7 +595,7 @@ msgstr "$1 модов" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "Не удалось установить $1 в $2" +msgstr "Невозможно установить $1 в $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" @@ -728,7 +727,7 @@ msgstr "Запустить сервер" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "Установите игры из ContentDB" +msgstr "Установить игры из ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -780,9 +779,7 @@ msgstr "Урон включён" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Del. Favorite" -msgstr "" -"Убрать из\n" -"избранных" +msgstr "Убрать из избранного" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Favorite" @@ -951,7 +948,7 @@ msgstr "Тональное отображение" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" -msgstr "Порог чувствительности: (px)" +msgstr "Чувствительность: (px)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" @@ -1108,7 +1105,7 @@ msgstr "Автобег включён" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "Обновление камеры отключено" +msgstr "Обновление камеры выключено" #: src/client/game.cpp msgid "Camera update enabled" @@ -1527,7 +1524,7 @@ msgstr "Insert" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "Влево" +msgstr "Лево" #: src/client/keycode.cpp msgid "Left Button" @@ -1552,7 +1549,7 @@ msgstr "Левый Win" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" -msgstr "Menu" +msgstr "Контекстное меню" #: src/client/keycode.cpp msgid "Middle Button" @@ -1766,11 +1763,11 @@ msgstr "Назад" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "Камера" +msgstr "Изменить камеру" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "Сообщение" +msgstr "Чат" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" @@ -1802,11 +1799,11 @@ msgstr "Вперёд" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" -msgstr "Видимость +" +msgstr "Увеличить видимость" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "Громкость +" +msgstr "Увеличить громкость" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" @@ -1828,11 +1825,11 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "Команда клиента" +msgstr "Локальная команда" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "Звук" +msgstr "Заглушить" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" @@ -1844,7 +1841,7 @@ msgstr "Пред. предмет" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "Видимость" +msgstr "Дальность прорисовки" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" @@ -1856,15 +1853,15 @@ msgstr "Красться" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "Использовать" +msgstr "Особенный" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Игровой интерфейс" +msgstr "Вкл/выкл игровой интерфейс" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "Чат" +msgstr "Вкл/выкл историю чата" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" @@ -2077,8 +2074,7 @@ msgstr "Трёхмерный шум, определяющий рельеф ме #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" -"3D-шум для горных выступов, скал и т. д. В основном небольшие вариации." +msgstr "3D шум для горных выступов, скал и т. д. В основном небольшие вариации." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." @@ -2126,7 +2122,7 @@ msgstr "Сообщение, которое будет показано всем #: src/settings_translation_file.cpp msgid "ABM interval" -msgstr "Интервал сохранения карты" +msgstr "ABM интервал" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2162,9 +2158,9 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" -"Адрес, к которому присоединиться.\n" -"Оставьте это поле, чтобы запустить локальный сервер.\n" -"ПРИМЕЧАНИЕ: это поле адреса перезапишет эту настройку в главном меню." +"Адрес, к которому нужно присоединиться.\n" +"Оставьте это поле пустым, чтобы запустить локальный сервер.\n" +"Обратите внимание, что поле адреса в главном меню перезапишет эту настройку." #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." @@ -2296,15 +2292,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Automatic forward key" -msgstr "Клавиша авто-вперёд" +msgstr "Автоматическая кнопка вперед" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "Автоматически запрыгивать на препятствия высотой в одну ноду." +msgstr "Автоматический подъем на одиночные блоки." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "Автоматически анонсировать в список серверов." +msgstr "Автоматическая жалоба на сервер-лист." #: src/settings_translation_file.cpp msgid "Autosave screen size" @@ -2312,7 +2308,7 @@ msgstr "Запоминать размер окна" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "Режим автомасштабирования" +msgstr "Режим автоматического масштабирования" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2320,7 +2316,7 @@ msgstr "Клавиша назад" #: src/settings_translation_file.cpp msgid "Base ground level" -msgstr "Уровень земли" +msgstr "Базовый уровень земли" #: src/settings_translation_file.cpp msgid "Base terrain height." @@ -2372,7 +2368,7 @@ msgstr "Путь к жирному и курсивному шрифту" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "Путь к жирному и курсиву моноширинного шрифта" +msgstr "Путь к жирному и курсивному моноширинному шрифту" #: src/settings_translation_file.cpp msgid "Bold font path" @@ -5562,9 +5558,8 @@ msgid "" msgstr "Имя сервера, отображаемое при входе и в списке серверов." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near plane" -msgstr "Близкая плоскость отсечения" +msgstr "Ближняя плоскость" #: src/settings_translation_file.cpp msgid "Network" @@ -5615,7 +5610,6 @@ msgid "Number of emerge threads" msgstr "Количество emerge-потоков" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "Value 0:\n" @@ -5631,14 +5625,14 @@ msgstr "" "Количество возникающих потоков для использования.\n" "Значение 0:\n" "- Автоматический выбор. Количество потоков будет\n" -"- «число процессоров - 2», минимально — 1.\n" +"- 'число процессоров - 2', минимально — 1.\n" "Любое другое значение:\n" "- Указывает количество потоков, минимально — 1.\n" "ВНИМАНИЕ: Увеличение числа потоков улучшает быстродействие движка\n" "картогенератора, но может снижать производительность игры, мешая другим\n" -"процессам, особенно в одиночной игре и при запуске кода Lua в «on_generated»." +"процессам, особенно в одиночной игре и при запуске кода Lua в 'on_generated'." "\n" -"Для большинства пользователей наилучшим значением может быть «1»." +"Для большинства пользователей наилучшим значением может быть '1'." #: src/settings_translation_file.cpp msgid "" @@ -6627,7 +6621,6 @@ msgstr "" "настройке мода." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6637,12 +6630,13 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" -"Радиус объёма блоков вокруг каждого игрока, в котором действуют\n" -"активные блоки, определённые в блоках карты (16 нод).\n" -"В активных блоках загружаются объекты и работает ABM.\n" -"Также это минимальный диапазон, в котором обрабатываются активные объекты " +"Радиус объёма блоков вокруг каждого игрока, на которого распространяется " +"действие\n" +"активного материала блока, указанного в mapblocks (16 узлов).\n" +"В активные блоки загружаются объекты и запускаются ПРО.\n" +"Это также минимальный диапазон, в котором поддерживаются активные объекты " "(мобы).\n" -"Необходимо настраивать вместе с active_object_range." +"Это должно быть настроено вместе с active_object_send_range_blocks." #: src/settings_translation_file.cpp msgid "" From 0306dab84fcabaa3e5bf075622ef11082b07d24b Mon Sep 17 00:00:00 2001 From: Nathan Date: Sun, 13 Sep 2020 17:25:11 +0000 Subject: [PATCH 415/624] Translated using Weblate (French) Currently translated at 100.0% (1350 of 1350 strings) --- po/fr/minetest.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index 80792e93b..3c2a4ae5b 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-30 19:38+0000\n" -"Last-Translator: Olivier Dragon \n" +"PO-Revision-Date: 2020-09-14 17:36+0000\n" +"Last-Translator: Nathan \n" "Language-Team: French \n" "Language: fr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.2.1-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -6851,7 +6851,6 @@ msgid "Trilinear filtering" msgstr "Filtrage trilinéaire" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" From 0283ae54da4e6bd4e0dc2b417b3e54f8b8a89480 Mon Sep 17 00:00:00 2001 From: Jo Date: Sat, 19 Sep 2020 15:30:52 +0000 Subject: [PATCH 416/624] Translated using Weblate (Spanish) Currently translated at 71.7% (968 of 1350 strings) --- po/es/minetest.po | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index daa376ff5..303074053 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-09-19 15:31+0000\n" -"Last-Translator: Agustin Calderon \n" +"Last-Translator: Jo \n" "Language-Team: Spanish \n" "Language: es\n" @@ -2067,6 +2067,12 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"Ruido 3D que define las estructuras flotantes.\n" +"Si se altera la escala de ruido por defecto (0,7), puede ser necesario " +"ajustarla, \n" +"los valores de ruido que definen la estrechez de islas flotantes funcionan " +"mejor \n" +"cuando están en un rango de aproximadamente -2.0 a 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2194,6 +2200,12 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Ajusta la densidad de la isla flotante.\n" +"Incrementar el valor para incrementar la densidad. Este puede ser negativo o " +"positivo\n" +"Valor = 0.0: 50% del volumen está flotando \n" +"Valor = 2.0 (puede ser mayor dependiendo de 'mgv7_np_floatland',\n" +"siempre pruébelo para asegurarse) crea una isla flotante compacta." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2795,9 +2807,8 @@ msgid "Default report format" msgstr "Formato de Reporte por defecto" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Tamaño por defecto del stack (Montón)." +msgstr "Tamaño por defecto del stack (Montón)" #: src/settings_translation_file.cpp msgid "" @@ -3389,6 +3400,9 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"El tamaño de la fuente del texto del chat reciente y el indicador del chat " +"en punto (pt).\n" +"El valor 0 utilizará el tamaño de fuente predeterminado." #: src/settings_translation_file.cpp msgid "" @@ -4856,6 +4870,10 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tecla para activar/desactivar la actualización de la cámara. Solo usada para " +"desarrollo\n" +"Ver http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp #, fuzzy @@ -4906,6 +4924,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tecla para activar/desactivar la consola de chat larga.\n" +"Ver http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4940,6 +4961,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Kick players who sent more than X messages per 10 seconds." msgstr "" +"Expulsa a los jugadores que enviaron más de X mensajes cada 10 segundos." #: src/settings_translation_file.cpp msgid "Lake steepness" From 632e2bfe65f8fb43dbcf2251beec56c6f22a502a Mon Sep 17 00:00:00 2001 From: Agustin Calderon Date: Sat, 19 Sep 2020 15:31:43 +0000 Subject: [PATCH 417/624] Translated using Weblate (Spanish) Currently translated at 71.7% (969 of 1350 strings) --- po/es/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 303074053..a22bb5bb8 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-09-19 15:31+0000\n" -"Last-Translator: Jo \n" +"Last-Translator: Agustin Calderon \n" "Language-Team: Spanish \n" "Language: es\n" @@ -4981,7 +4981,7 @@ msgstr "Profundidad de cueva grande" #: src/settings_translation_file.cpp msgid "Large cave maximum number" -msgstr "" +msgstr "Numero máximo de cuevas grandes" #: src/settings_translation_file.cpp msgid "Large cave minimum number" From d8b62dc2172eb7203afe4e551a6b8c5692ad361d Mon Sep 17 00:00:00 2001 From: Jo Date: Sat, 19 Sep 2020 15:31:34 +0000 Subject: [PATCH 418/624] Translated using Weblate (Spanish) Currently translated at 71.7% (969 of 1350 strings) --- po/es/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index a22bb5bb8..d94cedb3b 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-09-19 15:31+0000\n" -"Last-Translator: Agustin Calderon \n" +"Last-Translator: Jo \n" "Language-Team: Spanish \n" "Language: es\n" @@ -4977,7 +4977,7 @@ msgstr "Idioma" #: src/settings_translation_file.cpp msgid "Large cave depth" -msgstr "Profundidad de cueva grande" +msgstr "Profundidad de la cueva grande" #: src/settings_translation_file.cpp msgid "Large cave maximum number" From 8d36bc26247511a017d25491c0754ffbad4f9753 Mon Sep 17 00:00:00 2001 From: Agustin Calderon Date: Sat, 19 Sep 2020 15:31:53 +0000 Subject: [PATCH 419/624] Translated using Weblate (Spanish) Currently translated at 71.8% (970 of 1350 strings) --- po/es/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index d94cedb3b..98a442b82 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-09-19 15:31+0000\n" -"Last-Translator: Jo \n" +"Last-Translator: Agustin Calderon \n" "Language-Team: Spanish \n" "Language: es\n" @@ -4985,7 +4985,7 @@ msgstr "Numero máximo de cuevas grandes" #: src/settings_translation_file.cpp msgid "Large cave minimum number" -msgstr "" +msgstr "Numero mínimo de cuevas grandes" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" From 97fd5f012f80007cb77350372eee028b24a2a11f Mon Sep 17 00:00:00 2001 From: Jo Date: Sat, 19 Sep 2020 15:40:11 +0000 Subject: [PATCH 420/624] Translated using Weblate (Spanish) Currently translated at 72.7% (982 of 1350 strings) --- po/es/minetest.po | 58 +++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 98a442b82..d9955e353 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-09-19 15:31+0000\n" -"Last-Translator: Agustin Calderon \n" +"PO-Revision-Date: 2020-09-22 03:39+0000\n" +"Last-Translator: Jo \n" "Language-Team: Spanish \n" "Language: es\n" @@ -1953,7 +1953,6 @@ msgstr "" "del círculo principal." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" "Can be used to move a desired point to (0, 0) to create a\n" @@ -1964,16 +1963,19 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"Desvío (X,Y,Z) del fractal desde el centro del mundo en unidades de " -"'escala'.\n" -"Puede ser utilizado para mover el punto deseado (0, 0) para crear un\n" +"Desvío (X,Y,Z) del fractal desde el centro del mundo en unidades de 'escala'." +"\n" +"Puede ser utilizado para mover el punto deseado al inicio de coordenadas (0, " +"0) para crear un\n" "punto de aparición mejor, o permitir 'ampliar' en un punto deseado si\n" "se incrementa la 'escala'.\n" -"El valor por defecto está ajustado para un punto de aparición adecuado para\n" -"los conjuntos Madelbrot con parámetros por defecto, podría ser necesario\n" -"modificarlo para otras situaciones.\n" -"El rango de está comprendido entre -2 y 2. Multiplicar por 'escala' para el\n" -"desvío en nodos." +"El valor por defecto está ajustado para un punto de aparición adecuado para " +"\n" +"los conjuntos Madelbrot\n" +"Con parámetros por defecto, podría ser necesariomodificarlo para otras \n" +"situaciones.\n" +"El rango de está comprendido entre -2 y 2. Multiplicar por la 'escala' para " +"el desvío en nodos." #: src/settings_translation_file.cpp msgid "" @@ -2014,11 +2016,8 @@ msgid "2D noise that controls the shape/size of step mountains." msgstr "Ruido 2D para controlar la forma/tamaño de las montañas inclinadas." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" -"Ruido 2D que controla los rangos de tamaño/aparición de las montañas " -"escarpadas." +msgstr "Ruido 2D que controla el tamaño/aparición de cordilleras montañosas." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." @@ -2031,9 +2030,8 @@ msgstr "" "inclinadas." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "Ruido 2D para controlar la forma/tamaño de las colinas." +msgstr "Ruido 2D para ubicar los ríos, valles y canales." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2044,9 +2042,8 @@ msgid "3D mode" msgstr "Modo 3D" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Oclusión de paralaje" +msgstr "Fuerza de paralaje en modo 3D" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2141,9 +2138,8 @@ msgid "ABM interval" msgstr "Intervalo ABM" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" -msgstr "Limite absoluto de colas emergentes" +msgstr "Límite absoluto de bloques en proceso" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -4989,7 +4985,7 @@ msgstr "Numero mínimo de cuevas grandes" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" -msgstr "" +msgstr "Proporción de cuevas grandes inundadas" #: src/settings_translation_file.cpp #, fuzzy @@ -5022,24 +5018,30 @@ msgid "" "updated over\n" "network." msgstr "" +"Duración de un tick del servidor y el intervalo en el que los objetos se " +"actualizan generalmente sobre la\n" +"red." #: src/settings_translation_file.cpp msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" +"Longitud de las ondas líquidas.\n" +"Requiere que se habiliten los líquidos ondulados." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" +"Período de tiempo entre ciclos de ejecución de Active Block Modifier (ABM)" #: src/settings_translation_file.cpp msgid "Length of time between NodeTimer execution cycles" -msgstr "" +msgstr "Cantidad de tiempo entre ciclos de ejecución de NodeTimer" #: src/settings_translation_file.cpp msgid "Length of time between active block management cycles" -msgstr "" +msgstr "Periodo de tiempo entre ciclos de gestión de bloques activos" #: src/settings_translation_file.cpp msgid "" @@ -5052,6 +5054,14 @@ msgid "" "- info\n" "- verbose" msgstr "" +"Nivel de registro que se escribirá en debug.txt:\n" +"- (sin registro)\n" +"- ninguno (mensajes sin nivel)\n" +"- error\n" +"- advertencia\n" +"- acción\n" +"- información\n" +"- detallado" #: src/settings_translation_file.cpp msgid "Light curve boost" From 7a5d8aea38d4c91d3ff94ff6154aeeb730d00c5f Mon Sep 17 00:00:00 2001 From: pitchum Date: Sun, 20 Sep 2020 12:22:23 +0000 Subject: [PATCH 421/624] Translated using Weblate (French) Currently translated at 100.0% (1350 of 1350 strings) --- po/fr/minetest.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index 3c2a4ae5b..e12b0d2c8 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-09-14 17:36+0000\n" -"Last-Translator: Nathan \n" +"PO-Revision-Date: 2020-09-22 03:39+0000\n" +"Last-Translator: pitchum \n" "Language-Team: French \n" "Language: fr\n" @@ -221,7 +221,7 @@ msgstr "Mise à jour" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "Affichage" +msgstr "Voir" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -1400,7 +1400,7 @@ msgstr "Son rétabli" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "Distance de vue réglée sur %d%1" +msgstr "Distance de vue réglée sur %d" #: src/client/game.cpp #, c-format @@ -6359,7 +6359,7 @@ msgstr "" "ATTENTION ! : Il n’y a aucun avantage, et plusieurs dangers, à\n" "augmenter cette valeur au-dessus de 5.\n" "Réduire cette valeur augmente la densité de cavernes et de donjons.\n" -"La modification de cette valeur est réservée à un usage spécial. Il est " +"La modification de cette valeur est réservée à un usage spécial. Il est " "conseillé\n" "de la laisser inchangée." From 7dea11ba33693eb6433ba30f706d5588cbecd7aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kornelijus=20Tvarijanavi=C4=8Dius?= Date: Mon, 21 Sep 2020 03:03:45 +0000 Subject: [PATCH 422/624] Translated using Weblate (Lithuanian) Currently translated at 16.2% (220 of 1350 strings) --- po/lt/minetest.po | 108 ++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 66 deletions(-) diff --git a/po/lt/minetest.po b/po/lt/minetest.po index c4c658629..644e5bf1c 100644 --- a/po/lt/minetest.po +++ b/po/lt/minetest.po @@ -3,27 +3,25 @@ msgstr "" "Project-Id-Version: Lithuanian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-05-10 12:32+0000\n" -"Last-Translator: restcoser \n" +"PO-Revision-Date: 2020-09-23 07:41+0000\n" +"Last-Translator: Kornelijus Tvarijanavičius \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > " -"19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? " -"1 : 2);\n" -"X-Generator: Weblate 4.1-dev\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" msgstr "Prisikelti" #: builtin/client/death_formspec.lua src/client/game.cpp -#, fuzzy msgid "You died" -msgstr "Jūs numirėte." +msgstr "Jūs numirėte" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -89,7 +87,7 @@ msgstr "Mes palaikome protokolo versijas nuo $1 iki $2." #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "Atsisakyti" +msgstr "Atšaukti" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua #, fuzzy @@ -97,9 +95,8 @@ msgid "Dependencies:" msgstr "Priklauso:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable all" -msgstr "Išjungti papildinį" +msgstr "Išjungti visus papildinius" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy @@ -111,9 +108,8 @@ msgid "Enable all" msgstr "Įjungti visus" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Enable modpack" -msgstr "Pervadinti papildinių paką:" +msgstr "Aktyvuoti papildinį" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy @@ -137,9 +133,8 @@ msgid "No (optional) dependencies" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No game description provided." -msgstr "Papildinio aprašymas nepateiktas" +msgstr "Nepateiktas žaidimo aprašymas." #: builtin/mainmenu/dlg_config_world.lua #, fuzzy @@ -147,9 +142,8 @@ msgid "No hard dependencies" msgstr "Priklauso:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No modpack description provided." -msgstr "Papildinio aprašymas nepateiktas" +msgstr "Nepateiktas papildinio aprašymas." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" @@ -277,9 +271,8 @@ msgid "Create" msgstr "Sukurti" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Papildinio informacija:" +msgstr "Dekoracijos" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -543,14 +536,12 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select directory" -msgstr "Pasirinkite papildinio failą:" +msgstr "Pasirinkite aplanką" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select file" -msgstr "Pasirinkite papildinio failą:" +msgstr "Pasirinkite failą" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" @@ -639,11 +630,9 @@ msgstr "" "paketui $1" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" -"\n" -"Papildinio diegimas: nepalaikomas failo tipas „$1“, arba sugadintas archyvas" +"Papildinio diegimas: nepalaikomas failo tipas „$1“ arba sugadintas archyvas" #: builtin/mainmenu/pkgmgr.lua #, fuzzy @@ -687,9 +676,8 @@ msgid "Content" msgstr "Tęsti" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Disable Texture Pack" -msgstr "Pasirinkite tekstūros paketą:" +msgstr "Pasirinkite tekstūros paketą" #: builtin/mainmenu/tab_content.lua #, fuzzy @@ -813,9 +801,8 @@ msgid "Start Game" msgstr "Slėpti vidinius" #: builtin/mainmenu/tab_online.lua -#, fuzzy msgid "Address / Port" -msgstr "Adresas / Prievadas :" +msgstr "Adresas / Prievadas" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Connect" @@ -830,9 +817,8 @@ msgid "Damage enabled" msgstr "Žalojimas įjungtas" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy msgid "Del. Favorite" -msgstr "Mėgiami:" +msgstr "Pašalinti iš mėgiamų" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua #, fuzzy @@ -845,9 +831,8 @@ msgid "Join Game" msgstr "Slėpti vidinius" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy msgid "Name / Password" -msgstr "Vardas / Slaptažodis :" +msgstr "Vardas / Slaptažodis" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Ping" @@ -884,9 +869,8 @@ msgid "Antialiasing:" msgstr "" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Are you sure to reset your singleplayer world?" -msgstr "Atstatyti vieno žaidėjo pasaulį" +msgstr "Ar tikrai norite perkurti savo lokalų pasaulį?" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" @@ -1132,33 +1116,28 @@ msgstr "" "Patikrinkite debug.txt dėl papildomos informacijos." #: src/client/game.cpp -#, fuzzy msgid "- Address: " -msgstr "Susieti adresą" +msgstr "- Adresas: " #: src/client/game.cpp -#, fuzzy msgid "- Creative Mode: " -msgstr "Kūrybinė veiksena" +msgstr "- Kūrybinis režimas " #: src/client/game.cpp -#, fuzzy msgid "- Damage: " -msgstr "Leisti sužeidimus" +msgstr "- Sužeidimai: " #: src/client/game.cpp msgid "- Mode: " msgstr "" #: src/client/game.cpp -#, fuzzy msgid "- Port: " -msgstr "Prievadas" +msgstr "- Prievadas: " #: src/client/game.cpp -#, fuzzy msgid "- Public: " -msgstr "Viešas" +msgstr "- Viešas: " #. ~ PvP = Player versus Player #: src/client/game.cpp @@ -1166,9 +1145,8 @@ msgid "- PvP: " msgstr "" #: src/client/game.cpp -#, fuzzy msgid "- Server Name: " -msgstr "Serveris" +msgstr "- Serverio pavadinimas: " #: src/client/game.cpp #, fuzzy @@ -1216,7 +1194,7 @@ msgid "Continue" msgstr "Tęsti" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1234,16 +1212,19 @@ msgid "" "- %s: chat\n" msgstr "" "Numatytas valdymas:\n" -"- WASD: judėti\n" -"- Tarpas: šokti/lipti\n" -"- Lyg2: leistis/eiti žemyn\n" -"- Q: išmesti elementą\n" -"- I: inventorius\n" +"- %s: judėti į priekį\n" +"- %s: judėti atgal\n" +"- %s: judėti į kairę\n" +"- %s: judėti į dešinę\n" +"- %s: šokti/lipti\n" +"- %s: leistis/eiti žemyn\n" +"- %s: išmesti daiktą\n" +"- %s: inventorius\n" "- Pelė: sukti/žiūrėti\n" "- Pelės kairys: kasti/smugiuoti\n" "- Pelės dešinys: padėti/naudoti\n" "- Pelės ratukas: pasirinkti elementą\n" -"- T: kalbėtis\n" +"- %s: kalbėtis\n" #: src/client/game.cpp msgid "Creating client..." @@ -1357,9 +1338,8 @@ msgid "Game paused" msgstr "Žaidimo pavadinimas" #: src/client/game.cpp -#, fuzzy msgid "Hosting server" -msgstr "Kuriamas serveris...." +msgstr "Kuriamas serveris" #: src/client/game.cpp msgid "Item definitions..." @@ -2022,7 +2002,7 @@ msgstr "Garso lygis: " #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " -msgstr "Įvesti" +msgstr "Įvesti " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -2273,9 +2253,8 @@ msgid "Announce server" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Announce to this serverlist." -msgstr "Paskelbti Serverį" +msgstr "Paskelbti tai serverių sąrašui" #: src/settings_translation_file.cpp msgid "Append item name" @@ -2641,9 +2620,8 @@ msgid "Connect glass" msgstr "Jungtis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Connect to external media server" -msgstr "Jungiamasi prie serverio..." +msgstr "Prisijungti prie išorinio medijos serverio" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." @@ -2983,9 +2961,8 @@ msgid "Enable joysticks" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable mod channels support." -msgstr "Papildiniai internete" +msgstr "Įjungti papildinių kanalų palaikymą." #: src/settings_translation_file.cpp #, fuzzy @@ -3077,9 +3054,8 @@ msgid "Enables caching of facedir rotated meshes." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enables minimap." -msgstr "Leisti sužeidimus" +msgstr "Įjungia minimapą." #: src/settings_translation_file.cpp msgid "" From 9851491a3c33ac2c6fd23fd9415ad4d232814367 Mon Sep 17 00:00:00 2001 From: ssantos Date: Tue, 29 Sep 2020 18:43:14 +0000 Subject: [PATCH 423/624] Translated using Weblate (Portuguese) Currently translated at 94.5% (1277 of 1350 strings) --- po/pt/minetest.po | 154 +++++++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 76 deletions(-) diff --git a/po/pt/minetest.po b/po/pt/minetest.po index b8939ca03..cb8f1ee65 100644 --- a/po/pt/minetest.po +++ b/po/pt/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-09-11 20:24+0000\n" -"Last-Translator: Célio Rodrigues \n" +"PO-Revision-Date: 2020-12-10 19:29+0000\n" +"Last-Translator: ssantos \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.3-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -44,7 +44,7 @@ msgstr "Reconectar" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "O servidor requisitou uma reconexão:" +msgstr "O servidor solicitou uma reconexão :" #: builtin/mainmenu/common.lua src/client/game.cpp msgid "Loading..." @@ -432,7 +432,7 @@ msgstr "Eliminar" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "pkgmgr: não foi possível excluir \"$1\"" +msgstr "pkgmgr: não foi possível apagar \"$1\"" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" @@ -587,7 +587,7 @@ msgstr "amenizado" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" -msgstr "$1 (Habilitado)" +msgstr "$1 (Ativado)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" @@ -686,7 +686,7 @@ msgstr "Desenvolvedores Principais" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "Créditos" +msgstr "Méritos" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -1096,15 +1096,15 @@ msgstr "Nome do servidor: " #: src/client/game.cpp msgid "Automatic forward disabled" -msgstr "Avanço automático para frente desabilitado" +msgstr "Avanço automático desativado" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "Avanço automático para frente habilitado" +msgstr "Avanço automático para frente ativado" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "Atualização da camera desabilitada" +msgstr "Atualização da camera desativada" #: src/client/game.cpp msgid "Camera update enabled" @@ -1116,15 +1116,15 @@ msgstr "Mudar palavra-passe" #: src/client/game.cpp msgid "Cinematic mode disabled" -msgstr "Modo cinemático desabilitado" +msgstr "Modo cinemático desativado" #: src/client/game.cpp msgid "Cinematic mode enabled" -msgstr "Modo cinemático habilitado" +msgstr "Modo cinemático ativado" #: src/client/game.cpp msgid "Client side scripting is disabled" -msgstr "Scripting de cliente está desabilitado" +msgstr "O scripting de cliente está desativado" #: src/client/game.cpp msgid "Connecting to server..." @@ -1217,11 +1217,11 @@ msgstr "" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "Alcance de visualização ilimitado desabilitado" +msgstr "Alcance de visualização ilimitado desativado" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "Alcance de visualização ilimitado habilitado" +msgstr "Alcance de visualização ilimitado ativado" #: src/client/game.cpp msgid "Exit to Menu" @@ -1233,31 +1233,31 @@ msgstr "Sair para o S.O" #: src/client/game.cpp msgid "Fast mode disabled" -msgstr "Modo rápido desabilitado" +msgstr "Modo rápido desativado" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "Modo rápido habilitado" +msgstr "Modo rápido ativado" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Modo rápido habilitado(note: sem privilégio 'fast')" +msgstr "Modo rápido ativado (note: sem privilégio 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" -msgstr "Modo voo desabilitado" +msgstr "Modo voo desativado" #: src/client/game.cpp msgid "Fly mode enabled" -msgstr "Modo voo habilitado" +msgstr "Modo voo ativado" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Modo voo habilitado(note: sem privilegio 'fly')" +msgstr "Modo voo ativado (note: sem privilégio 'fly')" #: src/client/game.cpp msgid "Fog disabled" -msgstr "Névoa desabilitada" +msgstr "Névoa desativada" #: src/client/game.cpp msgid "Fog enabled" @@ -1293,7 +1293,7 @@ msgstr "MiB/s" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "Minipapa atualmente desabilitado por jogo ou mod" +msgstr "Minipapa atualmente desativado por jogo ou mod" #: src/client/game.cpp msgid "Minimap hidden" @@ -1325,15 +1325,15 @@ msgstr "Minimapa em modo de superfície, zoom 4x" #: src/client/game.cpp msgid "Noclip mode disabled" -msgstr "Modo atravessar paredes desabilitado" +msgstr "Modo de atravessar paredes desativado" #: src/client/game.cpp msgid "Noclip mode enabled" -msgstr "Modo atravessar paredes habilitado" +msgstr "Modo atravessar paredes ativado" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Modo atravessar paredes habilitado(note: sem privilégio 'noclip')" +msgstr "Modo atravessar paredes ativado (note: sem privilégio 'noclip')" #: src/client/game.cpp msgid "Node definitions..." @@ -1349,11 +1349,11 @@ msgstr "Ligado" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "Modo movimento pitch desabilitado" +msgstr "Modo movimento pitch desativado" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "Modo movimento pitch habilitado" +msgstr "Modo movimento pitch ativado" #: src/client/game.cpp msgid "Profiler graph shown" @@ -1421,7 +1421,7 @@ msgstr "Mostrar wireframe" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "Zoom atualmente desabilitado por jogo ou mod" +msgstr "Zoom atualmente desativado por jogo ou mod" #: src/client/game.cpp msgid "ok" @@ -1934,7 +1934,7 @@ msgid "" "If disabled, virtual joystick will center to first-touch's position." msgstr "" "(Android) Corrige a posição do joystick virtual.\n" -"Se desabilitado, o joystick virtual vai centralizar na posição do primeiro " +"Se desativado, o joystick virtual vai centralizar na posição do primeiro " "toque." #: src/settings_translation_file.cpp @@ -1944,8 +1944,8 @@ msgid "" "circle." msgstr "" "(Android) Use joystick virtual para ativar botão \"aux\".\n" -"Se habilitado, o joystick virtual vai também clicar no botão \"aux\" quando " -"estiver fora do circulo principal." +"Se ativado, o joystick virtual vai também clicar no botão \"aux\" quando " +"estiver fora do círculo principal." #: src/settings_translation_file.cpp msgid "" @@ -2092,14 +2092,14 @@ msgid "" msgstr "" "Suporte de 3D.\n" "Modos atualmente suportados:\n" -"- none: Nenhum efeito 3D.\n" -"- anaglyph: Sistema de cor Ciano/Magenta (Óculos 3D azul vermelho).\n" -"- interlaced: Sistema interlaçado (Óculos com lentes polarizadas).\n" -"- topbottom: Divide o ecrã em dois: um em cima e outro em baixo.\n" -"- sidebyside: Divide o ecrã em dois: lado a lado.\n" +"- none: nenhum efeito 3D.\n" +"- anaglyph: sistema de cor Ciano/Magenta (Óculos 3D azul vermelho).\n" +"- interlaced: sistema interlaçado (Óculos com lentes polarizadas).\n" +"- topbottom: divide o ecrã em dois: um em cima e outro em baixo.\n" +"- sidebyside: divide o ecrã em dois: lado a lado.\n" " - crossview: 3D de olhos cruzados.\n" -" - pageflip: Quadbuffer baseado em 3D.\n" -"Note que o modo interlaçado requer que o sombreamento esteja habilitado." +" - pageflip: quadbuffer baseado em 3D.\n" +"Note que o modo interlaçado requer que sombreamentos estejam ativados." #: src/settings_translation_file.cpp msgid "" @@ -3202,7 +3202,7 @@ msgstr "Sombra da fonte alternativa" #: src/settings_translation_file.cpp msgid "Fallback font shadow alpha" -msgstr "Canal de opacidade sombra da fonte alternativa" +msgstr "Canal de opacidade sombra da fonte alternativa" #: src/settings_translation_file.cpp msgid "Fallback font size" @@ -3586,11 +3586,11 @@ msgid "" "call).\n" "* Instrument the sampler being used to update the statistics." msgstr "" -"Tem o instrumento de registro em si:\n" +"Fazer que o profiler instrumente si próprio:\n" "* Monitorar uma função vazia.\n" -"Isto estima a sobrecarga, que o istrumento está adicionando (+1 Chamada de " +"Isto estima a sobrecarga, que o instrumento está a adicionar (+1 chamada de " "função).\n" -"* Monitorar o amostrador que está sendo usado para atualizar as estatísticas." +"* Monitorar o sampler que está a ser usado para atualizar as estatísticas." #: src/settings_translation_file.cpp msgid "Heat blend noise" @@ -3862,8 +3862,8 @@ msgid "" "are\n" "enabled." msgstr "" -"Se estiver desabilitado, a tecla \"especial será usada para voar rápido se " -"modo voo e rápido estiverem habilitados." +"Se estiver desativado, a tecla \"especial será usada para voar rápido se " +"modo voo e rápido estiverem ativados." #: src/settings_translation_file.cpp msgid "" @@ -3873,10 +3873,13 @@ msgid "" "invisible\n" "so that the utility of noclip mode is reduced." msgstr "" -"Se habilitado, o servidor executará a seleção de oclusão de bloco de mapa " -"com base na posição do olho do jogador. Isso pode reduzir o número de blocos " -"enviados ao cliente de 50 a 80%. O cliente não será mais mais invisível, de " -"modo que a utilidade do modo \"noclip\" (modo intangível) será reduzida." +"Se ativado, o servidor executará a seleção de oclusão de bloco de mapa com " +"base \n" +"na posição do olho do jogador. Isso pode reduzir o número de blocos enviados " +"ao \n" +"cliente de 50 a 80%. O cliente ja não será invisível, de modo que a " +"utilidade do \n" +"modo \"noclip\" (modo intangível) será reduzida." #: src/settings_translation_file.cpp msgid "" @@ -3894,15 +3897,15 @@ msgid "" "down and\n" "descending." msgstr "" -"Se habilitado, a tecla \"especial\" em vez de \"esgueirar\" servirá para " -"usada descer." +"Se ativado, a tecla \"especial\" em vez de \"esgueirar\" servirá para usada " +"descer." #: src/settings_translation_file.cpp msgid "" "If enabled, actions are recorded for rollback.\n" "This option is only read when server starts." msgstr "" -"Se habilitado, as ações são registradas para reversão.\n" +"Se ativado, as ações são registadas para reversão.\n" "Esta opção só é lido quando o servidor é iniciado." #: src/settings_translation_file.cpp @@ -3922,8 +3925,8 @@ msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." msgstr "" -"Se habilitado, faz com que os movimentos sejam relativos ao pitch do jogador " -"quando voando ou nadando." +"Se ativado, faz com que os movimentos sejam relativos ao pitch do jogador " +"quando a voar ou a nadar." #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." @@ -3946,8 +3949,9 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" -"Se a restrição de CSM para alcançe de nós está habilitado, chamadas get_node " -"são limitadas a está distancia do player até o nó." +"Se a restrição de CSM para o alcançe de nós está ativado, chamadas get_node " +"são \n" +"limitadas a está distancia do jogador até o nó." #: src/settings_translation_file.cpp msgid "" @@ -5159,11 +5163,11 @@ msgid "" "'altitude_dry': Reduces humidity with altitude." msgstr "" "Atributos de geração de mapa específicos ao gerador Valleys.\n" -"'altitude_chill':Reduz o calor com a altitude.\n" -"'humid_rivers':Aumenta a umidade em volta dos rios.\n" -"'profundidade_variada_rios': Se habilitado, baixa umidade e alto calor faz " -"com que que rios se tornem mais rasos e eventualmente sumam.\n" -"'altitude_dry': Reduz a umidade com a altitude." +"'altitude_chill': Reduz o calor com a altitude.\n" +"'humid_rivers': Aumenta a humidade à volta de rios.\n" +"'profundidade_variada_rios': se ativado, baixa a humidade e alto calor faz \n" +"com que rios se tornem mais rasos e eventualmente sumam.\n" +"'altitude_dry': reduz a humidade com a altitude." #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen v5." @@ -5225,7 +5229,7 @@ msgstr "Gerador de mundo Carpathian" #: src/settings_translation_file.cpp msgid "Mapgen Carpathian specific flags" -msgstr "Flags específicas do gerador de mundo Carpathian" +msgstr "Flags específicas do gerador do mundo Carpathian" #: src/settings_translation_file.cpp msgid "Mapgen Flat" @@ -5860,8 +5864,8 @@ msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." msgstr "" -"Intervalo de impressão de dados do analisador (em segundos). 0 = " -"desabilitado. Útil para desenvolvedores." +"Intervalo de impressão de dados do analisador (em segundos). 0 = desativado. " +"Útil para desenvolvedores." #: src/settings_translation_file.cpp msgid "Privileges that players with basic_privs can grant" @@ -5965,15 +5969,13 @@ msgstr "" "Restringe o acesso de certas funções a nível de cliente em servidores.\n" "Combine os byflags abaixo par restringir recursos de nível de cliente, ou " "coloque 0 para nenhuma restrição:\n" -"LOAD_CLIENT_MODS: 1 (desabilita o carregamento de mods de cliente)\n" -"CHAT_MESSAGES: 2 (desabilita a chamada send_chat_message no lado do " -"cliente)\n" -"READ_ITEMDEFS: 4 (desabilita a chamada get_item_def no lado do cliente)\n" -"READ_NODEDEFS: 8 (desabilita a chamada get_node_def no lado do cliente)\n" +"LOAD_CLIENT_MODS: 1 (desativa o carregamento de mods de cliente)\n" +"CHAT_MESSAGES: 2 (desativa a chamada send_chat_message no lado do cliente)\n" +"READ_ITEMDEFS: 4 (desativa a chamada get_item_def no lado do cliente)\n" +"READ_NODEDEFS: 8 (desativa a chamada get_node_def no lado do cliente)\n" "LOOKUP_NODES_LIMIT: 16 (limita a chamada get_node no lado do cliente para " "csm_restriction_noderange)\n" -"READ_PLAYERINFO: 32 (desabilita a chamada get_player_names no lado do " -"cliente)" +"READ_PLAYERINFO: 32 (desativa a chamada get_player_names no lado do cliente)" #: src/settings_translation_file.cpp msgid "Ridge mountain spread noise" @@ -6169,7 +6171,7 @@ msgstr "" "7 = Conjunto de mandelbrot \"Variation\" 4D.\n" "8 = Conjunto de julia \"Variation\" 4D.\n" "9 = Conjunto de mandelbrot \"Mandelbrot/Mandelbar\" 3D.\n" -"10 = Conjunto de julia \"Mandelbrot/Mandelbar\" 3D.\n" +"10 = Conjunto de julia \"Mandelbrot/Mandelbar\" 3D.\n" "11 = Conjunto de mandelbrot \"Árvore de natal\" 3D.\n" "12 = Conjunto de julia \"Árvore de natal\" 3D..\n" "13 = Conjunto de mandelbrot \"Bulbo de Mandelbrot\" 3D.\n" @@ -6702,9 +6704,9 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" -"A distancia vertical onde o calor cai por 20 caso 'altitude_chill' esteja " -"habilitado. Também é a distancia vertical onde a umidade cai por 10 se " -"'altitude_dry' estiver habilitado." +"A distância vertical onde o calor cai por 20 caso 'altitude_chill' esteja \n" +"ativado. Também é a distância vertical onde a humidade cai por 10 se \n" +"'altitude_dry' estiver ativado." #: src/settings_translation_file.cpp msgid "Third of 4 2D noises that together define hill/mountain range height." @@ -7203,7 +7205,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." -msgstr "Limite Y máximo de grandes cavernas." +msgstr "Limite Y máximo de grandes cavernas." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." From 55646ed54f2c3442894b647e8af584e09ef48811 Mon Sep 17 00:00:00 2001 From: Iztok Bajcar Date: Tue, 29 Sep 2020 07:19:56 +0000 Subject: [PATCH 424/624] Translated using Weblate (Slovenian) Currently translated at 46.6% (630 of 1350 strings) --- po/sl/minetest.po | 302 ++++++++++++++++++++++++++++++---------------- 1 file changed, 200 insertions(+), 102 deletions(-) diff --git a/po/sl/minetest.po b/po/sl/minetest.po index 16d224c40..ea9ee31af 100644 --- a/po/sl/minetest.po +++ b/po/sl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Slovenian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2019-11-29 23:04+0000\n" -"Last-Translator: Matej Mlinar \n" +"PO-Revision-Date: 2020-09-30 19:41+0000\n" +"Last-Translator: Iztok Bajcar \n" "Language-Team: Slovenian \n" "Language: sl\n" @@ -13,7 +13,7 @@ msgstr "" "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.10-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -25,7 +25,7 @@ msgstr "Umrl si" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "V redu" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -117,7 +117,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Poišči več razširitev" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -144,7 +144,7 @@ msgstr "Opis prilagoditve ni na voljo." #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "No optional dependencies" -msgstr "Izbirne možnosti:" +msgstr "Ni izbirnih odvisnosti" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -173,7 +173,7 @@ msgstr "Nazaj na glavni meni" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB ni na voljo, če je bil Minetest narejen brez podpore cURL" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -224,16 +224,18 @@ msgid "Update" msgstr "Posodobi" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "View" -msgstr "" +msgstr "Pogled" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" msgstr "Svet z imenom »$1« že obstaja" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Additional terrain" -msgstr "" +msgstr "Dodatni teren" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -244,12 +246,14 @@ msgid "Altitude dry" msgstr "" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Biome blending" -msgstr "" +msgstr "Zlivanje biomov" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Biomes" -msgstr "" +msgstr "Biomi" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -257,9 +261,8 @@ msgid "Caverns" msgstr "Šum votline" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Oktave" +msgstr "Jame" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -268,7 +271,7 @@ msgstr "Ustvari" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Decorations" -msgstr "Informacije:" +msgstr "Dekoracije" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -281,15 +284,17 @@ msgstr "Na voljo so na spletišču minetest.net/customize" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Dungeons" -msgstr "Šum ječe" +msgstr "Ječe" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Flat terrain" -msgstr "" +msgstr "Raven teren" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Lebdeče kopenske mase na nebu" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" @@ -300,28 +305,29 @@ msgid "Game" msgstr "Igra" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Generiraj nefraktalen teren: oceani in podzemlje" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Hribi" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Vlažne reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Poveča vlažnost v bližini rek" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Jezera" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Nizka vlažnost in visoka vročina povzročita plitve ali izsušene reke" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -329,7 +335,7 @@ msgstr "Oblika sveta (mapgen)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Možnosti generatorja zemljevida" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -338,15 +344,15 @@ msgstr "Oblika sveta (mapgen) Fractal" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Gore" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Tok blata" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Omrežje predorov in jam" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -354,19 +360,19 @@ msgstr "Niste izbrali igre" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Vročina pojema z višino" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Vlažnost pojema z višino" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "Reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Reke na višini morja" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -375,17 +381,20 @@ msgstr "Seme" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Gladek prehod med biomi" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Strukture, ki se pojavijo na terenu (nima vpliva na drevesa in džungelsko " +"travo, ustvarjeno z mapgenom v6)" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Strukture, ki se pojavljajo na terenu, npr. drevesa in rastline" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -401,11 +410,11 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Erozija terena" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Drevesa in džungelska trava" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -414,7 +423,7 @@ msgstr "Globina polnila" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Zelo velike jame globoko v podzemlju" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -472,9 +481,8 @@ msgid "(No description of setting given)" msgstr "(ni podanega opisa nastavitve)" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "2D Noise" -msgstr "2D zvok" +msgstr "2D šum" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" @@ -497,8 +505,9 @@ msgid "Enabled" msgstr "Omogočeno" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "Lacunarity" -msgstr "" +msgstr "lacunarnost" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" @@ -538,7 +547,7 @@ msgstr "Izberi datoteko" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "Pokaži tehnične zapise" +msgstr "Prikaži tehnična imena" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." @@ -592,8 +601,9 @@ msgstr "Privzeta/standardna vrednost (defaults)" #. can be enabled in noise settings in #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "eased" -msgstr "" +msgstr "sproščeno" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" @@ -735,7 +745,7 @@ msgstr "Gostiteljski strežnik" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Namesti igre iz ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -932,7 +942,7 @@ msgstr "Senčenje" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" -msgstr "" +msgstr "Senčenje (ni na voljo)" #: builtin/mainmenu/tab_settings.lua msgid "Simple Leaves" @@ -955,8 +965,9 @@ msgid "Tone Mapping" msgstr "Barvno preslikavanje" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Touchthreshold: (px)" -msgstr "" +msgstr "Občutljivost dotika (v pikslih):" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" @@ -1187,16 +1198,18 @@ msgid "Creating server..." msgstr "Poteka zagon strežnika ..." #: src/client/game.cpp +#, fuzzy msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "Podatki za razhroščevanje in graf skriti" #: src/client/game.cpp msgid "Debug info shown" msgstr "Prikazani so podatki o odpravljanju napak" #: src/client/game.cpp +#, fuzzy msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgstr "Podatki za razhroščevanje, graf, in žičnati prikaz skriti" #: src/client/game.cpp msgid "" @@ -1370,8 +1383,9 @@ msgid "Pitch move mode enabled" msgstr "Prostorsko premikanje (pitch mode) je omogočeno" #: src/client/game.cpp +#, fuzzy msgid "Profiler graph shown" -msgstr "" +msgstr "Profiler prikazan" #: src/client/game.cpp msgid "Remote server" @@ -1399,11 +1413,11 @@ msgstr "Zvok je utišan" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Zvočni sistem je onemogočen" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Zvočni sistem v tej izdaji Minetesta ni podprt" #: src/client/game.cpp msgid "Sound unmuted" @@ -1430,8 +1444,9 @@ msgid "Volume changed to %d%%" msgstr "Glasnost zvoka je nastavljena na %d %%" #: src/client/game.cpp +#, fuzzy msgid "Wireframe shown" -msgstr "" +msgstr "Žičnati prikaz omogočen" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1458,13 +1473,14 @@ msgid "HUD shown" msgstr "HUD je prikazan" #: src/client/gameui.cpp +#, fuzzy msgid "Profiler hidden" -msgstr "" +msgstr "Profiler skrit" #: src/client/gameui.cpp -#, c-format +#, c-format, fuzzy msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "Profiler prikazan (stran %d od %d)" #: src/client/keycode.cpp msgid "Apps" @@ -1511,24 +1527,29 @@ msgid "Home" msgstr "Začetno mesto" #: src/client/keycode.cpp +#, fuzzy msgid "IME Accept" -msgstr "" +msgstr "IME Sprejem" #: src/client/keycode.cpp +#, fuzzy msgid "IME Convert" -msgstr "" +msgstr "IME Pretvorba" #: src/client/keycode.cpp +#, fuzzy msgid "IME Escape" -msgstr "" +msgstr "IME Pobeg" #: src/client/keycode.cpp +#, fuzzy msgid "IME Mode Change" -msgstr "" +msgstr "IME sprememba načina" #: src/client/keycode.cpp +#, fuzzy msgid "IME Nonconvert" -msgstr "" +msgstr "IME Nepretvorba" #: src/client/keycode.cpp msgid "Insert" @@ -1632,8 +1653,9 @@ msgid "Numpad 9" msgstr "Tipka 9 na številčnici" #: src/client/keycode.cpp +#, fuzzy msgid "OEM Clear" -msgstr "" +msgstr "OEM Clear" #: src/client/keycode.cpp msgid "Page down" @@ -1831,6 +1853,8 @@ msgstr "Tipka je že v uporabi" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" +"Vloge tipk (če ta meni preneha delovati, odstranite nastavitve tipk iz " +"datoteke minetest.conf)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" @@ -1947,6 +1971,9 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android) Popravi položaj virtualne igralne palice.\n" +"Če je onemogočeno, se bo sredina igralne palice nastavila na položaj prvega " +"pritiska na ekran." #: src/settings_translation_file.cpp msgid "" @@ -1954,6 +1981,9 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" +"(Android) Uporabi virtualno igralno palico za pritisk gumba \"aux\".\n" +"Če je omogočeno, bo igralna palica sprožila gumb \"aux\", ko bo zunaj " +"glavnega kroga." #: src/settings_translation_file.cpp msgid "" @@ -1966,6 +1996,15 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X, Y, Z) Zamik fraktala od središča sveta v enotah 'scale'.\n" +"Uporabno za premik določene točke na (0, 0) za ustvarjanje\n" +"primerne začetne točke (spawn point) ali za 'zumiranje' na določeno\n" +"točko, tako da povečate 'scale'.\n" +"Privzeta vrednost je prirejena za primerno začetno točko za Mandelbrotovo\n" +"množico s privzetimi parametri, v ostalih situacijah jo bo morda treba\n" +"spremeniti.\n" +"Obseg je približno od -2 do 2. Pomnožite s 'scale', da določite zamik v " +"enoti ene kocke." #: src/settings_translation_file.cpp msgid "" @@ -1977,12 +2016,22 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" +"(X, Y, Z) skala (razteg) fraktala v enoti ene kocke.\n" +"Resnična velikost fraktala bo 2- do 3-krat večja.\n" +"Te vrednosti so lahko zelo velike; ni potrebno,\n" +"da se fraktal prilega velikosti sveta.\n" +"Povečajte te vrednosti, da 'zumirate' na podrobnosti fraktala.\n" +"Privzeta vrednost določa vertikalno stisnjeno obliko, primerno za\n" +"otok; nastavite vse tri vrednosti na isto število za neobdelano obliko." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "0 = parallax occlusion with slope information (faster).\n" "1 = relief mapping (slower, more accurate)." msgstr "" +"0 = \"parallax occlusion\" s podatki o nagibih (hitrejše)\n" +"1 = mapiranje reliefa (počasnejše, a bolj natančno)" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." @@ -1990,27 +2039,29 @@ msgstr "2D šum, ki nadzoruje obliko/velikost gorskih verig." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "2D šum, ki nadzira obliko in velikost hribov." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "2D šum, ki nadzira obliko/velikost gora." #: src/settings_translation_file.cpp +#, fuzzy msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "2D šum, ki nadzira velikost/pojavljanje gorskih verig." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "2D šum, ki nadzira veliokst/pojavljanje hribov." #: src/settings_translation_file.cpp +#, fuzzy msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "2D šum, ki nadzira velikost/pojavljanje gorskih verig." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "2D šum, ki določa položaj rečnih dolin in kanalov." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2022,17 +2073,19 @@ msgstr "3D način" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "Moč 3D parallax načina" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "3D šum, ki določa večje jame." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"3D šum, ki določa strukturo in višino gora\n" +"ter strukturo terena lebdečih gora." #: src/settings_translation_file.cpp msgid "" @@ -2041,22 +2094,27 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D šum, ki določa strukturo lebdeče pokrajine.\n" +"Po spremembi s privzete vrednosti bo 'skalo' šuma (privzeto 0,7) morda " +"treba\n" +"prilagoditi, saj program za generiranje teh pokrajin najbolje deluje\n" +"z vrednostjo v območju med -2,0 in 2,0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "3D šum, ki določa strukturo sten rečnih kanjonov." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "3D šum za določanje terena." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgstr "3D šum za gorske previse, klife, itd. Ponavadi so variacije majhne." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D šum, ki določa število ječ na posamezen kos zemljevida." #: src/settings_translation_file.cpp msgid "" @@ -2077,6 +2135,9 @@ msgid "" "A chosen map seed for a new map, leave empty for random.\n" "Will be overridden when creating a new world in the main menu." msgstr "" +"Izbrano seme zemljevida, pustite prazno za izbor naključnega semena.\n" +"Ta nastavitev bo povožena v primeru ustvarjanja novega sveta iz glavnega " +"menija." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." @@ -2091,7 +2152,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "ABM interval" -msgstr "" +msgstr "Interval ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2099,23 +2160,23 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "Pospešek v zraku" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Pospešek gravitacije v kockah na kvadratno sekundo." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" -msgstr "" +msgstr "Modifikatorji aktivnih blokov" #: src/settings_translation_file.cpp msgid "Active block management interval" -msgstr "" +msgstr "Interval upravljanja aktivnih blokov" #: src/settings_translation_file.cpp msgid "Active block range" -msgstr "" +msgstr "Doseg aktivnih blokov" #: src/settings_translation_file.cpp msgid "Active object send range" @@ -2127,16 +2188,22 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"Naslov strežnika.\n" +"Pustite prazno za zagon lokalnega strežnika.\n" +"Polje za vpis naslova v glavnem meniju povozi to nastavitev." #: src/settings_translation_file.cpp +#, fuzzy msgid "Adds particles when digging a node." -msgstr "" +msgstr "Doda partikle pri kopanju kocke." #: src/settings_translation_file.cpp msgid "" "Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " "screens." msgstr "" +"Nastavite dpi konfiguracijo (gostoto prikaza) svojemu ekranu (samo za ne-X11/" +"Android), npr. za 4K ekrane." #: src/settings_translation_file.cpp #, c-format @@ -2172,11 +2239,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "Največja količina sporočil, ki jih igralec sme poslati v 10 sekundah." #: src/settings_translation_file.cpp msgid "Amplifies the valleys." -msgstr "" +msgstr "Ojača doline." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" @@ -2192,7 +2259,7 @@ msgstr "Objavi strežnik na seznamu strežnikov." #: src/settings_translation_file.cpp msgid "Append item name" -msgstr "" +msgstr "Dodaj ime elementa" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." @@ -2205,13 +2272,15 @@ msgstr "Šum jablan" #: src/settings_translation_file.cpp msgid "Arm inertia" -msgstr "" +msgstr "Vztrajnost roke" #: src/settings_translation_file.cpp msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" +"Vztrajnost roke; daje bolj realistično gibanje\n" +"roke, ko se kamera premika." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -2231,6 +2300,15 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" +"Na tej razdalji bo strežnik agresivno optimiziral, kateri bloki bodo " +"poslani\n" +"igralcem.\n" +"Manjše vrednosti lahko močno pospešijo delovanje na račun napak\n" +"pri izrisovanju (nekateri bloki se ne bodo izrisali pod vodo in v jamah,\n" +"včasih pa tudi na kopnem).\n" +"Nastavljanje na vrednost, večjo od max_block_send_distance, onemogoči to\n" +"optimizacijo.\n" +"Navedena vrednost ima enoto 'mapchunk' (16 blokov)." #: src/settings_translation_file.cpp msgid "Automatic forward key" @@ -2264,11 +2342,11 @@ msgstr "Osnovna podlaga" #: src/settings_translation_file.cpp msgid "Base terrain height." -msgstr "" +msgstr "Višina osnovnega terena." #: src/settings_translation_file.cpp msgid "Basic" -msgstr "" +msgstr "Osnovno" #: src/settings_translation_file.cpp msgid "Basic privileges" @@ -2284,7 +2362,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Bilinear filtering" -msgstr "" +msgstr "Bilinearno filtriranje" #: src/settings_translation_file.cpp msgid "Bind address" @@ -2295,12 +2373,13 @@ msgid "Biome API temperature and humidity noise parameters" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Biome noise" -msgstr "" +msgstr "Šum bioma" #: src/settings_translation_file.cpp msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" +msgstr "Biti na piksel (barvna globina) v celozaslonskem načinu." #: src/settings_translation_file.cpp msgid "Block send optimize distance" @@ -2308,11 +2387,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Bold and italic font path" -msgstr "" +msgstr "Pot do krepke in poševne pisave" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "" +msgstr "Pot do krepke in ležeče pisave konstantne širine" #: src/settings_translation_file.cpp #, fuzzy @@ -2321,7 +2400,7 @@ msgstr "Pot pisave" #: src/settings_translation_file.cpp msgid "Bold monospace font path" -msgstr "" +msgstr "Pot do krepke pisave konstantne širine" #: src/settings_translation_file.cpp msgid "Build inside player" @@ -2329,19 +2408,27 @@ msgstr "Postavljanje blokov znotraj igralca" #: src/settings_translation_file.cpp msgid "Builtin" -msgstr "" +msgstr "Vgrajeno" #: src/settings_translation_file.cpp msgid "Bumpmapping" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"'Bližnja ravnina' kamere - najmanjša razdalja, na kateri kamera vidi objekte " +"- v blokih, med 0 in 0,25.\n" +"Deluje samo na platformah GLES. Večini uporabnikov te nastavitve ni treba " +"spreminjati.\n" +"Povečanje vrednosti lahko odpravi anomalije na šibkejših grafičnih " +"procesorjih.\n" +"0.1 = privzeto, 0.25 = dobra vrednost za šibkejše naprave" #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2376,11 +2463,11 @@ msgstr "Širina jame" #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "" +msgstr "Šum Cave1" #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "" +msgstr "Šum Cave2" #: src/settings_translation_file.cpp msgid "Cavern limit" @@ -2408,6 +2495,8 @@ msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"Središče območja povečave svetlobne krivulje.\n" +"0.0 je minimalna raven svetlobe, 1.0 maksimalna." #: src/settings_translation_file.cpp msgid "" @@ -2418,6 +2507,12 @@ msgid "" "be\n" "necessary for smaller screens." msgstr "" +"Spremeni uporabniški vmesnik glavnega menija:\n" +"- Polno: več enoigralskih svetov, izbira igre, izbirnik paketov tekstur, " +"itd.\n" +"- Preprosto: en enoigralski svet, izbirnika iger in paketov tekstur se ne " +"prikažeta. Morda bo za manjše\n" +"ekrane potrebna ta nastavitev." #: src/settings_translation_file.cpp #, fuzzy @@ -2459,8 +2554,9 @@ msgid "Chatcommands" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Chunk size" -msgstr "" +msgstr "Velikost 'chunka'" #: src/settings_translation_file.cpp msgid "Cinematic mode" @@ -2471,8 +2567,9 @@ msgid "Cinematic mode key" msgstr "Tipka za filmski način" #: src/settings_translation_file.cpp +#, fuzzy msgid "Clean transparent textures" -msgstr "" +msgstr "Čiste prosojne teksture" #: src/settings_translation_file.cpp msgid "Client" @@ -2543,7 +2640,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Command key" -msgstr "" +msgstr "Tipka Command" #: src/settings_translation_file.cpp msgid "Connect glass" @@ -2564,11 +2661,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Console color" -msgstr "" +msgstr "Barva konzole" #: src/settings_translation_file.cpp msgid "Console height" -msgstr "" +msgstr "Višina konzole" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" @@ -2590,8 +2687,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Controls" -msgstr "" +msgstr "Kontrole" #: src/settings_translation_file.cpp msgid "" @@ -2602,15 +2700,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Nadzira hitrost potapljanja v tekočinah." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." -msgstr "" +msgstr "Nadzira strmost/globino jezerskih depresij." #: src/settings_translation_file.cpp msgid "Controls steepness/height of hills." -msgstr "" +msgstr "Nadzira strmost/višino hribov." #: src/settings_translation_file.cpp msgid "" From f07faf8919fbf13fe2c9315a26af361ba3bf7fa0 Mon Sep 17 00:00:00 2001 From: THANOS SIOURDAKIS Date: Mon, 28 Sep 2020 13:05:53 +0000 Subject: [PATCH 425/624] Translated using Weblate (Greek) Currently translated at 1.6% (22 of 1350 strings) --- po/el/minetest.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/po/el/minetest.po b/po/el/minetest.po index 1992676a4..0b08e0d98 100644 --- a/po/el/minetest.po +++ b/po/el/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Greek (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-03-31 20:29+0000\n" +"PO-Revision-Date: 2020-09-30 19:41+0000\n" "Last-Translator: THANOS SIOURDAKIS \n" "Language-Team: Greek \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -170,9 +170,8 @@ msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Φόρτωση..." +msgstr "Λήψη ..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" From 54bbea30ef2ad30a4756e53387bc8aea7ad35bb3 Mon Sep 17 00:00:00 2001 From: Eyekay49 Date: Mon, 5 Oct 2020 13:48:11 +0000 Subject: [PATCH 426/624] Translated using Weblate (Hindi) Currently translated at 34.5% (467 of 1350 strings) --- po/hi/minetest.po | 50 +++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/po/hi/minetest.po b/po/hi/minetest.po index a45a5ae89..ddb0d68cc 100644 --- a/po/hi/minetest.po +++ b/po/hi/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-29 07:53+0000\n" -"Last-Translator: Agastya \n" +"PO-Revision-Date: 2020-10-06 14:26+0000\n" +"Last-Translator: Eyekay49 \n" "Language-Team: Hindi \n" "Language: hi\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -29,7 +29,7 @@ msgstr "आपकी मौत हो गयी" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "Okay" +msgstr "ठीक है" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -172,10 +172,9 @@ msgstr "वापस मुख्य पृष्ठ पर जाएं" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "cURL के बगैर कंपाइल होने के कारण Content DB उपलब्ध नहीं है" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." msgstr "लोड हो रहा है ..." @@ -232,32 +231,31 @@ msgstr "\"$1\" नामक दुनिया पहले से ही है #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "अतिरिक्त भूमि" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "ऊंचाई की ठंडक" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "ऊंचाई का सूखापन" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "बायोम परिवर्तन नज़र न आना (Biome Blending)" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "बायोम" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "गुफाएं" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "सप्टक (आक्टेव)" +msgstr "गुफाएं" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -277,19 +275,19 @@ msgstr "आप किसी भी खेल को minetest.net से डा #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "कालकोठरियां" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "समतल भूमि" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "आसमान में तैरते हुए भूमि-खंड" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "फ्लोटलैंड्स (आसमान में तैरते हुए भूमि-खंड) (प्रायोगिक)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -297,11 +295,11 @@ msgstr "खेल" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Non-fractal भूमि तैयार हो : समुद्र व भूमि के नीचे" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "छोटे पहाड़" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -370,13 +368,13 @@ msgstr "बीज" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "बायोम के बीच में धीरे-धीरे परिवर्तन" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "भूमि पर बनावटें (v6 के पेड़ व जंगली घास पर कोई असर नहीं)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" @@ -404,17 +402,17 @@ msgstr "पेड़ और जंगल की घास" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "नदी की गहराईयों में अंतर" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." msgstr "" -"चेतावनी : न्यूनतम विकास खेल (Minimal development test) खेल बनाने वालों के लिए है।" +"चेतावनी : न्यूनतम विकास खेल (Minimal development test) खेल बनाने वालों के लि" +"ए है।" #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -1716,7 +1714,7 @@ msgstr "ज़ूम" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "पासवर्ड अलग अलग हैं!" +msgstr "पासवर्ड अलग-अलग हैं!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" From f4503542eba64c11bbe9433cf9af9e4581bf3c02 Mon Sep 17 00:00:00 2001 From: Osoitz Date: Sat, 17 Oct 2020 20:54:35 +0000 Subject: [PATCH 427/624] Translated using Weblate (Basque) Currently translated at 18.7% (253 of 1350 strings) --- po/eu/minetest.po | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/po/eu/minetest.po b/po/eu/minetest.po index 17c4325df..81768ccdb 100644 --- a/po/eu/minetest.po +++ b/po/eu/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: sfan5 \n" +"PO-Revision-Date: 2020-10-18 21:26+0000\n" +"Last-Translator: Osoitz \n" "Language-Team: Basque \n" "Language: eu\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -29,7 +29,7 @@ msgstr "Hil zara" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Ados" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -732,7 +732,7 @@ msgstr "Zerbitzari ostalaria" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instalatu ContentDB-ko jolasak" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -764,7 +764,7 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "" +msgstr "Hasi partida" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" @@ -776,7 +776,7 @@ msgstr "" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative mode" -msgstr "" +msgstr "Sormen modua" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Damage enabled" @@ -792,7 +792,7 @@ msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "" +msgstr "Elkartu partidara" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" @@ -825,7 +825,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" -msgstr "" +msgstr "Ezarpen guztiak" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" @@ -921,7 +921,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Settings" -msgstr "" +msgstr "Ezarpenak" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" @@ -1071,11 +1071,11 @@ msgstr "" #: src/client/game.cpp msgid "- Creative Mode: " -msgstr "" +msgstr "- Sormen modua: " #: src/client/game.cpp msgid "- Damage: " -msgstr "" +msgstr "- Kaltea: " #: src/client/game.cpp msgid "- Mode: " @@ -2566,7 +2566,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Creative" -msgstr "" +msgstr "Sormena" #: src/settings_translation_file.cpp msgid "Crosshair alpha" @@ -2590,7 +2590,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Damage" -msgstr "" +msgstr "Kaltea" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2820,7 +2820,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Enable creative mode for new created maps." -msgstr "" +msgstr "Gaitu sormen modua mapa sortu berrietan." #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -2836,7 +2836,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Enable players getting damage and dying." -msgstr "" +msgstr "Ahalbidetu jokalariek kaltea jasotzea eta hiltzea." #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." @@ -5060,7 +5060,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Online Content Repository" -msgstr "" +msgstr "Sareko eduki biltegia" #: src/settings_translation_file.cpp msgid "Opaque liquids" @@ -5810,7 +5810,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "The URL for the content repository" -msgstr "" +msgstr "Eduki biltegiaren URL helbidea" #: src/settings_translation_file.cpp msgid "" @@ -6262,7 +6262,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "Jokalariak elkarren artean hil daitezkeen ala ez." #: src/settings_translation_file.cpp msgid "" From 696db40ec3a8c75164356a9037c9dfab93ba7a71 Mon Sep 17 00:00:00 2001 From: Tiller Luna Date: Thu, 22 Oct 2020 11:22:21 +0000 Subject: [PATCH 428/624] Translated using Weblate (Russian) Currently translated at 99.9% (1349 of 1350 strings) --- po/ru/minetest.po | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index dc9311119..87c0e8cc8 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-10-22 14:28+0000\n" -"Last-Translator: Nikita Epifanov \n" +"Last-Translator: Tiller Luna \n" "Language-Team: Russian \n" "Language: ru\n" @@ -61,7 +61,7 @@ msgstr "Сервер требует протокол версии $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "Сервер поддерживает версии протокола между $1 и $2. " +msgstr "Сервер поддерживает версии протокола с $1 по $2. " #: builtin/mainmenu/common.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -74,7 +74,7 @@ msgstr "Мы поддерживаем только протокол версии #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "Мы поддерживаем версии протоколов между $1 и $2." +msgstr "Поддерживаются только протоколы версий с $1 по $2." #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua @@ -618,8 +618,7 @@ msgstr "Установка мода: файл \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" msgstr "" -"Установка мода: не удаётся найти подходящий каталог для мода или пакета " -"модов $1" +"Установка мода: не удаётся найти подходящий каталог для мода или пакета модов" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -872,7 +871,7 @@ msgstr "Нет" #: builtin/mainmenu/tab_settings.lua msgid "No Filter" -msgstr "Без фильтрации (пиксельное)" +msgstr "Без фильтрации" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" @@ -1255,7 +1254,7 @@ msgstr "Режим полёта включён" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Режим полёта включён (но: нет привилегии «fly»)" +msgstr "Режим полёта включён (но нет привилегии «fly»)" #: src/client/game.cpp msgid "Fog disabled" @@ -1335,7 +1334,7 @@ msgstr "Режим прохождения сквозь стены включён #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Режим прохождения сквозь стены включён (но: нет привилегии «noclip»)" +msgstr "Режим прохождения сквозь стены включён (но нет привилегии «noclip»)" #: src/client/game.cpp msgid "Node definitions..." From 1c46ab6d691a3ff19ca682d3e42af01de5ddf2a9 Mon Sep 17 00:00:00 2001 From: Maksim Gamarnik Date: Thu, 22 Oct 2020 11:19:10 +0000 Subject: [PATCH 429/624] Translated using Weblate (Russian) Currently translated at 99.9% (1349 of 1350 strings) --- po/ru/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 87c0e8cc8..f9be037aa 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-10-22 14:28+0000\n" -"Last-Translator: Tiller Luna \n" +"Last-Translator: Maksim Gamarnik \n" "Language-Team: Russian \n" "Language: ru\n" @@ -304,7 +304,7 @@ msgstr "Влажность рек" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "Увеличить влажность вокруг рек" +msgstr "Увеличивает влажность вокруг рек" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" From f43df2055925e0ea3313b1702ef2927e81d127fe Mon Sep 17 00:00:00 2001 From: William Desportes Date: Sat, 24 Oct 2020 19:22:33 +0000 Subject: [PATCH 430/624] Translated using Weblate (French) Currently translated at 100.0% (1350 of 1350 strings) --- po/fr/minetest.po | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index e12b0d2c8..dc58ddd3c 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-09-22 03:39+0000\n" -"Last-Translator: pitchum \n" +"PO-Revision-Date: 2020-10-25 19:26+0000\n" +"Last-Translator: William Desportes \n" "Language-Team: French \n" "Language: fr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.3-dev\n" +"X-Generator: Weblate 4.3.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -2488,12 +2488,11 @@ msgid "" "necessary for smaller screens." msgstr "" "Change l’interface du menu principal :\n" -"- Complet : Mondes solo, choix du jeu, sélecteur du pack de textures, " -"etc.\n" +"- Complet : Mondes solo, choix du jeu, sélecteur du pack de textures, etc." +"\n" "- Simple : un monde solo, pas de sélecteurs de jeu ou de pack de textures. " "Peut être\n" -"nécessaire pour les plus petits écrans.\n" -"- Auto : Simple sur Android, complet pour le reste." +"nécessaire pour les plus petits écrans." #: src/settings_translation_file.cpp msgid "Chat font size" @@ -2713,8 +2712,8 @@ msgid "" msgstr "" "Contrôle la largeur des tunnels, une valeur plus faible crée des tunnels " "plus large.\n" -"Valeur >= 10,0 désactive complètement la génération de tunnel et évite le " -"calcul intensif de bruit." +"Valeur >= 10,0 désactive complètement la génération de tunnel et évite\n" +"le calcul intensif de bruit." #: src/settings_translation_file.cpp msgid "Crash message" From c600038705578f24e6380065c17bc17cbe82881b Mon Sep 17 00:00:00 2001 From: Nick Naumenko Date: Sat, 24 Oct 2020 11:23:07 +0000 Subject: [PATCH 431/624] Translated using Weblate (Ukrainian) Currently translated at 45.7% (617 of 1350 strings) --- po/uk/minetest.po | 164 ++++++++++++++++++++++++++++------------------ 1 file changed, 101 insertions(+), 63 deletions(-) diff --git a/po/uk/minetest.po b/po/uk/minetest.po index f5272af8b..9b7f2f2d5 100644 --- a/po/uk/minetest.po +++ b/po/uk/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Ukrainian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-09-02 12:36+0000\n" -"Last-Translator: Fixer \n" +"PO-Revision-Date: 2020-10-25 19:26+0000\n" +"Last-Translator: Nick Naumenko \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.3-dev\n" +"X-Generator: Weblate 4.3.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -373,6 +373,8 @@ msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Споруди, що з’являються на місцевості (не впливає на дерева та траву " +"джунглів створені у v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" @@ -388,24 +390,23 @@ msgstr "Помірного Поясу, Пустелі, Джунглі" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Помірний, пустеля, джунглі, тундра, тайга" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Ерозія поверхні місцевості" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Дерева та трава джунглів" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Глибина великих печер" +msgstr "Змінювати глибину річок" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Дуже великі печери глибоко під землею" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -460,7 +461,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" -msgstr "(пояснення відсутнє)" +msgstr "(пояснення налаштування відсутнє)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" @@ -504,15 +505,15 @@ msgstr "Постійність" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "Будь-ласка введіть дійсне ціле число." +msgstr "Будь-ласка введіть коректне ціле число." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." -msgstr "Будь-ласка введіть дійсне число." +msgstr "Будь-ласка введіть коректне число." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Відновити як було" +msgstr "Відновити за замовченням" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" @@ -520,7 +521,7 @@ msgstr "Шкала" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "Виберіть папку" +msgstr "Виберіть директорію" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select file" @@ -544,7 +545,7 @@ msgstr "Х" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" -msgstr "Розкидання по X" +msgstr "Поширення по X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" @@ -552,7 +553,7 @@ msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "Розкидання по Y" +msgstr "Поширення по Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" @@ -560,7 +561,7 @@ msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" -msgstr "Розкидання по Z" +msgstr "Поширення по Z" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". @@ -575,7 +576,7 @@ msgstr "Абс. величина" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "Стандартно" +msgstr "За замовчанням" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -637,11 +638,11 @@ msgstr "Не вдалося встановити модпак як $1" #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "Шукати додатки онлайн" +msgstr "Переглянути контент у мережі" #: builtin/mainmenu/tab_content.lua msgid "Content" -msgstr "Додатки" +msgstr "Контент" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" @@ -681,7 +682,7 @@ msgstr "Активні учасники" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "Розробники двигуна" +msgstr "Розробники ядра" #: builtin/mainmenu/tab_credits.lua msgid "Credits" @@ -693,7 +694,7 @@ msgstr "Попередні учасники" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "Попередні розробники двигуна" +msgstr "Попередні розробники ядра" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" @@ -709,11 +710,11 @@ msgstr "Налаштувати" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" -msgstr "Творчість" +msgstr "Творчій режим" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Enable Damage" -msgstr "Поранення" +msgstr "Увімкнути ушкодження" #: builtin/mainmenu/tab_local.lua msgid "Host Game" @@ -757,7 +758,7 @@ msgstr "Порт сервера" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "Грати" +msgstr "Почати гру" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" @@ -769,23 +770,23 @@ msgstr "Під'єднатися" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative mode" -msgstr "Творчість" +msgstr "Творчій режим" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Damage enabled" -msgstr "Поранення" +msgstr "Ушкодження ввімкнено" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Del. Favorite" -msgstr "Видалити мітку" +msgstr "Видалити з закладок" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Favorite" -msgstr "Улюблені" +msgstr "Закладки" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "Мережа" +msgstr "Під'єднатися до гри" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" @@ -806,7 +807,7 @@ msgstr "2x" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" -msgstr "Об'ємні хмари" +msgstr "3D хмари" #: builtin/mainmenu/tab_settings.lua msgid "4x" @@ -838,7 +839,7 @@ msgstr "Білінійна фільтрація" #: builtin/mainmenu/tab_settings.lua msgid "Bump Mapping" -msgstr "Бамп маппінг" +msgstr "Бамп-маппінг" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" @@ -846,7 +847,7 @@ msgstr "Змінити клавіші" #: builtin/mainmenu/tab_settings.lua msgid "Connected Glass" -msgstr "З'єднувати скло" +msgstr "З'єднане скло" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" @@ -1022,7 +1023,7 @@ msgstr "Головне Меню" #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." -msgstr "Жоден світ не вибрано та не надано адреси. Нічого робити." +msgstr "Жоден світ не вибрано та не надано адреси. Немає чого робити." #: src/client/clientlauncher.cpp msgid "Player name too long." @@ -1070,11 +1071,11 @@ msgstr "- Творчість: " #: src/client/game.cpp msgid "- Damage: " -msgstr "- Поранення: " +msgstr "- Ушкодження: " #: src/client/game.cpp msgid "- Mode: " -msgstr "- Тип: " +msgstr "- Режим: " #: src/client/game.cpp msgid "- Port: " @@ -1162,7 +1163,7 @@ msgstr "" "- %s: інвентар\n" "- Мишка: поворот/дивитися\n" "- Ліва кнопка миші: копати/удар\n" -"- Права кнопка миші: поставити/зробити\n" +"- Права кнопка миші: поставити/використати\n" "- Колесо миші: вибір предмета\n" "- %s: чат\n" @@ -1388,7 +1389,7 @@ msgstr "Звукова система вимкнена" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Звукова система не підтримується у цій збірці" #: src/client/game.cpp msgid "Sound unmuted" @@ -1617,9 +1618,8 @@ msgid "Numpad 9" msgstr "Num 9" #: src/client/keycode.cpp -#, fuzzy msgid "OEM Clear" -msgstr "Почистити OEM" +msgstr "Очистити OEM" #: src/client/keycode.cpp msgid "Page down" @@ -1854,7 +1854,7 @@ msgstr "Спеціальна" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Увімкнути HUD" +msgstr "Увімкнути позначки на екрані" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" @@ -1960,6 +1960,14 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X,Y,Z) зміщення фракталу від центру світа у одиницях 'масшабу'. \n" +"Використовується для пересування бажаної точки до (0, 0) щоб \n" +"створити придатну точку переродження або для 'наближення' \n" +"до бажаної точки шляхом збільшення 'масштабу'. Значення за \n" +"замовчанням налаштоване для придатної точки переродження \n" +"для множин Мандельбро з параметрами за замовчанням; може \n" +"потребувати зміни у інших ситуаціях. Діапазон приблизно від -2 \n" +"до 2. Помножте на 'масштаб' щоб отримати зміщення у блоках." #: src/settings_translation_file.cpp msgid "" @@ -1971,6 +1979,13 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" +"(X,Y,Z) масштаб фракталу у блоках.\n" +"Фактичний розмір фракталу буде у 2-3 рази більшим. Ці \n" +"числа можуть бути дуже великими, фрактал не обов'язково \n" +"має поміститися у світі. Збільшіть їх щоб 'наблизити' деталі \n" +"фракталу. Числа за замовчанням підходять для вертикально \n" +"стисненої форми, придатної для острова, встановіть усі три \n" +"числа рівними для форми без трансформації." #: src/settings_translation_file.cpp msgid "" @@ -1982,31 +1997,31 @@ msgstr "" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "2D шум що контролює форму/розмір гребенів гір." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "2D шум що контролює форму/розмір невисоких пагорбів." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "2D шум що контролює форму/розмір ступінчастих гір." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "2D шум що контролює розмір/імовірність гребенів гірських масивів." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "2D шум що контролює розмір/імовірність невисоких пагорбів." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "2D шум що контролює розмір/імовірність ступінчастих гір." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "2D шум що розміщує долини та русла річок." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2018,17 +2033,19 @@ msgstr "3D режим" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "Величина паралаксу у 3D режимі" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "3D шум що визначає гігантські каверни." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"3D шум що визначає структуру та висоті гір. \n" +"Також визначає структуру висячих островів." #: src/settings_translation_file.cpp msgid "" @@ -2037,22 +2054,26 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D шум що визначає структуру висячих островів.\n" +"Якщо змінити значення за замовчаням, 'масштаб' шуму (0.7 за замовчанням)\n" +"може потребувати корекції, оскільки функція конічної транформації висячих\n" +"островів має діапазон значень приблизно від -2.0 до 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "3D шум що визначає структуру стін каньйонів річок." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "3D шум що визначає місцевість." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgstr "3D шум для виступів гір, скель та ін. Зазвичай невеликі варіації." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D шум що визначає кількість підземель на фрагмент карти." #: src/settings_translation_file.cpp msgid "" @@ -2067,20 +2088,34 @@ msgid "" "- pageflip: quadbuffer based 3d.\n" "Note that the interlaced mode requires shaders to be enabled." msgstr "" +"Підтримка 3D.\n" +"Зараз підтримуються:\n" +"- none: 3d вимкнено.\n" +"- anaglyph: 3d з блакитно-пурпурними кольорами.\n" +"- interlaced: підтримка полярізаційних екранів з непарними/парним лініями." +"\n" +"- topbottom: поділ екрану вертикально.\n" +"- sidebyside: поділ екрану горизонтально.\n" +"- crossview: 3d на основі автостереограми.\n" +"- pageflip: 3d на основі quadbuffer.\n" +"Зверніть увагу що режим interlaced потребує ввімкнення шейдерів." #: src/settings_translation_file.cpp msgid "" "A chosen map seed for a new map, leave empty for random.\n" "Will be overridden when creating a new world in the main menu." msgstr "" +"Вибране зерно карти для нової карти, залиште порожнім для випадково " +"вибраного числа.\n" +"Буде проігноровано якщо новий світ створюється з головного меню." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." -msgstr "" +msgstr "Повідомлення що показується усім клієнтам якщо сервер зазнає збою." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" +msgstr "Повідомлення що показується усім клієнтам при вимкненні серверу." #: src/settings_translation_file.cpp msgid "ABM interval" @@ -2088,31 +2123,31 @@ msgstr "Інтервал ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "" +msgstr "Абсолютний ліміт відображення блоків з черги" #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "Прискорення у повітрі" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Прискорення гравітації, у блоках на секунду у квадраті." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" -msgstr "" +msgstr "Модифікатори активних блоків" #: src/settings_translation_file.cpp msgid "Active block management interval" -msgstr "" +msgstr "Інтервал керування активним блоком" #: src/settings_translation_file.cpp msgid "Active block range" -msgstr "" +msgstr "Діапазон активних блоків" #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "Діапазон відправлення активних блоків" #: src/settings_translation_file.cpp msgid "" @@ -2120,6 +2155,9 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"Адреса для приєднання.\n" +"Залиште порожнім щоб запустити локальний сервер.\n" +"Зауважте що поле адреси у головному меню має пріоритет над цим налаштуванням." #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." From 3a245e95bede582d5007b7fc89da1cbb4bc19ab4 Mon Sep 17 00:00:00 2001 From: Petter Reinholdtsen Date: Fri, 30 Oct 2020 17:25:40 +0000 Subject: [PATCH 432/624] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 58.3% (788 of 1350 strings) --- po/nb/minetest.po | 53 +++++++++++++++++------------------------------ 1 file changed, 19 insertions(+), 34 deletions(-) diff --git a/po/nb/minetest.po b/po/nb/minetest.po index 279c0684e..124a24c1a 100644 --- a/po/nb/minetest.po +++ b/po/nb/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Norwegian Bokmål (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-27 13:43+0000\n" -"Last-Translator: Allan Nordhøy \n" +"PO-Revision-Date: 2020-10-31 19:26+0000\n" +"Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2.1-dev\n" +"X-Generator: Weblate 4.3.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -172,9 +172,8 @@ msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB er ikke tilgjengelig når Minetest kompileres uten cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Laster..." +msgstr "Laster ned..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -236,38 +235,32 @@ msgid "Altitude chill" msgstr "Temperaturen synker med stigende høyde" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Temperaturen synker med stigende høyde" +msgstr "Tørr høyde" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Biotoplyd" +msgstr "Biotopblanding" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Biotoplyd" +msgstr "Biotop" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Grottelyd" +msgstr "Grotter" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Oktaver" +msgstr "Huler" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Opprett" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informasjon:" +msgstr "Dekorasjoner" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -278,9 +271,8 @@ msgid "Download one from minetest.net" msgstr "Last ned en fra minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Grottelyd" +msgstr "Fangehull" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" @@ -307,9 +299,8 @@ msgid "Hills" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Videodriver" +msgstr "Fuktige elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" @@ -361,9 +352,8 @@ msgid "Reduces humidity with altitude" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Elvestørrelse" +msgstr "Elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" @@ -409,18 +399,16 @@ msgid "Trees and jungle grass" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Elvedybde" +msgstr "Varier elvedybde" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "Advarsel: Den minimale utviklingstesten er tiltenkt utviklere." +msgstr "Advarsel: Utviklingstesten er tiltenkt utviklere." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -640,9 +628,8 @@ msgid "Unable to install a mod as a $1" msgstr "Klarte ikke å installere mod som en $1" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a modpack as a $1" -msgstr "Klarte ikke å installere en modpakke som $1" +msgstr "Klarte ikke å installere en modpakke som en $1" #: builtin/mainmenu/tab_content.lua msgid "Browse online content" @@ -1751,9 +1738,8 @@ msgid "Proceed" msgstr "Fortsett" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "\"Special\" = climb down" -msgstr "«bruk» = klatre ned" +msgstr "«Spesiell» = klatre ned" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" @@ -4073,14 +4059,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for moving the player backward.\n" "Will also disable autoforward, when active.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tast for hurtig gange i raskt modus.\n" +"Tast for å bevege spilleren bakover\n" +"Vil også koble ut automatisk foroverbevegelse, hvis aktiv.\n" "Se http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -6648,7 +6634,6 @@ msgid "Y of flat ground." msgstr "Y-koordinat for flatt land." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." From 2bc2d8480af6a8cfd426af48b19f6744e079c5fc Mon Sep 17 00:00:00 2001 From: Liet Kynes Date: Fri, 30 Oct 2020 17:26:01 +0000 Subject: [PATCH 433/624] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 58.5% (790 of 1350 strings) --- po/nb/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/nb/minetest.po b/po/nb/minetest.po index 124a24c1a..14a04cdcd 100644 --- a/po/nb/minetest.po +++ b/po/nb/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-10-31 19:26+0000\n" -"Last-Translator: Petter Reinholdtsen \n" +"Last-Translator: Liet Kynes \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" @@ -1739,7 +1739,7 @@ msgstr "Fortsett" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "«Spesiell» = klatre ned" +msgstr "«Spesial» = klatre ned" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" From 146b48e2fed1d6ba95fe92b071d5ef63c7d681d3 Mon Sep 17 00:00:00 2001 From: ResuUman Date: Fri, 30 Oct 2020 17:35:54 +0000 Subject: [PATCH 434/624] Translated using Weblate (Polish) Currently translated at 73.3% (990 of 1350 strings) --- po/pl/minetest.po | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/po/pl/minetest.po b/po/pl/minetest.po index 015692182..f1b19a7fb 100644 --- a/po/pl/minetest.po +++ b/po/pl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Polish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-09 12:14+0000\n" -"Last-Translator: Mikołaj Zaremba \n" +"PO-Revision-Date: 2020-10-31 19:26+0000\n" +"Last-Translator: ResuUman \n" "Language-Team: Polish \n" "Language: pl\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.3.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -238,9 +238,8 @@ msgid "Altitude chill" msgstr "Wysokość mrozu" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Wysokość mrozu" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -267,9 +266,8 @@ msgid "Create" msgstr "Utwórz" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Iteracje" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -280,9 +278,8 @@ msgid "Download one from minetest.net" msgstr "Ściągnij taką z minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Minimalna wartość Y lochu" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" @@ -294,9 +291,8 @@ msgid "Floating landmasses in the sky" msgstr "Gęstość gór na latających wyspach" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Poziom wznoszonego terenu" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -321,7 +317,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Jeziora" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" @@ -341,9 +337,8 @@ msgid "Mapgen-specific flags" msgstr "Generator mapy flat flagi" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Szum góry" +msgstr "Góry" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -2388,7 +2383,7 @@ msgstr "Ścieżka czcionki typu Monospace" #: src/settings_translation_file.cpp #, fuzzy msgid "Bold font path" -msgstr "Ścieżka czcionki" +msgstr "Ścieżka fontu pogrubionego." #: src/settings_translation_file.cpp #, fuzzy @@ -2853,14 +2848,13 @@ msgstr "" "Wyższa wartość reprezentuje łagodniejszą mapę normalnych." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the base ground level." -msgstr "Określa obszary drzewiaste oraz ich gęstość." +msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "Defines the depth of the river channel." -msgstr "Określa obszary drzewiaste oraz ich gęstość." +msgstr "Określa głębokość rzek." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2876,7 +2870,7 @@ msgstr "Określa strukturę kanałów rzecznych." #: src/settings_translation_file.cpp #, fuzzy msgid "Defines the width of the river valley." -msgstr "Określa obszary na których drzewa mają jabłka." +msgstr "Określa szerokość doliny rzecznej." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -2977,15 +2971,15 @@ msgid "Dungeon minimum Y" msgstr "Minimalna wartość Y lochu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Minimalna wartość Y lochu" +msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." -msgstr "" +msgstr "Włącz protokół sieciowy IPv6 (dla gry oraz dla jej serwera)." #: src/settings_translation_file.cpp msgid "" @@ -3069,10 +3063,13 @@ msgstr "" "jeżeli następuje połączenie z serwerem." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" +"Uaktywnij \"vertex buffer objects\" aby zmniejszyć wymagania wobec karty " +"grafiki." #: src/settings_translation_file.cpp msgid "" @@ -3328,9 +3325,8 @@ msgid "Floatland tapering distance" msgstr "Podstawowy szum wznoszącego się terenu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Poziom wznoszonego terenu" +msgstr "" #: src/settings_translation_file.cpp msgid "Fly key" From 44b15b1dc80d22111b594567ce9c3803d52a2d95 Mon Sep 17 00:00:00 2001 From: Janar Leas Date: Sat, 7 Nov 2020 05:55:43 +0000 Subject: [PATCH 435/624] Translated using Weblate (Czech) Currently translated at 55.8% (754 of 1350 strings) --- po/cs/minetest.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/po/cs/minetest.po b/po/cs/minetest.po index f710ac43f..5d5e1d1c0 100644 --- a/po/cs/minetest.po +++ b/po/cs/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Czech (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: sfan5 \n" +"PO-Revision-Date: 2020-11-08 06:26+0000\n" +"Last-Translator: Janar Leas \n" "Language-Team: Czech \n" "Language: cs\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3.2\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -5654,9 +5654,8 @@ msgid "Physics" msgstr "Fyzika" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "Klávesa létání" +msgstr "létání" #: src/settings_translation_file.cpp msgid "Pitch move mode" From a66d6bcad4ae436554799354f971634d8591955e Mon Sep 17 00:00:00 2001 From: Janar Leas Date: Sat, 7 Nov 2020 05:10:50 +0000 Subject: [PATCH 436/624] Translated using Weblate (Estonian) Currently translated at 35.7% (482 of 1350 strings) --- po/et/minetest.po | 267 +++++++++++++++++++--------------------------- 1 file changed, 110 insertions(+), 157 deletions(-) diff --git a/po/et/minetest.po b/po/et/minetest.po index 67b8210b3..a0e736bb1 100644 --- a/po/et/minetest.po +++ b/po/et/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Estonian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-05-03 19:14+0000\n" -"Last-Translator: Janar Leas \n" +"PO-Revision-Date: 2020-11-08 06:26+0000\n" +"Last-Translator: Janar Leas \n" "Language-Team: Estonian \n" "Language: et\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.3.2\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Said surma" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Valmis" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -40,7 +40,7 @@ msgstr "Peamenüü" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "Taasta ühendus" +msgstr "Taasühenda" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" @@ -116,7 +116,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Leia rohkem MODe" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -172,9 +172,8 @@ msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Laadimine..." +msgstr "Allalaadimine..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -221,7 +220,7 @@ msgstr "Uuenda" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "Vaade" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -229,42 +228,39 @@ msgstr "Maailm nimega \"$1\" on juba olemas" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Täiendav maastik" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "Külmetus kõrgus" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "Põua kõrgus" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "Loodusvööndi hajumine" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Loodusvööndid" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Koobaste läve" +msgstr "Koopasaalid" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Oktaavid" +msgstr "Koopad" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Loo" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Teave:" +msgstr "Ilmestused" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -275,21 +271,20 @@ msgid "Download one from minetest.net" msgstr "Laadi minetest.net-st üks mäng alla" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Dungeon noise" +msgstr "Keldrid" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Lame maastik" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Taevas hõljuvad saared" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Lendsaared (katseline)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -297,53 +292,51 @@ msgstr "Mäng" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Mitte-fraktaalse maastiku tekitamine: mered ja süvapinnas" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Künkad" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Rõsked jõed" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Suurendab niiskust jõe lähistel" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Järved" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Madal niiskus ja suur kuum põhjustavad madala või kuiva jõesängi" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" msgstr "Kaardi generaator" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen flags" -msgstr "Põlvkonna kaardid" +msgstr "Kaartiloome lipud" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Kaartiloome-põhised lipud" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Mäed" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Muda voog" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Käikude ja koobaste võrgustik" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -351,20 +344,19 @@ msgstr "Mäng valimata" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Ilma jahenemine kõrgemal" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Ilma kuivenemine kõrgemal" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Parem Windowsi nupp" +msgstr "Jõed" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Jõed merekõrgusel" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -373,29 +365,31 @@ msgstr "Seed" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Sujuv loodusvööndi vaheldumine" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Rajatised ilmuvad maastikul (v6 tekitatud puudele ja tihniku rohule mõju ei " +"avaldu)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Struktuurid ilmuvad maastikul, enamasti puud ja teised taimed" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Rohtla, Lagendik" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Rohtla, Lagendik, Tihnik" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Rohtla, Lagendik, Tihnik, Tundra, Laas" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" @@ -403,7 +397,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Puud ja tihniku rohi" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" @@ -414,9 +408,8 @@ msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "Hoiatus: minimaalne arendustest on mõeldud arendajatele." +msgstr "Hoiatus: \"Arendustest\" on mõeldud arendajatele." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -863,7 +856,7 @@ msgstr "Loo normaalkaardistusi" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" -msgstr "Mipmap" +msgstr "KaugVaatEsemeKaart" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" @@ -1092,7 +1085,7 @@ msgstr "- Avalik: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "- PvP: " +msgstr "- Üksteise vastu: " #: src/client/game.cpp msgid "- Server Name: " @@ -1461,9 +1454,8 @@ msgid "Apps" msgstr "Aplikatsioonid" #: src/client/keycode.cpp -#, fuzzy msgid "Backspace" -msgstr "Tagasi" +msgstr "Tagasinihe" #: src/client/keycode.cpp msgid "Caps Lock" @@ -1502,29 +1494,24 @@ msgid "Home" msgstr "Kodu" #: src/client/keycode.cpp -#, fuzzy msgid "IME Accept" -msgstr "Nõustu" +msgstr "Sisendviisiga nõustumine" #: src/client/keycode.cpp -#, fuzzy msgid "IME Convert" -msgstr "Konverteeri" +msgstr "Sisendviisi teisendamine" #: src/client/keycode.cpp -#, fuzzy msgid "IME Escape" -msgstr "Põgene" +msgstr "Sisendviisi paoklahv" #: src/client/keycode.cpp -#, fuzzy msgid "IME Mode Change" -msgstr "Moodi vahetamine" +msgstr "Sisendviisi laadi vahetus" #: src/client/keycode.cpp -#, fuzzy msgid "IME Nonconvert" -msgstr "Konverteerimatta" +msgstr "Sisendviisi mitte-teisendada" #: src/client/keycode.cpp msgid "Insert" @@ -1752,9 +1739,8 @@ msgid "\"Special\" = climb down" msgstr "\"Eriline\" = roni alla" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Autoforward" -msgstr "Automaatedasiliikumine" +msgstr "Iseastuja" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" @@ -2409,9 +2395,8 @@ msgid "Chat key" msgstr "Vestlusklahv" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Vestluse lülitusklahv" +msgstr "Vestlus päeviku täpsus" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2422,9 +2407,8 @@ msgid "Chat message format" msgstr "Vestluse sõnumi formaat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message kick threshold" -msgstr "Vestlussõnumi kick läve" +msgstr "Vestlus sõnumi väljaviskamis lävi" #: src/settings_translation_file.cpp msgid "Chat message max length" @@ -2555,7 +2539,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "ContentDB URL" -msgstr "ContentDB URL" +msgstr "ContentDB aadress" #: src/settings_translation_file.cpp msgid "Continuous forward" @@ -2626,9 +2610,8 @@ msgid "DPI" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Damage" -msgstr "Damage" +msgstr "Vigastused" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2681,9 +2664,8 @@ msgid "Default report format" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Vaikemäng" +msgstr "Vaike lasu hulk" #: src/settings_translation_file.cpp msgid "" @@ -2783,13 +2765,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Desert noise threshold" -msgstr "" +msgstr "Müra künnis lagendikule" #: src/settings_translation_file.cpp msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" +"Lagendikud ilmuvad kui np_biome ületab selle väärtuse.\n" +"Seda eiratakse, kui lipp 'lumistud' on lubatud." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" @@ -2836,9 +2820,8 @@ msgid "Dungeon minimum Y" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Dungeon noise" +msgstr "Müra keldritele" #: src/settings_translation_file.cpp msgid "" @@ -3094,9 +3077,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Filtering" -msgstr "Anisotroopne Filtreerimine" +msgstr "Filtreerimine" #: src/settings_translation_file.cpp msgid "First of 4 2D noises that together define hill/mountain range height." @@ -3127,9 +3109,8 @@ msgid "Floatland minimum Y" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Põlvkonna kaardid" +msgstr "Müra lendsaartele" #: src/settings_translation_file.cpp msgid "Floatland taper exponent" @@ -3245,9 +3226,8 @@ msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Forward key" -msgstr "Edasi" +msgstr "Edasi klahv" #: src/settings_translation_file.cpp msgid "Fourth of 4 2D noises that together define hill/mountain range height." @@ -3323,6 +3303,10 @@ msgid "" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" +"Üldised maailma-loome omadused.\n" +"Maailma loome v6 puhul lipp 'Ilmestused' ei avalda mõju puudele ja \n" +"tihniku rohule, kõigi teiste versioonide puhul mõjutab see lipp \n" +"kõiki ilmestusi (nt: lilled, seened, vetikad, korallid, jne)." #: src/settings_translation_file.cpp msgid "" @@ -3345,14 +3329,12 @@ msgid "Gravity" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground level" -msgstr "Põlvkonna kaardid" +msgstr "Pinna tase" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground noise" -msgstr "Põlvkonna kaardid" +msgstr "Müra pinnasele" #: src/settings_translation_file.cpp msgid "HTTP mods" @@ -3396,9 +3378,8 @@ msgid "Height component of the initial window size." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Height noise" -msgstr "Parem Windowsi nupp" +msgstr "Müra kõrgusele" #: src/settings_translation_file.cpp msgid "Height select noise" @@ -3409,14 +3390,12 @@ msgid "High-precision FPU" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hill steepness" -msgstr "Põlvkonna kaardid" +msgstr "Küngaste järskus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hill threshold" -msgstr "Põlvkonna kaardid" +msgstr "Küngaste lävi" #: src/settings_translation_file.cpp msgid "Hilliness1 noise" @@ -3726,9 +3705,8 @@ msgid "Ignore world errors" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "In-Game" -msgstr "Mäng" +msgstr "Mängu-sisene" #: src/settings_translation_file.cpp msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." @@ -3743,9 +3721,8 @@ msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Inc. volume key" -msgstr "Konsool" +msgstr "Heli valjemaks" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." @@ -3900,9 +3877,8 @@ msgid "Julia z" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Jump key" -msgstr "Hüppamine" +msgstr "Hüppa" #: src/settings_translation_file.cpp msgid "Jumping speed" @@ -4399,14 +4375,12 @@ msgid "Kick players who sent more than X messages per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lake steepness" -msgstr "Põlvkonna kaardid" +msgstr "Sügavus järvedele" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lake threshold" -msgstr "Põlvkonna kaardid" +msgstr "Järvede lävi" #: src/settings_translation_file.cpp msgid "Language" @@ -4429,9 +4403,8 @@ msgid "Large cave proportion flooded" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Large chat console key" -msgstr "Konsool" +msgstr "Suure vestlus-viiba klahv" #: src/settings_translation_file.cpp msgid "Leaves style" @@ -4446,9 +4419,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Left key" -msgstr "Vasak Menüü" +msgstr "Vasak klahv" #: src/settings_translation_file.cpp msgid "" @@ -4579,14 +4551,12 @@ msgid "Lower Y limit of floatlands." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Main menu script" -msgstr "Menüü" +msgstr "Peamenüü skript" #: src/settings_translation_file.cpp -#, fuzzy msgid "Main menu style" -msgstr "Menüü" +msgstr "Peamenüü ilme" #: src/settings_translation_file.cpp msgid "" @@ -4643,6 +4613,11 @@ msgid "" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" +"Maailma-loome v6 spetsiifilised omadused. \n" +"Lipp 'lumistud' võimaldab uudse 5-e loodusvööndi süsteemi.\n" +"Kui lipp 'lumistud' on lubatud, siis võimaldatakse ka tihnikud ning " +"eiratakse \n" +"lippu 'tihnikud'." #: src/settings_translation_file.cpp msgid "" @@ -4677,84 +4652,68 @@ msgid "Mapblock unload timeout" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: Mäestik" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Mäestiku spetsiifilised omadused" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: Lamemaa" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Lamemaa spetsiifilised omadused" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: Fraktaalne" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Fraktaalse maailma spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: V5" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5 specific flags" -msgstr "Põlvkonna kaardid" +msgstr "V5 spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: V6" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6 specific flags" -msgstr "Põlvkonna kaardid" +msgstr "V6 spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: V7" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7 specific flags" -msgstr "Põlvkonna kaardid" +msgstr "V7 spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Valleys" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: Vooremaa" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Valleys specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Vooremaa spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen debug" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: veaproov" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen name" -msgstr "Põlvkonna kaardid" +msgstr "Maailma tekitus-valemi nimi" #: src/settings_translation_file.cpp msgid "Max block generate distance" @@ -4891,9 +4850,8 @@ msgid "Maximum users" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Menus" -msgstr "Menüü" +msgstr "Menüüd" #: src/settings_translation_file.cpp msgid "Mesh cache" @@ -4940,9 +4898,8 @@ msgid "Minimum texture size" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mipmapping" -msgstr "Väga hea kvaliteet" +msgstr "Astmik-tapeetimine" #: src/settings_translation_file.cpp msgid "Mod channels" @@ -4995,9 +4952,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mute key" -msgstr "Vajuta nuppu" +msgstr "Vaigista" #: src/settings_translation_file.cpp msgid "Mute sound" @@ -5564,14 +5520,12 @@ msgid "Server side occlusion culling" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Serverlist URL" -msgstr "Avatud serverite nimekiri:" +msgstr "Võõrustaja-loendi aadress" #: src/settings_translation_file.cpp -#, fuzzy msgid "Serverlist file" -msgstr "Avatud serverite nimekiri:" +msgstr "Võõrustaja-loendi fail" #: src/settings_translation_file.cpp msgid "" @@ -5851,9 +5805,8 @@ msgid "Terrain persistence noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Texture path" -msgstr "Vali graafika:" +msgstr "Tapeedi kaust" #: src/settings_translation_file.cpp msgid "" From f79b240764e5ea2b3905ae5f62ef75f6be238201 Mon Sep 17 00:00:00 2001 From: Nicolae Crefelean Date: Fri, 6 Nov 2020 00:07:52 +0000 Subject: [PATCH 437/624] Translated using Weblate (Romanian) Currently translated at 46.4% (627 of 1350 strings) --- po/ro/minetest.po | 117 ++++++++++++++++++++++++++++------------------ 1 file changed, 71 insertions(+), 46 deletions(-) diff --git a/po/ro/minetest.po b/po/ro/minetest.po index b6f0d813c..cf239c0c8 100644 --- a/po/ro/minetest.po +++ b/po/ro/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Romanian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-09 19:32+0000\n" -"Last-Translator: Larissa Piklor \n" +"PO-Revision-Date: 2020-11-24 11:29+0000\n" +"Last-Translator: Nicolae Crefelean \n" "Language-Team: Romanian \n" "Language: ro\n" @@ -13,7 +13,7 @@ msgstr "" "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 4.2-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -41,11 +41,11 @@ msgstr "Meniul principal" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "Reconectează-te" +msgstr "Reconectare" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "Serverul cere o reconectare :" +msgstr "Serverul cere o reconectare:" #: builtin/mainmenu/common.lua src/client/game.cpp msgid "Loading..." @@ -61,7 +61,7 @@ msgstr "Serverul forțează versiunea protocolului $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "Acest Server suporta versiunile protocolului intre $1 si $2. " +msgstr "Serverul permite versiuni ale protocolului între $1 și $2. " #: builtin/mainmenu/common.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -71,7 +71,7 @@ msgstr "" #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "Suportam doar versiunea de protocol $1." +msgstr "Permitem doar versiunea de protocol $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." @@ -97,7 +97,7 @@ msgstr "Dezactivează toate" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Dezactiveaza pachet mod" +msgstr "Dezactivează modpack-ul" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -105,7 +105,7 @@ msgstr "Activează tot" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Activeaza pachet mod" +msgstr "Activează modpack-ul" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -117,7 +117,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "Căutare Mai Multe Moduri" +msgstr "Găsește mai multe modificări" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -170,7 +170,7 @@ msgstr "Înapoi la meniul principal" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB nu este disponibilă când Minetest e compilat fără cURL" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." @@ -178,7 +178,7 @@ msgstr "Descărcare..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "Nu a putut descărca $1" +msgstr "Nu s-a putut descărca $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -192,7 +192,7 @@ msgstr "Instalează" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "Moduri" +msgstr "Modificări" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" @@ -200,7 +200,7 @@ msgstr "Nu s-au putut prelua pachete" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "Fara rezultate" +msgstr "Fără rezultate" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua @@ -209,7 +209,7 @@ msgstr "Caută" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "Pachete de textură" +msgstr "Pachete de texturi" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" @@ -225,7 +225,7 @@ msgstr "Vizualizare" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "O lume cu numele \"$1\" deja există" +msgstr "Deja există o lume numită \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" @@ -233,12 +233,11 @@ msgstr "Teren suplimentar" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "Altitudine de frisoane" +msgstr "Răcire la altitudine" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Altitudine de frisoane" +msgstr "Ariditate la altitudine" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" @@ -266,7 +265,7 @@ msgstr "Decorațiuni" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "Descărcați un joc, cum ar fi Minetest Game, de pe minetest.net" +msgstr "Descărcați un joc, precum Minetest Game, de pe minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" @@ -2058,6 +2057,10 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"Zgomot 3D care definește structura insulelor plutitoare (floatlands).\n" +"Dacă este modificată valoarea implicită, 'scala' (0.7) ar putea trebui\n" +"să fie ajustată, formarea floatland funcționează optim cu un zgomot\n" +"în intervalul aproximativ -2.0 până la 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2125,9 +2128,8 @@ msgid "ABM interval" msgstr "Interval ABM" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" -msgstr "Limita absolută a cozilor emergente" +msgstr "Limita absolută a cozilor de blocuri procesate" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2184,6 +2186,13 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Ajustează densitatea stratului floatland.\n" +"Mărește valoarea pentru creșterea densității. Poate fi pozitivă sau negativă." +"\n" +"Valoarea = 0.0: 50% din volum este floatland.\n" +"Valoarea = 2.0 (poate fi mai mare în funcție de 'mgv7_np_floatland'; " +"testați\n" +"pentru siguranță) va crea un strat solid floatland." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2405,61 +2414,63 @@ msgstr "Netezirea camerei" #: src/settings_translation_file.cpp msgid "Camera smoothing in cinematic mode" -msgstr "" +msgstr "Cameră fluidă în modul cinematic" #: src/settings_translation_file.cpp msgid "Camera update toggle key" -msgstr "" +msgstr "Tasta de comutare a actualizării camerei" #: src/settings_translation_file.cpp msgid "Cave noise" -msgstr "" +msgstr "Zgomotul peșterilor" #: src/settings_translation_file.cpp msgid "Cave noise #1" -msgstr "" +msgstr "Zgomotul 1 al peșterilor" #: src/settings_translation_file.cpp msgid "Cave noise #2" -msgstr "" +msgstr "Zgomotul 2 al peșterilor" #: src/settings_translation_file.cpp msgid "Cave width" -msgstr "" +msgstr "Lățime peșteri" #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "" +msgstr "Zgomot peșteri1" #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "" +msgstr "Zgomot peșteri2" #: src/settings_translation_file.cpp msgid "Cavern limit" -msgstr "" +msgstr "Limita cavernelor" #: src/settings_translation_file.cpp msgid "Cavern noise" -msgstr "" +msgstr "Zgomotul cavernelor" #: src/settings_translation_file.cpp msgid "Cavern taper" -msgstr "" +msgstr "Subțiere caverne" #: src/settings_translation_file.cpp msgid "Cavern threshold" -msgstr "Pragul cavernei" +msgstr "Pragul cavernelor" #: src/settings_translation_file.cpp msgid "Cavern upper limit" -msgstr "" +msgstr "Limita superioară a cavernelor" #: src/settings_translation_file.cpp msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"Centrul razei de amplificare a curbei de lumină.\n" +"Aici 0.0 este nivelul minim de lumină, iar 1.0 este nivelul maxim." #: src/settings_translation_file.cpp msgid "" @@ -2470,23 +2481,27 @@ msgid "" "be\n" "necessary for smaller screens." msgstr "" +"Modifică interfața meniului principal:\n" +"- Complet: Lumi multiple singleplayer, selector de joc, selector de " +"texturi etc.\n" +"- Simplu: Doar o lume singleplayer, fără selectoare de joc sau texturi.\n" +"Poate fi necesar pentru ecrane mai mici." #: src/settings_translation_file.cpp msgid "Chat font size" -msgstr "" +msgstr "Dimensiunea fontului din chat" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Tasta de chat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Cheia de comutare a chatului" +msgstr "Nivelul de raportare în chat" #: src/settings_translation_file.cpp msgid "Chat message count limit" -msgstr "" +msgstr "Limita mesajelor din chat" #: src/settings_translation_file.cpp msgid "Chat message format" @@ -2498,7 +2513,7 @@ msgstr "Pragul de lansare a mesajului de chat" #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "" +msgstr "Lungimea maximă a unui mesaj din chat" #: src/settings_translation_file.cpp msgid "Chat toggle key" @@ -2510,7 +2525,7 @@ msgstr "Comenzi de chat" #: src/settings_translation_file.cpp msgid "Chunk size" -msgstr "" +msgstr "Dimensiunea unui chunk" #: src/settings_translation_file.cpp msgid "Cinematic mode" @@ -2522,7 +2537,7 @@ msgstr "Tasta modului cinematografic" #: src/settings_translation_file.cpp msgid "Clean transparent textures" -msgstr "" +msgstr "Texturi transparente curate" #: src/settings_translation_file.cpp msgid "Client" @@ -2530,7 +2545,7 @@ msgstr "Client" #: src/settings_translation_file.cpp msgid "Client and Server" -msgstr "" +msgstr "Client și server" #: src/settings_translation_file.cpp msgid "Client modding" @@ -2542,11 +2557,11 @@ msgstr "Restricții de modificare de partea clientului" #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" -msgstr "" +msgstr "Restricția razei de căutare a nodurilor în clienți" #: src/settings_translation_file.cpp msgid "Climbing speed" -msgstr "" +msgstr "Viteza escaladării" #: src/settings_translation_file.cpp msgid "Cloud radius" @@ -2558,7 +2573,7 @@ msgstr "Nori" #: src/settings_translation_file.cpp msgid "Clouds are a client side effect." -msgstr "" +msgstr "Norii sunt un efect pe client." #: src/settings_translation_file.cpp msgid "Clouds in menu" @@ -2578,12 +2593,22 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" +"Listă separată de virgule cu etichete de ascuns din depozitul de conținut.\n" +"\"nonfree\" se poate folosi pentru ascunderea pachetelor care nu sunt " +"'software liber',\n" +"conform definiției Free Software Foundation.\n" +"Puteți specifica și clasificarea conținutului.\n" +"Aceste etichete nu depind de versiunile Minetest.\n" +"Puteți vedea lista completă la https://content.minetest.net/help/" +"content_flags/" #: src/settings_translation_file.cpp msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" +"Listă separată de virgule, cu modificări care au acces la API-uri HTTP,\n" +"care la permit încărcarea și descărcarea de date în/din internet." #: src/settings_translation_file.cpp msgid "" From 6553777982b0420016d60826e59260dc10cfcda3 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 9 Nov 2020 14:02:27 +0000 Subject: [PATCH 438/624] Translated using Weblate (Greek) Currently translated at 1.6% (22 of 1350 strings) --- po/el/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/el/minetest.po b/po/el/minetest.po index 0b08e0d98..de5f50fd0 100644 --- a/po/el/minetest.po +++ b/po/el/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Greek (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-09-30 19:41+0000\n" -"Last-Translator: THANOS SIOURDAKIS \n" +"PO-Revision-Date: 2020-11-10 14:28+0000\n" +"Last-Translator: sfan5 \n" "Language-Team: Greek \n" "Language: el\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1041,7 +1041,7 @@ msgstr "" #. When in doubt, test your translation. #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "yes" +msgstr "no" #: src/client/game.cpp msgid "" From 12eb5fcc48ed807daccd708e1bb47f20f3ea79ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=95=98=EC=98=81=EA=B9=80?= Date: Wed, 11 Nov 2020 09:31:31 +0000 Subject: [PATCH 439/624] Translated using Weblate (Korean) Currently translated at 39.4% (532 of 1350 strings) --- po/ko/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/ko/minetest.po b/po/ko/minetest.po index c28e410a4..11e39935e 100644 --- a/po/ko/minetest.po +++ b/po/ko/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Korean (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-11-12 10:28+0000\n" +"Last-Translator: 하영김 \n" "Language-Team: Korean \n" "Language: ko\n" @@ -12,7 +12,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.9-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -25,7 +25,7 @@ msgstr "사망했습니다." #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "확인" #: builtin/fstk/ui.lua #, fuzzy From 0b6614839cc4c0b7c5bc01079a98396425374817 Mon Sep 17 00:00:00 2001 From: kang Date: Fri, 13 Nov 2020 04:46:58 +0000 Subject: [PATCH 440/624] Translated using Weblate (Korean) Currently translated at 39.4% (533 of 1350 strings) --- po/ko/minetest.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/po/ko/minetest.po b/po/ko/minetest.po index 11e39935e..91325ed37 100644 --- a/po/ko/minetest.po +++ b/po/ko/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Korean (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-11-12 10:28+0000\n" -"Last-Translator: 하영김 \n" +"PO-Revision-Date: 2020-11-14 18:28+0000\n" +"Last-Translator: kang \n" "Language-Team: Korean \n" "Language: ko\n" @@ -19,9 +19,8 @@ msgid "Respawn" msgstr "리스폰" #: builtin/client/death_formspec.lua src/client/game.cpp -#, fuzzy msgid "You died" -msgstr "사망했습니다." +msgstr "사망했습니다" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" From 92c12a1fc8b62e4f422d6cc28d1568a7aeacb3c7 Mon Sep 17 00:00:00 2001 From: Alex Parra Date: Thu, 12 Nov 2020 22:16:21 +0000 Subject: [PATCH 441/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 92.1% (1244 of 1350 strings) --- po/pt_BR/minetest.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index cc762d2f2..cd8d6f415 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-30 19:38+0000\n" -"Last-Translator: Celio Alves \n" +"PO-Revision-Date: 2020-11-14 18:28+0000\n" +"Last-Translator: Alex Parra \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.2.1-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -2376,9 +2376,8 @@ msgid "Block send optimize distance" msgstr "Distância otimizada de envio de bloco" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold and italic font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho de fonte em negrito e itálico" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" From 8dea5fd3b32909070eee74cc36fc035afae8457c Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Fri, 13 Nov 2020 17:38:46 +0000 Subject: [PATCH 442/624] Translated using Weblate (Russian) Currently translated at 100.0% (1350 of 1350 strings) --- po/ru/minetest.po | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index f9be037aa..e5a039574 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-10-22 14:28+0000\n" -"Last-Translator: Maksim Gamarnik \n" +"PO-Revision-Date: 2020-11-14 18:28+0000\n" +"Last-Translator: Andrei Stepanov \n" "Language-Team: Russian \n" "Language: ru\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.3.1\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1981,12 +1981,13 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" -"(Х,Y,Z) шкала фрактала в нодах.\n" -"Фактический фрактальный размер будет в 2-3 раза больше.\n" -"Эти числа могут быть очень большими, фракталу нет нужды заполнять мир.\n" -"Увеличьте их, чтобы увеличить «масштаб» детали фрактала.\n" -"Для вертикально сжатой фигуры, что подходит\n" -"острову, сделайте все 3 числа равными для необработанной формы." +"(Х,Y,Z) масштаб фрактала в нодах.\n" +"Фактический размер фрактала будет в 2-3 раза больше.\n" +"Эти числа могут быть очень большими, фракталу нет нужды\n" +"заполнять мир. Увеличьте их, чтобы увеличить «масштаб»\n" +"детали фрактала. По умолчанию значения подходят для\n" +"вертикально сжатой фигуры, что подходит острову, для\n" +"необработанной формы сделайте все 3 значения равными." #: src/settings_translation_file.cpp msgid "" @@ -2098,9 +2099,10 @@ msgstr "" "- anaglyph: голубой/пурпурный цвет в 3D.\n" "- interlaced: чётные/нечётные линии отображают два разных кадра для " "экранов, поддерживающих поляризацию.\n" -"- topbottom: Разделение экрана верх/низ\n" +"- topbottom: Разделение экрана верх/низ.\n" "- sidebyside: Разделение экрана право/лево.\n" -"- pageflip: Четырёхкратная буферизация (QuadBuffer).\n" +"- crossview: 3D на основе автостереограммы.\n" +"- pageflip: 3D на основе четырёхкратной буферизации.\n" "Примечание: в режиме interlaced шейдеры должны быть включены." #: src/settings_translation_file.cpp @@ -6119,7 +6121,6 @@ msgid "Selection box width" msgstr "Толщина рамки выделения" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Selects one of 18 fractal types.\n" "1 = 4D \"Roundy\" Mandelbrot set.\n" From 27441874e492d2cd6e13d052acb21b59e32077ab Mon Sep 17 00:00:00 2001 From: HunSeongPark Date: Mon, 16 Nov 2020 02:22:05 +0000 Subject: [PATCH 443/624] Translated using Weblate (Korean) Currently translated at 47.3% (639 of 1350 strings) --- po/ko/minetest.po | 1435 +++++++++++++++++++-------------------------- 1 file changed, 595 insertions(+), 840 deletions(-) diff --git a/po/ko/minetest.po b/po/ko/minetest.po index 91325ed37..7801daebb 100644 --- a/po/ko/minetest.po +++ b/po/ko/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Korean (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-11-14 18:28+0000\n" -"Last-Translator: kang \n" +"PO-Revision-Date: 2020-11-28 23:29+0000\n" +"Last-Translator: HunSeongPark \n" "Language-Team: Korean \n" "Language: ko\n" @@ -27,12 +27,10 @@ msgid "OK" msgstr "확인" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Lua 스크립트에서 오류가 발생했습니다. 해당 모드:" +msgstr "Lua 스크립트에서 오류가 발생했습니다:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" msgstr "오류가 발생했습니다:" @@ -88,71 +86,62 @@ msgstr "취소" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "필수적인 모드:" +msgstr "종속성:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" msgstr "모두 비활성화" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable modpack" -msgstr "비활성화됨" +msgstr "모드 팩 비활성화" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" msgstr "모두 활성화" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Enable modpack" -msgstr "모드 팩 이름 바꾸기:" +msgstr "모드 팩 활성화" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"\"$1\"은(는) 사용할 수 없는 문자이기에 모드를 활성화하지 못 했습니다. 이름에" -"는 [a-z0-9_]만 사용할 수 있습니다." +"\"$1\"은(는) 사용할 수 없는 문자이기에 모드를 활성화하지 못했습니다. 이름에는 [a-z,0-9,_]만 사용할 수 있습니다." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "더 많은 모드 찾기" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" msgstr "모드:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "선택적인 모드:" +msgstr "종속성 없음 (옵션)" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No game description provided." -msgstr "모드 설명이 없습니다" +msgstr "게임 설명이 제공되지 않았습니다." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "요구사항 없음." +msgstr "요구사항 없음" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No modpack description provided." -msgstr "모드 설명이 없습니다" +msgstr "모드 설명이 제공되지 않았습니다." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "선택적인 모드:" +msgstr "선택되지 않은 종속성" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "선택적인 모드:" +msgstr "종속성 선택:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp @@ -172,23 +161,20 @@ msgid "All packages" msgstr "모든 패키지" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Back to Main Menu" -msgstr "주 메뉴" +msgstr "주 메뉴로 돌아가기" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "cURL 없이 Minetest를 컴파일한 경우 ContentDB를 사용할 수 없습니다" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "불러오는 중..." +msgstr "다운 받는 중..." #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Failed to download $1" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1을 다운로드하는 데에 실패했습니다" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -218,14 +204,12 @@ msgid "Search" msgstr "찾기" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Texture packs" -msgstr "텍스쳐 팩" +msgstr "텍스처 팩" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Uninstall" -msgstr "설치" +msgstr "제거" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" @@ -233,80 +217,71 @@ msgstr "업데이트" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "보기" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "\"$1\" 이름의 세계가 이미 존재합니다" +msgstr "\"$1\" 이름의 세계은(는) 이미 존재합니다" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "추가 지형" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "한랭 고도" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "건조한 고도" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "강 소리" +msgstr "혼합 생물 군계" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "강 소리" +msgstr "생물 군계" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "동굴 잡음 #1" +msgstr "석회동굴" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "동굴 잡음 #1" +msgstr "동굴" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "만들기" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "모드 정보:" +msgstr "장식" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "minetest.net에서 minetest_game 같은 서브 게임을 다운로드하세요." +msgstr "minetest.net에서 Minetest Game 같은 서브 게임을 다운로드하세요" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" msgstr "minetest.net에서 다운로드 하세요" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "강 소리" +msgstr "던전" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "평평한 지형" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Floatland의 산 밀집도" +msgstr "하늘에 떠있는 광대한 대지" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Floatland의 높이" +msgstr "평평한 땅 (실험용)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -314,28 +289,27 @@ msgstr "게임" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "추상적이지 않은 지형 생성: 바다와 지하" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "언덕" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "비디오 드라이버" +msgstr "습한 강" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "강 주변의 습도 증가" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "호수" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "낮은 습도와 높은 열로 인해 얕거나 건조한 강이 발생함" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -343,46 +317,43 @@ msgstr "세계 생성기" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "세계 생성기 신호" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Mapgen 이름" +msgstr "세계 생성기-특정 신호" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "산" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "진흙 흐름" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "터널과 동굴의 네트워크" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "No game selected" -msgstr "범위 선택" +msgstr "선택된 게임이 없습니다" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "고도에 따른 열 감소" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "고도에 따른 습도 감소" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "강 크기" +msgstr "강" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "해수면 강" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -391,61 +362,57 @@ msgstr "시드" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "생물 군계 간 부드러운 전환" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "지형에 나타나는 구조물 (v6에서 만든 나무와 정글 및 풀에는 영향을 주지 않음)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "지형에 나타나는 구조물(일반적으로 나무와 식물)" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "온대, 사막" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "온대, 사막, 정글" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "온대, 사막, 정글, 툰드라(한대), 침엽수 삼림 지대" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "지형 높이" +msgstr "침식된 지형" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "나무와 정글 , 풀" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "강 깊이" +msgstr "강 깊이 변화" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "지하의 큰 동굴의 깊이 변화" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "경고: 'minimal develop test'는 개발자를 위한 것입니다." +msgstr "경고: Development Test는 개발자를 위한 모드입니다." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "세계 이름" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "You have no games installed." -msgstr "서브게임을 설치하지 않았습니다." +msgstr "게임이 설치되어 있지 않습니다." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" @@ -458,14 +425,12 @@ msgid "Delete" msgstr "삭제" #: builtin/mainmenu/dlg_delete_content.lua -#, fuzzy msgid "pkgmgr: failed to delete \"$1\"" -msgstr "Modmgr: \"$1\"을(를) 삭제하지 못했습니다" +msgstr "pkgmgr: \"$1\"을(를) 삭제하지 못했습니다" #: builtin/mainmenu/dlg_delete_content.lua -#, fuzzy msgid "pkgmgr: invalid path \"$1\"" -msgstr "Modmgr: \"$1\"을(를) 인식할 수 없습니다" +msgstr "pkgmgr: 잘못된 경로\"$1\"" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" @@ -483,16 +448,15 @@ msgstr "모드 팩 이름 바꾸기:" msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." -msgstr "" +msgstr "이 모드팩에는 modpack.conf에 명시적인 이름이 부여되어 있으며, 이는 여기서 이름을 바꾸는 것을 적용하지 않습니다." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" msgstr "(설정에 대한 설명이 없습니다)" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "2D Noise" -msgstr "소리" +msgstr "2차원 소음" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" @@ -515,20 +479,18 @@ msgid "Enabled" msgstr "활성화됨" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Lacunarity" -msgstr "보안" +msgstr "빈약도" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" -msgstr "" +msgstr "옥타브" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" -msgstr "" +msgstr "오프셋" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Persistance" msgstr "플레이어 전송 거리" @@ -546,17 +508,15 @@ msgstr "기본값 복원" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" -msgstr "" +msgstr "스케일" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select directory" -msgstr "선택한 모드 파일:" +msgstr "경로를 선택하세요" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select file" -msgstr "선택한 모드 파일:" +msgstr "파일 선택" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" @@ -572,27 +532,27 @@ msgstr "값이 $1을 초과하면 안 됩니다." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" -msgstr "" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" -msgstr "" +msgstr "X 분산" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" -msgstr "" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "" +msgstr "Y 분산" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" -msgstr "" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" -msgstr "" +msgstr "Z 분산" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". @@ -600,15 +560,14 @@ msgstr "" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" -msgstr "" +msgstr "절댓값" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "defaults" -msgstr "기본 게임" +msgstr "기본값" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -616,115 +575,95 @@ msgstr "기본 게임" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" -msgstr "" +msgstr "맵 부드러움" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "$1 (Enabled)" -msgstr "활성화됨" +msgstr "$1 (활성화됨)" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "$1 mods" -msgstr "3D 모드" +msgstr "$1 모드" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" msgstr "$1을 $2에 설치하는데 실패했습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install Mod: Unable to find real mod name for: $1" msgstr "모드 설치: $1를(을) 찾을 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "설치 모드: 모드 팩 $1 (이)의 올바른 폴더이름을 찾을 수 없습니다" +msgstr "모드 설치: 모드 팩 $1 (이)의 올바른 폴더이름을 찾을 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" -"\n" -"모드 설치: \"$1\"는(은) 지원 되지 않는 파일 형식 이거나 깨진 압축 파일입니다" +msgstr "모드 설치: \"$1\"는(은) 지원 되지 않는 파일 형식 이거나 손상된 압축 파일입니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install: file: \"$1\"" msgstr "모드 설치: 파일: \"$1\"" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to find a valid mod or modpack" msgstr "설치 모드: 모드 팩 $1 (이)의 올바른 폴더이름을 찾을 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a $1 as a texture pack" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1을 텍스쳐팩으로 설치할 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a game as a $1" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1을 설치할 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a mod as a $1" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1 모드를 설치할 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a modpack as a $1" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1 모드팩을 설치할 수 없습니다" #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "온라인 컨텐츠 검색" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Content" -msgstr "계속" +msgstr "컨텐츠" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Disable Texture Pack" -msgstr "선택한 텍스쳐 팩:" +msgstr "비활성화된 텍스쳐 팩" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Information:" -msgstr "모드 정보:" +msgstr "정보:" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Installed Packages:" -msgstr "설치한 모드:" +msgstr "설치된 패키지:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." msgstr "요구사항 없음." #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "No package description available" -msgstr "모드 설명이 없습니다" +msgstr "사용 가능한 패키지 설명이 없습니다" #: builtin/mainmenu/tab_content.lua msgid "Rename" msgstr "이름 바꾸기" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Uninstall Package" -msgstr "선택한 모드 삭제" +msgstr "패키지 삭제" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Use Texture Pack" -msgstr "텍스쳐 팩" +msgstr "텍스쳐 팩 사용" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" @@ -747,9 +686,8 @@ msgid "Previous Core Developers" msgstr "이전 코어 개발자들" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Announce Server" -msgstr "서버 발표" +msgstr "서버 알리기" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" @@ -768,18 +706,16 @@ msgid "Enable Damage" msgstr "데미지 활성화" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Host Game" -msgstr "게임 호스트하기" +msgstr "호스트 게임" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Host Server" -msgstr "서버 호스트하기" +msgstr "호스트 서버" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "ContentDB에서 게임 설치" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -810,9 +746,8 @@ msgid "Server Port" msgstr "서버 포트" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Start Game" -msgstr "게임 호스트하기" +msgstr "게임 시작" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" @@ -839,9 +774,8 @@ msgid "Favorite" msgstr "즐겨찾기" #: builtin/mainmenu/tab_online.lua -#, fuzzy msgid "Join Game" -msgstr "게임 호스트하기" +msgstr "게임 참가" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" @@ -873,9 +807,8 @@ msgid "8x" msgstr "8 배속" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "All Settings" -msgstr "설정" +msgstr "모든 설정" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" @@ -886,7 +819,6 @@ msgid "Are you sure to reset your singleplayer world?" msgstr "싱글 플레이어 월드를 리셋하겠습니까?" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Autosave Screen Size" msgstr "스크린 크기 자동 저장" @@ -911,9 +843,8 @@ msgid "Fancy Leaves" msgstr "아름다운 나뭇잎 효과" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Generate Normal Maps" -msgstr "Normalmaps 생성" +msgstr "Normal maps 생성" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" @@ -968,9 +899,8 @@ msgid "Reset singleplayer world" msgstr "싱글 플레이어 월드 초기화" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Screen:" -msgstr "스크린:" +msgstr "화면:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" @@ -1005,9 +935,8 @@ msgid "Tone Mapping" msgstr "톤 매핑" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Touchthreshold: (px)" -msgstr "터치임계값 (픽셀)" +msgstr "터치 임계값: (픽셀)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" @@ -1018,9 +947,8 @@ msgid "Waving Leaves" msgstr "움직이는 나뭇잎 효과" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "움직이는 Node" +msgstr "물 등의 물결효과" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" @@ -1096,7 +1024,7 @@ msgstr "이름을 선택하세요!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "" +msgstr "패스워드 파일을 여는데 실패했습니다: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " @@ -1123,9 +1051,8 @@ msgstr "" "자세한 내용은 debug.txt을 확인 합니다." #: src/client/game.cpp -#, fuzzy msgid "- Address: " -msgstr "바인딩 주소" +msgstr "- 주소: " #: src/client/game.cpp msgid "- Creative Mode: " @@ -1144,56 +1071,49 @@ msgid "- Port: " msgstr "- 포트: " #: src/client/game.cpp -#, fuzzy msgid "- Public: " -msgstr "일반" +msgstr "- 공개: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "- PvP: " +msgstr "- Player vs Player: " #: src/client/game.cpp msgid "- Server Name: " msgstr "- 서버 이름: " #: src/client/game.cpp -#, fuzzy msgid "Automatic forward disabled" -msgstr "앞으로 가는 키" +msgstr "자동 전진 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Automatic forward enabled" -msgstr "앞으로 가는 키" +msgstr "자동 전진 활성화" #: src/client/game.cpp -#, fuzzy msgid "Camera update disabled" -msgstr "카메라 업데이트 토글 키" +msgstr "카메라 업데이트 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Camera update enabled" -msgstr "카메라 업데이트 토글 키" +msgstr "카메라 업데이트 활성화" #: src/client/game.cpp msgid "Change Password" msgstr "비밀번호 변경" #: src/client/game.cpp -#, fuzzy msgid "Cinematic mode disabled" -msgstr "시네마틱 모드 스위치" +msgstr "시네마틱 모드 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Cinematic mode enabled" -msgstr "시네마틱 모드 스위치" +msgstr "시네마틱 모드 활성화" #: src/client/game.cpp msgid "Client side scripting is disabled" -msgstr "" +msgstr "클라이언트 스크립트가 비활성화됨" #: src/client/game.cpp msgid "Connecting to server..." @@ -1204,7 +1124,7 @@ msgid "Continue" msgstr "계속" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1221,16 +1141,20 @@ msgid "" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" -"기본 컨트롤:-WASD: 이동\n" -"-스페이스: 점프/오르기\n" -"-쉬프트:살금살금/내려가기\n" -"-Q: 아이템 드롭\n" -"-I: 인벤토리\n" -"-마우스: 돌아보기/보기\n" -"-마우스 왼쪽: 파내기/공격\n" -"-마우스 오른쪽: 배치/사용\n" -"-마우스 휠: 아이템 선택\n" -"-T: 채팅\n" +"조작:\n" +"-%s: 앞으로 이동\n" +"-%s:뒤로 이동\n" +"-%s:왼쪽으로 이동\n" +"-%s:오른쪽으로 이동\n" +"-%s: 점프/오르기\n" +"-%s:조용히 걷기/내려가기\n" +"-%s:아이템 버리기\n" +"-%s:인벤토리\n" +"-마우스: 돌기/보기\n" +"-마우스 왼쪽 클릭: 땅파기/펀치\n" +"-마우스 오른쪽 클릭: 두기/사용하기\n" +"-마우스 휠:아이템 선택\n" +"-%s: 채팅\n" #: src/client/game.cpp msgid "Creating client..." @@ -1242,16 +1166,15 @@ msgstr "서버 만드는 중..." #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "디버그 정보 및 프로파일러 그래프 숨기기" #: src/client/game.cpp -#, fuzzy msgid "Debug info shown" -msgstr "디버그 정보 토글 키" +msgstr "디버그 정보 표시" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgstr "디버그 정보, 프로파일러 그래프 , 선 표현 숨김" #: src/client/game.cpp msgid "" @@ -1283,11 +1206,11 @@ msgstr "" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "" +msgstr "제한없는 시야 범위 비활성화" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "" +msgstr "제한없는 시야 범위 활성화" #: src/client/game.cpp msgid "Exit to Menu" @@ -1298,42 +1221,36 @@ msgid "Exit to OS" msgstr "게임 종료" #: src/client/game.cpp -#, fuzzy msgid "Fast mode disabled" -msgstr "고속 모드 속도" +msgstr "고속 모드 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Fast mode enabled" -msgstr "고속 모드 속도" +msgstr "고속 모드 활성화" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" +msgstr "고속 모드 활성화(참고 : '고속'에 대한 권한 없음)" #: src/client/game.cpp -#, fuzzy msgid "Fly mode disabled" -msgstr "고속 모드 속도" +msgstr "비행 모드 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Fly mode enabled" -msgstr "데미지 활성화" +msgstr "비행 모드 활성화" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" +msgstr "비행 모드 활성화 (참고 : '비행'에 대한 권한 없음)" #: src/client/game.cpp -#, fuzzy msgid "Fog disabled" -msgstr "비활성화됨" +msgstr "안개 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Fog enabled" -msgstr "활성화됨" +msgstr "안개 활성화" #: src/client/game.cpp msgid "Game info:" @@ -1344,9 +1261,8 @@ msgid "Game paused" msgstr "게임 일시정지" #: src/client/game.cpp -#, fuzzy msgid "Hosting server" -msgstr "서버 만드는 중..." +msgstr "호스팅 서버" #: src/client/game.cpp msgid "Item definitions..." @@ -1366,49 +1282,47 @@ msgstr "MiB/s" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "" +msgstr "게임 또는 모드에 의해 현재 미니맵 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Minimap hidden" -msgstr "미니맵 키" +msgstr "미니맵 숨김" #: src/client/game.cpp msgid "Minimap in radar mode, Zoom x1" -msgstr "" +msgstr "레이더 모드의 미니맵, 1배 확대" #: src/client/game.cpp msgid "Minimap in radar mode, Zoom x2" -msgstr "" +msgstr "레이더 모드의 미니맵, 2배 확대" #: src/client/game.cpp msgid "Minimap in radar mode, Zoom x4" -msgstr "" +msgstr "레이더 모드의 미니맵, 4배 확대" #: src/client/game.cpp msgid "Minimap in surface mode, Zoom x1" -msgstr "" +msgstr "표면 모드의 미니맵, 1배 확대" #: src/client/game.cpp msgid "Minimap in surface mode, Zoom x2" -msgstr "" +msgstr "표면 모드의 미니맵, 2배 확대" #: src/client/game.cpp msgid "Minimap in surface mode, Zoom x4" -msgstr "" +msgstr "표면 모드의 미니맵, 4배 확대" #: src/client/game.cpp msgid "Noclip mode disabled" -msgstr "" +msgstr "Noclip 모드 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Noclip mode enabled" -msgstr "데미지 활성화" +msgstr "Noclip 모드 활성화" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" +msgstr "Noclip 모드 활성화 (참고 : 'noclip'에 대한 권한 없음)" #: src/client/game.cpp msgid "Node definitions..." @@ -1424,20 +1338,19 @@ msgstr "켜기" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "" +msgstr "피치 이동 모드 비활성화" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "" +msgstr "피치 이동 모드 활성화" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "프로파일러 그래프 보이기" #: src/client/game.cpp -#, fuzzy msgid "Remote server" -msgstr "원격 포트" +msgstr "원격 서버" #: src/client/game.cpp msgid "Resolving address..." @@ -1456,88 +1369,83 @@ msgid "Sound Volume" msgstr "볼륨 조절" #: src/client/game.cpp -#, fuzzy msgid "Sound muted" -msgstr "볼륨 조절" +msgstr "음소거" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "사운드 시스템 비활성화" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "본 빌드에서 지원되지 않는 사운드 시스템" #: src/client/game.cpp -#, fuzzy msgid "Sound unmuted" -msgstr "볼륨 조절" +msgstr "음소거 해제" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "Viewing range changed to %d" -msgstr "시야 범위" +msgstr "시야 범위 %d로 바꿈" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "시야 범위 최대치 : %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "시야 범위 최소치 : %d" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr "볼륨 %d%%로 바꿈" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "" +msgstr "선 표면 보이기" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "게임 또는 모드에 의해 현재 확대 비활성화" #: src/client/game.cpp msgid "ok" msgstr "확인" #: src/client/gameui.cpp -#, fuzzy msgid "Chat hidden" -msgstr "채팅" +msgstr "채팅 숨기기" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" +msgstr "채팅 보이기" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "HUD 숨기기" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "HUD 보이기" #: src/client/gameui.cpp -#, fuzzy msgid "Profiler hidden" -msgstr "프로파일러" +msgstr "프로파일러 숨기기" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "프로파일러 보이기 (%d중 %d 페이지)" #: src/client/keycode.cpp msgid "Apps" msgstr "애플리케이션" #: src/client/keycode.cpp -#, fuzzy msgid "Backspace" msgstr "뒤로" @@ -1562,9 +1470,8 @@ msgid "End" msgstr "끝" #: src/client/keycode.cpp -#, fuzzy msgid "Erase EOF" -msgstr "OEF를 지우기" +msgstr "EOF 지우기" #: src/client/keycode.cpp msgid "Execute" @@ -1588,7 +1495,7 @@ msgstr "IME 변환" #: src/client/keycode.cpp msgid "IME Escape" -msgstr "" +msgstr "IME 종료" #: src/client/keycode.cpp msgid "IME Mode Change" @@ -1608,7 +1515,7 @@ msgstr "왼쪽" #: src/client/keycode.cpp msgid "Left Button" -msgstr "왼쪽된 버튼" +msgstr "왼쪽 버튼" #: src/client/keycode.cpp msgid "Left Control" @@ -1636,7 +1543,6 @@ msgid "Middle Button" msgstr "가운데 버튼" #: src/client/keycode.cpp -#, fuzzy msgid "Num Lock" msgstr "Num Lock" @@ -1702,20 +1608,19 @@ msgstr "숫자 키패드 9" #: src/client/keycode.cpp msgid "OEM Clear" -msgstr "" +msgstr "OEM 초기화" #: src/client/keycode.cpp msgid "Page down" -msgstr "" +msgstr "페이지 내리기" #: src/client/keycode.cpp msgid "Page up" -msgstr "" +msgstr "페이지 올리기" #: src/client/keycode.cpp -#, fuzzy msgid "Pause" -msgstr "일시 중지" +msgstr "일시 정지" #: src/client/keycode.cpp msgid "Play" @@ -1723,9 +1628,8 @@ msgstr "시작" #. ~ "Print screen" key #: src/client/keycode.cpp -#, fuzzy msgid "Print" -msgstr "인쇄" +msgstr "출력" #: src/client/keycode.cpp msgid "Return" @@ -1756,7 +1660,6 @@ msgid "Right Windows" msgstr "오른쪽 창" #: src/client/keycode.cpp -#, fuzzy msgid "Scroll Lock" msgstr "스크롤 락" @@ -1778,9 +1681,8 @@ msgid "Snapshot" msgstr "스냅샷" #: src/client/keycode.cpp -#, fuzzy msgid "Space" -msgstr "스페이스" +msgstr "스페이스바" #: src/client/keycode.cpp msgid "Tab" @@ -1808,7 +1710,7 @@ msgstr "비밀번호가 맞지 않습니다!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "등록하고 참여" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1819,33 +1721,33 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" +"당신은 처음 \"%s\"라는 이름으로 이 서버에 참여하려고 합니다. \n" +"계속한다면, 자격이 갖춰진 새 계정이 이 서버에 생성됩니다. \n" +"비밀번호를 다시 입력하고 '등록 하고 참여'를 누르거나 '취소'를 눌러 중단하십시오." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "계속하기" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "\"Special\" = climb down" -msgstr "\"Use\" = 내려가기" +msgstr "\"특별함\" = 아래로 타고 내려가기" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Autoforward" -msgstr "앞으로" +msgstr "자동전진" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "" +msgstr "자동 점프" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" msgstr "뒤로" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Change camera" -msgstr "키 변경" +msgstr "카메라 변경" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" @@ -1860,9 +1762,8 @@ msgid "Console" msgstr "콘솔" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Dec. range" -msgstr "시야 범위" +msgstr "범위 감소" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" @@ -1881,9 +1782,8 @@ msgid "Forward" msgstr "앞으로" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Inc. range" -msgstr "시야 범위" +msgstr "범위 증가" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" @@ -1907,9 +1807,8 @@ msgstr "" "Keybindings. (이 메뉴를 고정하려면 minetest.cof에서 stuff를 제거해야합니다.)" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Local command" -msgstr "채팅 명렁어" +msgstr "지역 명령어" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" @@ -1937,17 +1836,15 @@ msgstr "살금살금" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" +msgstr "특별함" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle HUD" -msgstr "비행 스위치" +msgstr "HUD 토글" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle chat log" -msgstr "고속 스위치" +msgstr "채팅 기록 토글" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" @@ -1958,23 +1855,20 @@ msgid "Toggle fly" msgstr "비행 스위치" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle fog" -msgstr "비행 스위치" +msgstr "안개 토글" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle minimap" -msgstr "자유시점 스위치" +msgstr "미니맵 토글" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" msgstr "자유시점 스위치" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "고속 스위치" +msgstr "피치 이동 토글" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -2001,7 +1895,6 @@ msgid "Exit" msgstr "나가기" #: src/gui/guiVolumeChange.cpp -#, fuzzy msgid "Muted" msgstr "음소거" @@ -2027,6 +1920,8 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android) 가상 조이스틱의 위치를 수정합니다.\n" +"비활성화하면, 가상 조이스틱이 첫번째 터치 위치의 중앙에 위치합니다." #: src/settings_translation_file.cpp msgid "" @@ -2034,6 +1929,8 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" +"(Android) 가상 조이스틱을 사용하여 \"aux\"버튼을 트리거합니다.\n" +"활성화 된 경우 가상 조이스틱은 메인 서클에서 벗어날 때 \"aux\"버튼도 탭합니다." #: src/settings_translation_file.cpp msgid "" @@ -2046,6 +1943,14 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X, Y, Z) '스케일' 단위로 세계 중심을 기준으로 프랙탈 오프셋을 정합니다.\n" +"원하는 지점을 (0, 0)으로 이동하여 적합한 스폰 지점을 만들거나 \n" +"'스케일'을 늘려 원하는 지점에서 '확대'할 수 있습니다.\n" +"기본값은 기본 매개 변수가있는 Mandelbrot 세트에 적합한 스폰 지점에 맞게 조정되어 있으며 \n" +"다른 상황에서 변경해야 할 수도 있습니다. \n" +"범위는 대략 -2 ~ 2입니다. \n" +"노드의 오프셋에 대해\n" +"'스케일'을 곱합니다." #: src/settings_translation_file.cpp msgid "" @@ -2057,40 +1962,49 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" +"노드에서 프랙탈의 (X, Y, Z) 스케일.\n" +"실제 프랙탈 크기는 2 ~ 3 배 더 큽니다.\n" +"이 숫자는 매우 크게 만들 수 있으며 프랙탈은 세계에 맞지 않아도됩니다.\n" +"프랙탈의 세부 사항을 '확대'하도록 늘리십시오.\n" +"기본값은 섬에 적합한 수직으로 쪼개진 모양이며 \n" +"기존 모양에 대해 3 개의 숫자를 \n" +"모두 동일하게 설정합니다." #: src/settings_translation_file.cpp msgid "" "0 = parallax occlusion with slope information (faster).\n" "1 = relief mapping (slower, more accurate)." msgstr "" +"0 = 경사 정보가 존재 (빠름).\n" +"1 = 릴리프 매핑 (더 느리고 정확함)." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "산의 모양 / 크기를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "언덕의 모양 / 크기를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "계단 형태 산의 모양 / 크기를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "능선 산맥의 크기 / 발생정도를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "언덕의 크기 / 발생정도를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "계단 형태의 산맥의 크기 / 발생정도를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "강 계곡과 채널에 위치한 2D 노이즈." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2101,19 +2015,20 @@ msgid "3D mode" msgstr "3D 모드" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Normalmaps 강도" +msgstr "3D 모드 시차 강도" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "거대한 동굴을 정의하는 3D 노이즈." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"산의 구조와 높이를 정의하는 3D 노이즈.\n" +"또한 수상 지형 산악 지형의 구조를 정의합니다." #: src/settings_translation_file.cpp msgid "" @@ -2122,25 +2037,28 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"플롯랜드의 구조를 정의하는 3D 노이즈.\n" +"기본값에서 변경하면 노이즈 '스케일'(기본값 0.7)이 필요할 수 있습니다.\n" +"이 소음의 값 범위가 약 -2.0 ~ 2.0 일 때 플로 트랜드 테이퍼링이 가장 잘 작동하므로 \n" +"조정해야합니다." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "강 협곡 벽의 구조를 정의하는 3D 노이즈." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "지형을 정의하는 3D 노이즈." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgstr "산 돌출부, 절벽 등에 대한 3D 노이즈. 일반적으로 작은 변화로 나타납니다." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "맵 당 던전 수를 결정하는 3D 노이즈." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "3D support.\n" "Currently supported:\n" @@ -2179,13 +2097,12 @@ msgid "A message to be displayed to all clients when the server shuts down." msgstr "서버가 닫힐 때 모든 사용자들에게 표시 될 메시지입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "ABM interval" -msgstr "맵 저장 간격" +msgstr "ABM 간격" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "" +msgstr "대기중인 블록의 절대 한계" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2193,16 +2110,15 @@ msgstr "공중에서 가속" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "중력 가속도, 노드는 초당 노드입니다." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" msgstr "블록 수식어 활성" #: src/settings_translation_file.cpp -#, fuzzy msgid "Active block management interval" -msgstr "블록 관리 간격 활성" +msgstr "블록 관리 간격 활성화" #: src/settings_translation_file.cpp msgid "Active block range" @@ -2210,7 +2126,7 @@ msgstr "블록 범위 활성" #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "객체 전달 범위 활성화" #: src/settings_translation_file.cpp msgid "" @@ -2218,17 +2134,19 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"연결할 주소입니다.\n" +"로컬 서버를 시작하려면 공백으로 두십시오.\n" +"주 메뉴의 주소 공간은 이 설정에 중복됩니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Adds particles when digging a node." -msgstr "node를 부술 때의 파티클 효과를 추가합니다" +msgstr "node를 부술 때의 파티클 효과를 추가합니다." #: src/settings_translation_file.cpp msgid "" "Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " "screens." -msgstr "" +msgstr "화면에 맞게 dpi 구성을 조정합니다 (X11 미지원 / Android 만 해당). 4k 화면 용." #: src/settings_translation_file.cpp #, c-format @@ -2239,6 +2157,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"플롯랜드 레이어의 밀도를 조정합니다.\n" +"밀도를 높이려면 값을 늘리십시오. 양수 또는 음수입니다.\n" +"값 = 0.0 : 부피의 50 % o가 플롯랜드입니다.\n" +"값 = 2.0 ( 'mgv7_np_floatland'에 따라 더 높을 수 있음, \n" +"항상 확실하게 테스트 후 사용)는 단단한 플롯랜드 레이어를 만듭니다." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2252,59 +2175,63 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" +"'감마 보정'을 적용하여 조명 곡선을 변경합니다.\n" +"값이 높을수록 중간 및 낮은 조명 수준이 더 밝아집니다.\n" +"값 '1.0'은 조명 곡선을 변경하지 않습니다.\n" +"이것은 일광 및 인공 조명에만 중요한 영향을 미칩니다.\n" +"빛은, 자연적인 야간 조명에 거의 영향을 미치지 않습니다." #: src/settings_translation_file.cpp msgid "Always fly and fast" -msgstr "항상 비행하고 빠르게" +msgstr "항상 비행 및 고속 모드" #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" -msgstr "" +msgstr "주변 occlusion 감마" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "플레이어가 10 초당 보낼 수있는 메시지의 양." #: src/settings_translation_file.cpp -#, fuzzy msgid "Amplifies the valleys." -msgstr "계곡 증폭" +msgstr "계곡 증폭." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" msgstr "이방성 필터링" #: src/settings_translation_file.cpp -#, fuzzy msgid "Announce server" -msgstr "서버 발표" +msgstr "서버 공지" #: src/settings_translation_file.cpp -#, fuzzy msgid "Announce to this serverlist." -msgstr "서버 발표" +msgstr "이 서버 목록에 알림." #: src/settings_translation_file.cpp msgid "Append item name" -msgstr "" +msgstr "아이템 이름 추가" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." -msgstr "" +msgstr "툴팁에 아이템 이름 추가." #: src/settings_translation_file.cpp msgid "Apple trees noise" -msgstr "" +msgstr "사과 나무 노이즈" #: src/settings_translation_file.cpp msgid "Arm inertia" -msgstr "" +msgstr "팔 관성" #: src/settings_translation_file.cpp msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" +"팔 관성,보다 현실적인 움직임을 제공합니다.\n" +"카메라가 움직일 때 팔도 함께 움직입니다." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -2324,19 +2251,26 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" +"이 거리에서 서버는 클라이언트로 전송되는 블록의 최적화를\n" +"활성화합니다.\n" +"작은 값은 눈에 띄는 렌더링 결함을 통해 \n" +"잠재적으로 성능을 크게 향상시킵니다 \n" +"(일부 블록은 수중과 동굴, 때로는 육지에서도 렌더링되지 않습니다).\n" +"이 값을 max_block_send_distance보다 큰 값으로 설정하면 \n" +"최적화가 비활성화됩니다.\n" +"맵 블록 (16 개 노드)에 명시되어 있습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Automatic forward key" -msgstr "앞으로 가는 키" +msgstr "자동 전진 키" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "단일 노드 장애물에 대한 자동 점프." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "" +msgstr "서버 목록에 자동으로 보고." #: src/settings_translation_file.cpp msgid "Autosave screen size" @@ -2344,38 +2278,35 @@ msgstr "스크린 크기 자동 저장" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "" +msgstr "자동 스케일링 모드" #: src/settings_translation_file.cpp msgid "Backward key" msgstr "뒤로 이동하는 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Base ground level" -msgstr "물의 높이" +msgstr "기본 지면 수준" #: src/settings_translation_file.cpp -#, fuzzy msgid "Base terrain height." -msgstr "기본 지형 높이" +msgstr "기본 지형 높이." #: src/settings_translation_file.cpp msgid "Basic" msgstr "기본" #: src/settings_translation_file.cpp -#, fuzzy msgid "Basic privileges" msgstr "기본 권한" #: src/settings_translation_file.cpp msgid "Beach noise" -msgstr "" +msgstr "해변 잡음" #: src/settings_translation_file.cpp msgid "Beach noise threshold" -msgstr "" +msgstr "해변 잡음 임계치" #: src/settings_translation_file.cpp msgid "Bilinear filtering" @@ -2387,45 +2318,39 @@ msgstr "바인딩 주소" #: src/settings_translation_file.cpp msgid "Biome API temperature and humidity noise parameters" -msgstr "" +msgstr "Biome API 온도 및 습도 소음 매개 변수" #: src/settings_translation_file.cpp -#, fuzzy msgid "Biome noise" -msgstr "강 소리" +msgstr "Biome 노이즈" #: src/settings_translation_file.cpp msgid "Bits per pixel (aka color depth) in fullscreen mode." msgstr "전체 화면 모드에서 (일명 색 농도) 픽셀 당 비트." #: src/settings_translation_file.cpp -#, fuzzy msgid "Block send optimize distance" -msgstr "최대 블록 전송 거리" +msgstr "블록 전송 최적화 거리" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold and italic font path" -msgstr "고정 폭 글꼴 경로" +msgstr "굵은 기울임 꼴 글꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold and italic monospace font path" -msgstr "고정 폭 글꼴 경로" +msgstr "굵은 기울임 꼴 고정 폭 글꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold font path" -msgstr "글꼴 경로" +msgstr "굵은 글꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold monospace font path" -msgstr "고정 폭 글꼴 경로" +msgstr "굵은 고정 폭 글꼴 경로" #: src/settings_translation_file.cpp msgid "Build inside player" -msgstr "" +msgstr "내부 사용자 빌드" #: src/settings_translation_file.cpp msgid "Builtin" @@ -2442,6 +2367,10 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"0에서 0.25 사이의 노드에서 카메라 '깎인 평면 근처'거리는 GLES 플랫폼에서만 작동합니다. \n" +"대부분의 사용자는 이것을 변경할 필요가 없습니다.\n" +"값이 증가하면 약한 GPU에서 아티팩트를 줄일 수 있습니다. \n" +"0.1 = 기본값, 0.25 = 약한 태블릿에 적합한 값." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2456,9 +2385,8 @@ msgid "Camera update toggle key" msgstr "카메라 업데이트 토글 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cave noise" -msgstr "동굴 잡음 #1" +msgstr "동굴 잡음" #: src/settings_translation_file.cpp msgid "Cave noise #1" @@ -2473,43 +2401,40 @@ msgid "Cave width" msgstr "동굴 너비" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cave1 noise" -msgstr "동굴 잡음 #1" +msgstr "동굴1 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cave2 noise" -msgstr "동굴 잡음 #1" +msgstr "동굴2 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cavern limit" -msgstr "동굴 너비" +msgstr "동굴 제한" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cavern noise" -msgstr "동굴 잡음 #1" +msgstr "동굴 잡음" #: src/settings_translation_file.cpp msgid "Cavern taper" -msgstr "" +msgstr "동굴 테이퍼" #: src/settings_translation_file.cpp msgid "Cavern threshold" -msgstr "" +msgstr "동굴 임계치" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cavern upper limit" -msgstr "동굴 너비" +msgstr "동굴 상한선" #: src/settings_translation_file.cpp msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"빛 굴절 중심 범위 .\n" +"0.0은 최소 조명 수준이고 1.0은 최대 조명 수준입니다." #: src/settings_translation_file.cpp msgid "" @@ -2520,38 +2445,38 @@ msgid "" "be\n" "necessary for smaller screens." msgstr "" +"메인 메뉴 UI 변경 :\n" +"-전체 : 여러 싱글 플레이어 월드, 게임 선택, 텍스처 팩 선택기 등.\n" +"-단순함 : 단일 플레이어 세계, 게임 또는 텍스처 팩 선택기가 없습니다. \n" +"작은 화면에 필요할 수 있습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "글꼴 크기" +msgstr "채팅 글자 크기" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "채팅" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "디버그 로그 수준" +msgstr "채팅 기록 수준" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message count limit" -msgstr "접속 시 status메시지" +msgstr "채팅 메세지 수 제한" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "접속 시 status메시지" +msgstr "채팅 메세지 포맷" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" -msgstr "" +msgstr "채팅 메세지 강제퇴장 임계값" #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "" +msgstr "채팅 메세지 최대 길이" #: src/settings_translation_file.cpp msgid "Chat toggle key" @@ -2574,7 +2499,6 @@ msgid "Cinematic mode key" msgstr "시네마틱 모드 스위치" #: src/settings_translation_file.cpp -#, fuzzy msgid "Clean transparent textures" msgstr "깨끗하고 투명한 텍스처" @@ -2591,13 +2515,12 @@ msgid "Client modding" msgstr "클라이언트 모딩" #: src/settings_translation_file.cpp -#, fuzzy msgid "Client side modding restrictions" -msgstr "클라이언트 모딩" +msgstr "클라이언트 측 모딩 제한" #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" -msgstr "" +msgstr "클라이언트 측 노드 조회 범위 제한" #: src/settings_translation_file.cpp msgid "Climbing speed" @@ -2633,14 +2556,20 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" +"컨텐츠 저장소에서 쉼표로 구분된 숨겨진 플래그 목록입니다.\n" +"\"nonfree\"는 Free Software Foundation에서 정의한대로 '자유 소프트웨어'로 분류되지 않는 패키지를 숨기는 데 " +"사용할 수 있습니다,\n" +"콘텐츠 등급을 지정할 수도 있습니다.\n" +"이 플래그는 Minetest 버전과 독립적이므로. \n" +"https://content.minetest.net/help/content_flags/에서,\n" +"전체 목록을 참조하십시오." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" -"쉼표로 구분된 모드의 리스트는 HTTP API에 접근 할 수 있습니다.\n" +"쉼표로 구분된 모드의 리스트는 HTTP API에 접근 할 수 있습니다,\n" "인터넷에서 데이터를 다운로드 하거나 업로드 할 수 있습니다." #: src/settings_translation_file.cpp @@ -2648,6 +2577,8 @@ msgid "" "Comma-separated list of trusted mods that are allowed to access insecure\n" "functions even when mod security is on (via request_insecure_environment())." msgstr "" +"mod 보안이 켜져있는 경우에도 안전하지 않은 기능에 액세스 할 수있는 쉼표로 구분 된 신뢰 할 수 있는 모드의 목록입니다\n" +"(request_insecure_environment ()를 통해)." #: src/settings_translation_file.cpp msgid "Command key" @@ -2663,7 +2594,7 @@ msgstr "외부 미디어 서버에 연결" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." -msgstr "" +msgstr "노드에서 지원하는 경우 유리를 연결합니다." #: src/settings_translation_file.cpp msgid "Console alpha" @@ -2679,40 +2610,41 @@ msgstr "콘솔 높이" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" -msgstr "" +msgstr "콘텐츠DB 블랙리스트 플래그" #: src/settings_translation_file.cpp -#, fuzzy msgid "ContentDB URL" -msgstr "계속" +msgstr "ContentDB URL주소" #: src/settings_translation_file.cpp msgid "Continuous forward" -msgstr "" +msgstr "연속 전진" #: src/settings_translation_file.cpp msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" +"연속 전진 이동, 자동 전진 키로 전환.\n" +"비활성화하려면 자동 앞으로 이동 키를 다시 누르거나 뒤로 이동합니다." #: src/settings_translation_file.cpp msgid "Controls" msgstr "컨트롤" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Controls length of day/night cycle.\n" "Examples:\n" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" "낮/밤 주기의 길이를 컨트롤.\n" -"예: 72 = 20 분, 360 = 4 분, 1 = 24 시간, 0 = 낮/밤/바뀌지 않고 그대로." +"예: \n" +"72 = 20 분, 360 = 4 분, 1 = 24 시간, 0 = 낮/밤/바뀌지 않고 그대로." #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "액체의 하강 속도 제어." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2728,6 +2660,9 @@ msgid "" "Value >= 10.0 completely disables generation of tunnels and avoids the\n" "intensive noise calculations." msgstr "" +"터널 너비를 제어하고 값이 작을수록 더 넓은 터널이 생성됩니다.\n" +"값> = 10.0은 터널 생성을 완전히 비활성화하고 집중적인 노이즈 계산을 \n" +"방지합니다." #: src/settings_translation_file.cpp msgid "Crash message" @@ -2766,9 +2701,8 @@ msgid "Debug info toggle key" msgstr "디버그 정보 토글 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "디버그 로그 수준" +msgstr "디버그 로그 파일 크기 임계치" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2780,11 +2714,11 @@ msgstr "볼륨 낮추기 키" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistance to movement." -msgstr "" +msgstr "움직임에 대한 액체 저항을 높이려면 이 값을 줄입니다." #: src/settings_translation_file.cpp msgid "Dedicated server step" -msgstr "" +msgstr "전용 서버 단계" #: src/settings_translation_file.cpp msgid "Default acceleration" @@ -2795,7 +2729,6 @@ msgid "Default game" msgstr "기본 게임" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Default game when creating a new world.\n" "This will be overridden when creating a world from the main menu." @@ -2816,31 +2749,32 @@ msgid "Default report format" msgstr "기본 보고서 형식" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "기본 게임" +msgstr "기본 스택 크기" #: src/settings_translation_file.cpp msgid "" "Default timeout for cURL, stated in milliseconds.\n" "Only has an effect if compiled with cURL." msgstr "" +"cURL에 대한 기본 제한 시간 (밀리 초 단위).\n" +"cURL로 컴파일 된 경우에만 효과가 있습니다." #: src/settings_translation_file.cpp msgid "Defines areas where trees have apples." -msgstr "" +msgstr "나무에 사과가 있는 영역 정의." #: src/settings_translation_file.cpp msgid "Defines areas with sandy beaches." -msgstr "" +msgstr "모래 해변이 있는 지역을 정의합니다." #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" +msgstr "높은 지형의 분포와 절벽의 가파른 정도를 정의합니다." #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain." -msgstr "" +msgstr "더 높은 지형의 분포를 정의합니다." #: src/settings_translation_file.cpp msgid "Defines full size of caverns, smaller values create larger caverns." @@ -2855,7 +2789,6 @@ msgid "Defines location and terrain of optional hills and lakes." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Defines sampling step of texture.\n" "A higher value results in smoother normal maps." @@ -2872,7 +2805,6 @@ msgid "Defines the depth of the river channel." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "블록에 최대 플레이어 전송 거리를 정의 합니다 (0 = 무제한)." @@ -2899,7 +2831,6 @@ msgid "Delay in sending blocks after building" msgstr "건축 후 블록 전송 지연" #: src/settings_translation_file.cpp -#, fuzzy msgid "Delay showing tooltips, stated in milliseconds." msgstr "도구 설명 표시 지연, 1000분의 1초." @@ -2908,12 +2839,10 @@ msgid "Deprecated Lua API handling" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Depth below which you'll find giant caverns." msgstr "큰 동굴을 발견할 수 있는 깊이." #: src/settings_translation_file.cpp -#, fuzzy msgid "Depth below which you'll find large caves." msgstr "큰 동굴을 발견할 수 있는 깊이." @@ -2938,7 +2867,6 @@ msgid "Desynchronize block animation" msgstr "블록 애니메이션 비동기화" #: src/settings_translation_file.cpp -#, fuzzy msgid "Digging particles" msgstr "입자 효과" @@ -2967,7 +2895,6 @@ msgid "Drop item key" msgstr "아이템 드랍 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dump the mapgen debug information." msgstr "Mapgen 디버그 정보를 덤프 합니다." @@ -2980,9 +2907,8 @@ msgid "Dungeon minimum Y" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "강 소리" +msgstr "던전 잡음" #: src/settings_translation_file.cpp msgid "" @@ -3005,14 +2931,12 @@ msgid "Enable creative mode for new created maps." msgstr "새로 만든 맵에서 creative모드를 활성화시킵니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable joysticks" -msgstr "조이스틱 적용" +msgstr "조이스틱 활성화" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable mod channels support." -msgstr "모드 보안 적용" +msgstr "모드 채널 지원 활성화." #: src/settings_translation_file.cpp msgid "Enable mod security" @@ -3051,7 +2975,7 @@ msgid "" "expecting." msgstr "" "오래된 클라이언트 연결을 허락하지 않는것을 사용.\n" -"이전 클라이언트는 서버에서 당신이 기대하는 새로운 특징들을 지원하지 않는다면 " +"이전 클라이언트는 서버에서 당신이 기대하는 새로운 특징들을 지원하지 않는다면 \n" "새로운 서버로 연결할 때 충돌하지 않을 것입니다." #: src/settings_translation_file.cpp @@ -3061,9 +2985,9 @@ msgid "" "textures)\n" "when connecting to the server." msgstr "" -"(만약 서버에서 제공한다면)원격 미디어 서버 사용 가능.\n" -"원격 서버들은 서버에 연결할 때 매우 빠르게 미디어를 다운로드 할 수 있도록 제" -"공합니다.(예: 텍스처)" +"원격 미디어 서버 사용 가능(만약 서버에서 제공한다면).\n" +"원격 서버들은 서버에 연결할 때 매우 빠르게 미디어를\n" +"다운로드 할 수 있도록 제공합니다.(예: 텍스처)" #: src/settings_translation_file.cpp msgid "" @@ -3080,14 +3004,13 @@ msgstr "" "예 : 0은 화면 흔들림 없음; 1.0은 노멀; 2.0은 더블." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enable/disable running an IPv6 server.\n" "Ignored if bind_address is set.\n" "Needs enable_ipv6 to be enabled." msgstr "" -"IPv6 서버를 실행 활성화/비활성화. IPv6 서버는 IPv6 클라이언트 시스템 구성에 " -"따라 제한 될 수 있습니다.\n" +"IPv6 서버를 실행 활성화/비활성화.\n" +"IPv6 서버는 IPv6 클라이언트 시스템 구성에 따라 제한 될 수 있습니다.\n" "만약 Bind_address가 설정 된 경우 무시 됩니다." #: src/settings_translation_file.cpp @@ -3109,8 +3032,8 @@ msgid "" "or need to be auto-generated.\n" "Requires shaders to be enabled." msgstr "" -"텍스처에 bumpmapping을 할 수 있습니다. Normalmaps는 텍스쳐 팩에서 받거나 자" -"동 생성될 필요가 있습니다.\n" +"텍스처에 bumpmapping을 할 수 있습니다. \n" +"Normalmaps는 텍스쳐 팩에서 받거나 자동 생성될 필요가 있습니다.\n" "쉐이더를 활성화 해야 합니다." #: src/settings_translation_file.cpp @@ -3122,7 +3045,6 @@ msgid "Enables minimap." msgstr "미니맵 적용." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enables on the fly normalmap generation (Emboss effect).\n" "Requires bumpmapping to be enabled." @@ -3183,14 +3105,12 @@ msgid "Factor noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fall bobbing factor" msgstr "낙하 흔들림" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fallback font path" -msgstr "yes" +msgstr "대체 글꼴 경로" #: src/settings_translation_file.cpp msgid "Fallback font shadow" @@ -3221,13 +3141,12 @@ msgid "Fast movement" msgstr "빠른 이동" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Fast movement (via the \"special\" key).\n" "This requires the \"fast\" privilege on the server." msgstr "" -"빠른 이동('use'키 사용).\n" -"서버에서는 \"fast\"권한이 요구됩니다." +"빠른 이동 ( \"특수\"키 사용).\n" +"이를 위해서는 서버에 대한 \"빠른\"권한이 필요합니다." #: src/settings_translation_file.cpp msgid "Field of view" @@ -3238,15 +3157,15 @@ msgid "Field of view in degrees." msgstr "각도에 대한 시야." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "File in client/serverlist/ that contains your favorite servers displayed in " "the\n" "Multiplayer Tab." -msgstr "클라이언트/서버리스트/멀티플레이어 탭에서 당신이 가장 좋아하는 서버" +msgstr "" +"멀티 플레이어 탭에 표시되는 즐겨 찾는 서버가 포함 된 \n" +"client / serverlist /의 파일입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Filler depth" msgstr "강 깊이" @@ -3287,39 +3206,32 @@ msgid "Fixed virtual joystick" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Floatland의 산 밀집도" +msgstr "Floatland의 밀집도" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Floatland의 산 높이" +msgstr "Floatland의 Y 최대값" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Floatland의 산 높이" +msgstr "Floatland의 Y 최소값" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Floatland의 높이" +msgstr "Floatland 노이즈" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Floatland의 산 밀집도" +msgstr "Floatland의 테이퍼 지수" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Floatland의 산 밀집도" +msgstr "Floatland의 테이퍼링 거리" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Floatland의 높이" +msgstr "Floatland의 물 높이" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3407,22 +3319,18 @@ msgid "Formspec Full-Screen Background Opacity" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background color (R,G,B)." -msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨,초,파)." +msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨강, 초록, 파랑)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background opacity (between 0 and 255)." msgstr "게임 내에서 채팅 콘솔 배경 알파 (불투명 함, 0와 255 사이)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background color (R,G,B)." -msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨,초,파)." +msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨강, 초록, 파랑)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "게임 내에서 채팅 콘솔 배경 알파 (불투명 함, 0와 255 사이)." @@ -3443,7 +3351,6 @@ msgid "Fraction of the visible distance at which fog starts to be rendered" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "FreeType fonts" msgstr "Freetype 글꼴" @@ -3527,17 +3434,14 @@ msgid "Gravity" msgstr "중력" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground level" -msgstr "물의 높이" +msgstr "지면 수준" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground noise" -msgstr "물의 높이" +msgstr "지면 노이즈" #: src/settings_translation_file.cpp -#, fuzzy msgid "HTTP mods" msgstr "HTTP 모드" @@ -3571,18 +3475,16 @@ msgid "Heat blend noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Heat noise" -msgstr "동굴 잡음 #1" +msgstr "용암 잡음" #: src/settings_translation_file.cpp msgid "Height component of the initial window size." msgstr "초기 창 크기의 높이 구성 요소입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Height noise" -msgstr "오른쪽 창" +msgstr "높이 노이즈" #: src/settings_translation_file.cpp msgid "Height select noise" @@ -3601,24 +3503,20 @@ msgid "Hill threshold" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness1 noise" -msgstr "동굴 잡음 #1" +msgstr "언덕1 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness2 noise" -msgstr "동굴 잡음 #1" +msgstr "언덕2 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness3 noise" -msgstr "동굴 잡음 #1" +msgstr "언덕3 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness4 noise" -msgstr "동굴 잡음 #1" +msgstr "언덕4 잡음" #: src/settings_translation_file.cpp msgid "Homepage of server, to be displayed in the serverlist." @@ -3664,7 +3562,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Hotbar slot 12 key" -msgstr "" +msgstr "핫바 슬롯 키 12" #: src/settings_translation_file.cpp msgid "Hotbar slot 13 key" @@ -3779,9 +3677,8 @@ msgid "Hotbar slot 9 key" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "How deep to make rivers." -msgstr "얼마나 강을 깊게 만들건가요" +msgstr "제작할 강의 깊이." #: src/settings_translation_file.cpp msgid "" @@ -3797,9 +3694,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "How wide to make rivers." -msgstr "게곡을 얼마나 넓게 만들지" +msgstr "제작할 강의 너비." #: src/settings_translation_file.cpp msgid "Humidity blend noise" @@ -3851,12 +3747,13 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, \"special\" key instead of \"sneak\" key is used for climbing " "down and\n" "descending." -msgstr "활성화시, \"sneak\"키 대신 \"use\"키가 내려가는데 사용됩니다." +msgstr "" +"활성화시, \"sneak\"키 대신 \"특수\"키가 내려가는데 \n" +"사용됩니다." #: src/settings_translation_file.cpp msgid "" @@ -3885,12 +3782,13 @@ msgid "If enabled, new players cannot join with an empty password." msgstr "적용할 경우, 새로운 플레이어는 빈 암호로 가입 할 수 없습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, you can place blocks at the position (feet + eye level) where " "you stand.\n" "This is helpful when working with nodeboxes in small areas." -msgstr "활성화시, 당신이 서 있는 자리에도 블록을 놓을 수 있습니다." +msgstr "" +"활성화시,\n" +"당신이 서 있는 자리에도 블록을 놓을 수 있습니다." #: src/settings_translation_file.cpp msgid "" @@ -3920,7 +3818,6 @@ msgid "In-Game" msgstr "인게임" #: src/settings_translation_file.cpp -#, fuzzy msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." msgstr "게임 내에서 채팅 콘솔 배경 알파 (불투명 함, 0와 255 사이)." @@ -3929,14 +3826,12 @@ msgid "In-game chat console background color (R,G,B)." msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨,초,파)." #: src/settings_translation_file.cpp -#, fuzzy msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." msgstr "게임 내에서 채팅 콘솔 배경 알파 (불투명 함, 0와 255 사이)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Inc. volume key" -msgstr "콘솔 키" +msgstr "볼륨 증가 키" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." @@ -4001,19 +3896,16 @@ msgid "Invert vertical mouse movement." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic font path" -msgstr "고정 폭 글꼴 경로" +msgstr "기울임꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic monospace font path" -msgstr "고정 폭 글꼴 경로" +msgstr "고정 폭 기울임 글꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Item entity TTL" -msgstr "아이템의 TTL(Time To Live)" +msgstr "아이템의 TTL(Time To Live)" #: src/settings_translation_file.cpp msgid "Iterations" @@ -4141,15 +4033,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for increasing the volume.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "보여지는 범위 증가에 대한 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "" @@ -4172,16 +4063,16 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for moving the player backward.\n" "Will also disable autoforward, when active.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"플레이어가 뒤쪽으로 움직이는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"플레이어가 \n" +"뒤쪽으로 움직이는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "" @@ -4214,15 +4105,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for muting the game.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "점프키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "" @@ -4265,378 +4155,344 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 12th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 13th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"13번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 14th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"14번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 15th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"15번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 16th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"16번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 17th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"17번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 18th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"18번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 19th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"19번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 20th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"20번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 21st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"21번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 22nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"22번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 23rd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"23번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 24th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"24번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 25th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"25번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 26th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"26번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 27th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"27번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 28th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"28번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 29th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"29번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 30th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"30번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 31st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"31번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 32nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"32번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the eighth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"8번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fifth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"5번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the first hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"1번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fourth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"4번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the next item in the hotbar.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"다음 아이템 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the ninth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"9번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the previous item in the hotbar.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"이전 아이템 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the second hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"2번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the seventh hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"7번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the sixth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"6번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the tenth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"10번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the third hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"3번째 hotbar 슬롯을 선택하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "" @@ -4673,15 +4529,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling autoforward.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"자동으로 달리는 기능을 켜는 키입니다.\n" -"http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"자동전진 토글에 대한 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "" @@ -4734,15 +4589,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling pitch move mode.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"자유시점 모드 스위치 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"피치 이동 모드 토글에 대한 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "" @@ -4755,15 +4609,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of chat.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"채팅 스위치 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"채팅 디스플레이 토글 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "" @@ -4776,15 +4629,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of fog.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"안개 스위치 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"안개 디스플레이 토글 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "" @@ -4797,15 +4649,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of the large chat console.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"채팅 스위치 키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"채팅 콘솔 디스플레이 토글 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "" @@ -4825,15 +4676,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key to use view zoom when possible.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"점프키입니다.\n" -"Http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3 참조" +"가능한 경우 시야 확대를 사용하는 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr.html#" +"a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp msgid "Kick players who sent more than X messages per 10 seconds." @@ -4868,16 +4718,14 @@ msgid "Large cave proportion flooded" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Large chat console key" -msgstr "콘솔 키" +msgstr "큰 채팅 콘솔 키" #: src/settings_translation_file.cpp msgid "Leaves style" msgstr "나뭇잎 스타일" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Leaves style:\n" "- Fancy: all faces visible\n" @@ -4901,7 +4749,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." @@ -4958,12 +4805,14 @@ msgid "Light curve low gradient" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" "Only mapchunks completely within the mapgen limit are generated.\n" "Value is stored per-world." -msgstr "(0,0,0)으로부터 6방향으로 뻗어나갈 맵 크기" +msgstr "" +"(0, 0, 0)에서 모든 6 개 방향의 노드에서 맵 생성 제한.\n" +"mapgen 제한 내에 완전히 포함 된 맵 청크 만 생성됩니다.\n" +"값은 세계별로 저장됩니다." #: src/settings_translation_file.cpp msgid "" @@ -4991,7 +4840,6 @@ msgid "Liquid queue purge time" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" msgstr "하강 속도" @@ -5031,7 +4879,6 @@ msgid "Main menu script" msgstr "주 메뉴 스크립트" #: src/settings_translation_file.cpp -#, fuzzy msgid "Main menu style" msgstr "주 메뉴 스크립트" @@ -5112,14 +4959,12 @@ msgid "Mapblock limit" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapblock mesh generation delay" -msgstr "맵 생성 제한" +msgstr "맵 블록 생성 지연" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "맵 생성 제한" +msgstr "Mapblock 메시 생성기의 MapBlock 캐시 크기 (MB)" #: src/settings_translation_file.cpp msgid "Mapblock unload timeout" @@ -5134,46 +4979,40 @@ msgid "Mapgen Carpathian specific flags" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat" -msgstr "Mapgen 이름" +msgstr "Mapgen 플랫" #: src/settings_translation_file.cpp msgid "Mapgen Flat specific flags" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal" -msgstr "Mapgen 이름" +msgstr "Mapgen 형태" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Mapgen 이름" +msgstr "Mapgen 형태 상세 플래그" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5" -msgstr "맵젠v5" +msgstr "맵젠 V5" #: src/settings_translation_file.cpp msgid "Mapgen V5 specific flags" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6" -msgstr "세계 생성기" +msgstr "맵젠 V6" #: src/settings_translation_file.cpp msgid "Mapgen V6 specific flags" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7" -msgstr "세계 생성기" +msgstr "맵젠 V7" #: src/settings_translation_file.cpp msgid "Mapgen V7 specific flags" @@ -5225,7 +5064,7 @@ msgstr "게임이 일시정지될때의 최대 FPS." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" -msgstr "" +msgstr "최대 강제 로딩 블럭" #: src/settings_translation_file.cpp msgid "Maximum hotbar width" @@ -5286,9 +5125,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum number of players that can be connected simultaneously." -msgstr "동시접속 할 수 있는 최대 인원수." +msgstr "동시접속 할 수 있는 최대 인원 수." #: src/settings_translation_file.cpp msgid "Maximum number of recent chat messages to show" @@ -5303,7 +5141,6 @@ msgid "Maximum objects per block" msgstr "블록 당 최대 개체" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum proportion of current window to be used for hotbar.\n" "Useful if there's something to be displayed right or left of hotbar." @@ -5312,7 +5149,6 @@ msgstr "" "hotbar의 오른쪽이나 왼쪽에 무언가를 나타낼 때 유용합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum simultaneous block sends per client" msgstr "클라이언트 당 최대 동시 블록 전송" @@ -5381,9 +5217,8 @@ msgid "Minimum limit of random number of small caves per mapchunk." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum texture size" -msgstr "필터 최소 텍스처 크기" +msgstr "최소 텍스처 크기" #: src/settings_translation_file.cpp msgid "Mipmapping" @@ -5418,9 +5253,8 @@ msgid "Mountain variation noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mountain zero level" -msgstr "물의 높이" +msgstr "산 0 수준" #: src/settings_translation_file.cpp msgid "Mouse sensitivity" @@ -5443,9 +5277,8 @@ msgstr "" "예 : 0은 화면 흔들림 없음; 1.0은 노말; 2.0은 더블." #: src/settings_translation_file.cpp -#, fuzzy msgid "Mute key" -msgstr "키 사용" +msgstr "음소거 키" #: src/settings_translation_file.cpp msgid "Mute sound" @@ -5547,7 +5380,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Number of parallax occlusion iterations." -msgstr "시차 교합 반복의 수" +msgstr "시차 교합 반복의 수." #: src/settings_translation_file.cpp msgid "Online Content Repository" @@ -5579,9 +5412,8 @@ msgid "Overall bias of parallax occlusion effect, usually scale/2." msgstr "일반적인 규모/2의 시차 교합 효과의 전반적인 바이어스." #: src/settings_translation_file.cpp -#, fuzzy msgid "Overall scale of parallax occlusion effect." -msgstr "시차 교합 효과의 전체 규모" +msgstr "시차 교합 효과의 전체 규모." #: src/settings_translation_file.cpp msgid "Parallax occlusion" @@ -5596,12 +5428,10 @@ msgid "Parallax occlusion iterations" msgstr "시차 교합 반복" #: src/settings_translation_file.cpp -#, fuzzy msgid "Parallax occlusion mode" msgstr "시차 교합 모드" #: src/settings_translation_file.cpp -#, fuzzy msgid "Parallax occlusion scale" msgstr "시차 교합 규모" @@ -5664,9 +5494,8 @@ msgid "Physics" msgstr "물리학" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "비행 키" +msgstr "피치 이동 키" #: src/settings_translation_file.cpp msgid "Pitch move mode" @@ -5689,12 +5518,10 @@ msgid "Player transfer distance" msgstr "플레이어 전송 거리" #: src/settings_translation_file.cpp -#, fuzzy msgid "Player versus player" msgstr "PVP" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Port to connect to (UDP).\n" "Note that the port field in the main menu overrides this setting." @@ -5709,12 +5536,10 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Prevent mods from doing insecure things like running shell commands." msgstr "shell 명령어 실행 같은 안전 하지 않은 것으로부터 모드를 보호합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." @@ -5735,7 +5560,6 @@ msgid "Profiler toggle key" msgstr "프로파일러 토글 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Profiling" msgstr "프로 파일링" @@ -5765,12 +5589,10 @@ msgstr "" "26보다 큰 수치들은 구름을 선명하게 만들고 모서리를 잘라낼 것입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Raises terrain to make valleys around the rivers." msgstr "강 주변에 계곡을 만들기 위해 지형을 올립니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Random input" msgstr "임의 입력" @@ -5783,7 +5605,6 @@ msgid "Recent Chat Messages" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" msgstr "보고서 경로" @@ -5802,12 +5623,10 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Replaces the default main menu with a custom one." msgstr "기본 주 메뉴를 커스텀 메뉴로 바꿉니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Report path" msgstr "보고서 경로" @@ -5830,9 +5649,8 @@ msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridge noise" -msgstr "강 소리" +msgstr "능선 노이즈" #: src/settings_translation_file.cpp msgid "Ridge underwater noise" @@ -5851,37 +5669,30 @@ msgid "Rightclick repetition interval" msgstr "오른쪽 클릭 반복 간격" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" msgstr "강 깊이" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "강 깊이" +msgstr "강 너비" #: src/settings_translation_file.cpp -#, fuzzy msgid "River depth" msgstr "강 깊이" #: src/settings_translation_file.cpp -#, fuzzy msgid "River noise" msgstr "강 소리" #: src/settings_translation_file.cpp -#, fuzzy msgid "River size" msgstr "강 크기" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "강 깊이" +msgstr "강 계곡 폭" #: src/settings_translation_file.cpp -#, fuzzy msgid "Rollback recording" msgstr "롤백 레코딩" @@ -5906,7 +5717,6 @@ msgid "Sandy beaches occur when np_beach exceeds this value." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Save the map received by the client on disk." msgstr "디스크에 클라이언트에서 받은 맵을 저장 합니다." @@ -5958,9 +5768,8 @@ msgstr "" "기본 품질을 사용하려면 0을 사용 합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Seabed noise" -msgstr "동굴 잡음 #1" +msgstr "해저 노이즈" #: src/settings_translation_file.cpp msgid "Second of 4 2D noises that together define hill/mountain range height." @@ -5975,7 +5784,6 @@ msgid "Security" msgstr "보안" #: src/settings_translation_file.cpp -#, fuzzy msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "Http://www.sqlite.org/pragma.html#pragma_synchronous 참조" @@ -5992,7 +5800,6 @@ msgid "Selection box width" msgstr "선택 박스 너비" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Selects one of 18 fractal types.\n" "1 = 4D \"Roundy\" Mandelbrot set.\n" @@ -6083,7 +5890,6 @@ msgid "Set the maximum character length of a chat message sent by clients." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." @@ -6092,16 +5898,14 @@ msgstr "" "쉐이더를 활성화 해야 합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" "True로 설정하면 물결효과가 적용됩니다.\n" -"쉐이더를 활성화해야 합니다.." +"쉐이더를 활성화해야 합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." @@ -6114,26 +5918,23 @@ msgid "Shader path" msgstr "쉐이더 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shaders allow advanced visual effects and may increase performance on some " "video\n" "cards.\n" "This only works with the OpenGL video backend." msgstr "" -"쉐이더는 확장된 시각 효과를 제공하고 몇몇 비디오 카드의 성능이 증가할 수도 있" -"습니다.\n" -"이것은 OpenGL video backend에서만 직동합니다." +"쉐이더는 확장된 시각 효과를 제공하고 몇몇 비디오 카드의 성능이 증가할 수도 있습니다.\n" +"이것은 OpenGL video backend에서만 \n" +"작동합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." msgstr "글꼴 그림자 오프셋, 만약 0 이면 그림자는 나타나지 않을 것입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." @@ -6148,7 +5949,6 @@ msgid "Show debug info" msgstr "디버그 정보 보기" #: src/settings_translation_file.cpp -#, fuzzy msgid "Show entity selection boxes" msgstr "개체 선택 상자 보기" @@ -6178,9 +5978,8 @@ msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Slope and fill work together to modify the heights." -msgstr "높이 수정을 위해 기울기와 채우기를 함께 작용합니다" +msgstr "높이 수정을 위해 기울기와 채우기를 함께 작용합니다." #: src/settings_translation_file.cpp msgid "Small cave maximum number" @@ -6203,13 +6002,11 @@ msgid "Smooth lighting" msgstr "부드러운 조명효과" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Smooths camera when looking around. Also called look or mouse smoothing.\n" "Useful for recording videos." msgstr "" -"주위를 돌아볼 때 카메라를 부드럽게 해줍니다. 보기 또는 부드러운 마우스라고도 " -"부릅니다.\n" +"주위를 돌아볼 때 카메라를 부드럽게 해줍니다. 보기 또는 부드러운 마우스라고도 부릅니다.\n" "비디오를 녹화하기에 유용합니다." #: src/settings_translation_file.cpp @@ -6227,7 +6024,6 @@ msgid "Sneak key" msgstr "살금살금걷기 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Sneaking speed" msgstr "걷는 속도" @@ -6240,14 +6036,12 @@ msgid "Sound" msgstr "사운드" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key" -msgstr "살금살금걷기 키" +msgstr "특수 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key for climbing/descending" -msgstr "오르기/내리기 에 사용되는 키입니다" +msgstr "오르기/내리기 에 사용되는 특수키" #: src/settings_translation_file.cpp msgid "" @@ -6280,16 +6074,14 @@ msgid "Steepness noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain size noise" -msgstr "지형 높이" +msgstr "계단식 산 높이" #: src/settings_translation_file.cpp msgid "Step mountain spread noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." msgstr "자동으로 생성되는 노멀맵의 강도." @@ -6335,29 +6127,24 @@ msgid "Temperature variation for biomes." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain alternative noise" msgstr "지형 높이" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain base noise" -msgstr "지형 높이" +msgstr "지형 기초 분산" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain height" msgstr "지형 높이" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain higher noise" -msgstr "지형 높이" +msgstr "지형 높이 분산" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain noise" -msgstr "지형 높이" +msgstr "지형 분산" #: src/settings_translation_file.cpp msgid "" @@ -6402,9 +6189,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "The depth of dirt or other biome filler node." -msgstr "흙이나 다른 것의 깊이" +msgstr "흙이나 다른 것의 깊이." #: src/settings_translation_file.cpp msgid "" @@ -6438,8 +6224,7 @@ msgid "" "See /privs in game for a full list on your server and mod configuration." msgstr "" "새로운 유저가 자동으로 얻는 권한입니다.\n" -"게임에서 /privs를 입력하여 서버와 모드 환경설정의 전체 권한\n" -" 목록을 확인하세요." +"게임에서 /privs를 입력하여 서버와 모드 환경설정의 전체 권한 목록을 확인하세요." #: src/settings_translation_file.cpp msgid "" @@ -6512,18 +6297,18 @@ msgid "Third of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Time in seconds for item entity (dropped items) to live.\n" "Setting it to -1 disables the feature." -msgstr "드랍된 아이템이 살아 있는 시간입니다. -1을 입력하여 비활성화합니다." +msgstr "" +"드랍된 아이템이 살아 있는 시간입니다.\n" +"-1을 입력하여 비활성화합니다." #: src/settings_translation_file.cpp msgid "Time of day when a new world is started, in millihours (0-23999)." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Time send interval" msgstr "시간 전송 간격" @@ -6532,11 +6317,8 @@ msgid "Time speed" msgstr "시간 속도" #: src/settings_translation_file.cpp -#, fuzzy msgid "Timeout for client to remove unused map data from memory." -msgstr "" -"메모리에서 사용 하지 않는 맵 데이터를 제거하기 위해 클라이언트에 대한 시간 제" -"한입니다." +msgstr "메모리에서 사용 하지 않는 맵 데이터를 제거하기 위해 클라이언트에 대한 시간 제한입니다." #: src/settings_translation_file.cpp msgid "" @@ -6549,17 +6331,14 @@ msgstr "" "이것은 node가 배치되거나 제거된 후 얼마나 오래 느려지는지를 결정합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Toggle camera mode key" msgstr "카메라모드 스위치 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Tooltip delay" msgstr "도구 설명 지연" #: src/settings_translation_file.cpp -#, fuzzy msgid "Touch screen threshold" msgstr "터치임계값 (픽셀)" @@ -6572,7 +6351,6 @@ msgid "Trilinear filtering" msgstr "삼중 선형 필터링" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6591,7 +6369,6 @@ msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "멀티 탭에 표시 된 서버 목록 URL입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Undersampling" msgstr "좌표표집(Undersampling)" @@ -6605,7 +6382,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Unlimited player transfer distance" msgstr "무제한 플레이어 전송 거리" @@ -6630,7 +6406,6 @@ msgid "Use a cloud animation for the main menu background." msgstr "주 메뉴 배경에 구름 애니메이션을 사용 합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Use anisotropic filtering when viewing at textures from an angle." msgstr "각도에 따라 텍스처를 볼 때 이방성 필터링을 사용 합니다." @@ -6646,7 +6421,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Use trilinear filtering when scaling textures." msgstr "삼중 선형 필터링은 질감 스케일링을 할 때 사용 합니다." @@ -6655,27 +6429,22 @@ msgid "VBO" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "VSync" msgstr "수직동기화 V-Sync" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley depth" msgstr "계곡 깊이" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley fill" msgstr "계곡 채우기" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley profile" msgstr "계곡 측면" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley slope" msgstr "계곡 경사" @@ -6708,7 +6477,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Varies steepness of cliffs." msgstr "산의 높이/경사를 조절." @@ -6725,16 +6493,12 @@ msgid "Video driver" msgstr "비디오 드라이버" #: src/settings_translation_file.cpp -#, fuzzy msgid "View bobbing factor" -msgstr "보기 만료" +msgstr "시야의 흔들리는 정도" #: src/settings_translation_file.cpp -#, fuzzy msgid "View distance in nodes." -msgstr "" -"node의 보여지는 거리\n" -"최소 = 20" +msgstr "node의 보여지는 거리(최소 = 20)." #: src/settings_translation_file.cpp msgid "View range decrease key" @@ -6761,7 +6525,6 @@ msgid "Volume" msgstr "볼륨" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." @@ -6799,7 +6562,6 @@ msgid "Water surface level of the world." msgstr "월드의 물 표면 높이." #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving Nodes" msgstr "움직이는 Node" @@ -6808,22 +6570,18 @@ msgid "Waving leaves" msgstr "흔들리는 나뭇잎 효과" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "움직이는 Node" +msgstr "물 움직임" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" msgstr "물결 높이" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" msgstr "물결 속도" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" msgstr "물결 길이" @@ -6832,15 +6590,14 @@ msgid "Waving plants" msgstr "흔들리는 식물 효과" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When gui_scaling_filter is true, all GUI images need to be\n" "filtered in software, but some images are generated directly\n" "to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" -"Gui_scaling_filter이 true 이면 모든 GUI 이미지 소프트웨어에서 필터링 될 필요" -"가 있습니다. 하지만 일부 이미지는 바로 하드웨어에 생성됩니다. (e.g. render-" -"to-texture for nodes in inventory)." +"Gui_scaling_filter이 true 이면 모든 GUI 이미지 소프트웨어에서 필터링 될 필요가 있습니다. \n" +"하지만 일부 이미지는 바로 하드웨어에 생성됩니다. \n" +"(e.g. render-to-texture for nodes in inventory)." #: src/settings_translation_file.cpp msgid "" @@ -6851,7 +6608,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" "can be blurred, so automatically upscale them with nearest-neighbor\n" @@ -6863,12 +6619,16 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" -"이중선형/삼중선형/이방성 필터를 사용할 때 저해상도 택스쳐는 희미하게 보일 수 " -"있습니다.so automatically upscale them with nearest-neighbor interpolation " -"to preserve crisp pixels. This sets the minimum texture size for the " -"upscaled textures; 값이 높을수록 선명하게 보입니다. 하지만 많은 메모리가 필요" -"합니다. Powers of 2 are recommended. Setting this higher than 1 may not have " -"a visible effect unless bilinear/trilinear/anisotropic filtering is enabled." +"이중선형/삼중선형/이방성 필터를 사용할 때 \n" +"저해상도 택스쳐는 희미하게 보일 수 있습니다.\n" +"so automatically upscale them with nearest-neighbor interpolation to " +"preserve crisp pixels. \n" +"This sets the minimum texture size for the upscaled textures; \n" +"값이 높을수록 선명하게 보입니다. \n" +"하지만 많은 메모리가 필요합니다. \n" +"Powers of 2 are recommended. \n" +"Setting this higher than 1 may not have a visible effect\n" +"unless bilinear/trilinear/anisotropic filtering is enabled." #: src/settings_translation_file.cpp msgid "" @@ -6915,16 +6675,13 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Width component of the initial window size." msgstr "폭은 초기 창 크기로 구성되어 있습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Width of the selection box lines around nodes." msgstr "" -"node 주위 “selectionbox'” or (if UTF-8 supported) “selectionbox’” 라인의 너비" -"입니다." +"node 주위 “selectionbox'” or (if UTF-8 supported) “selectionbox’” 라인의 너비입니다." #: src/settings_translation_file.cpp msgid "" @@ -6942,9 +6699,8 @@ msgstr "" "주 메뉴에서 시작 하는 경우 필요 하지 않습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "World start time" -msgstr "세계 이름" +msgstr "세계 시작 시간" #: src/settings_translation_file.cpp msgid "" @@ -6961,9 +6717,8 @@ msgid "World-aligned textures mode" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Y of flat ground." -msgstr "평평한 땅의 Y값" +msgstr "평평한 땅의 Y값." #: src/settings_translation_file.cpp msgid "" From 6657f877a839203746550dde8b21d97aed048ffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sun, 15 Nov 2020 02:57:49 +0000 Subject: [PATCH 444/624] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 58.5% (790 of 1350 strings) --- po/nb/minetest.po | 51 ++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/po/nb/minetest.po b/po/nb/minetest.po index 14a04cdcd..f2e22b967 100644 --- a/po/nb/minetest.po +++ b/po/nb/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Norwegian Bokmål (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-10-31 19:26+0000\n" -"Last-Translator: Liet Kynes \n" +"PO-Revision-Date: 2021-01-10 01:32+0000\n" +"Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -220,7 +220,7 @@ msgstr "Oppdater" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "Vis" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -280,11 +280,11 @@ msgstr "Flatt terreng" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Flytende landmasser på himmelen" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Flytlandene (eksperimentelt)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -304,15 +304,15 @@ msgstr "Fuktige elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Øker fuktigheten rundt elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Innsjøer" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Lav fuktighet og høy varme fører til små eller tørre elver" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -320,7 +320,7 @@ msgstr "Mapgen" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Mapgen-flagg" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -329,7 +329,7 @@ msgstr "Mapgen" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Fjell" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -337,7 +337,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Nettverk av tuneller og huler" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -345,11 +345,11 @@ msgstr "Intet spill valgt" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Reduserer varme ettersom høyden øker" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Reduserer fuktighet ettersom høyden øker" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" @@ -357,7 +357,7 @@ msgstr "Elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Havnivåelver" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -396,7 +396,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Trær og jungelgress" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" @@ -466,7 +466,7 @@ msgstr "2D-støy" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "< Tilbake til instillinger" +msgstr "< Tilbake til innstillinger" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" @@ -721,7 +721,7 @@ msgstr "Vertstjener" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Installer spill fra ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -1379,12 +1379,13 @@ msgid "Sound muted" msgstr "Lyd av" #: src/client/game.cpp +#, fuzzy msgid "Sound system is disabled" -msgstr "" +msgstr "Lydsystem avskrudd" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Lydsystem støttes ikke på dette bygget" #: src/client/game.cpp msgid "Sound unmuted" @@ -1440,12 +1441,12 @@ msgstr "" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "Profiler skjult" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "Profiler vises (side %d av %d)" #: src/client/keycode.cpp msgid "Apps" @@ -2027,7 +2028,7 @@ msgstr "3D-modus" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "Parallaksestyrke i 3D-modus" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2245,7 +2246,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" -msgstr "Spør om å koble til igjen etter kræsj" +msgstr "Spør om å koble til igjen etter krasj" #: src/settings_translation_file.cpp msgid "" @@ -2680,7 +2681,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Crash message" -msgstr "Kræsjmelding" +msgstr "Krasjmelding" #: src/settings_translation_file.cpp msgid "Creative" From fa5092dabcf698f1bedf34a5c87f830dea82338e Mon Sep 17 00:00:00 2001 From: Gao Tiesuan Date: Sat, 21 Nov 2020 04:48:31 +0000 Subject: [PATCH 445/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 90.8% (1227 of 1350 strings) --- po/zh_CN/minetest.po | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 748e38b55..768e02609 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-11-21 04:52+0000\n" -"Last-Translator: IFRFSX <1079092922@qq.com>\n" +"Last-Translator: Gao Tiesuan \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -351,7 +351,6 @@ msgid "Rivers" msgstr "河流" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Sea level rivers" msgstr "海平面河流" From 3b46e943183524329c4d8168ce2a1ea0ad5e916c Mon Sep 17 00:00:00 2001 From: IFRFSX <1079092922@qq.com> Date: Sat, 21 Nov 2020 04:52:27 +0000 Subject: [PATCH 446/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 90.9% (1228 of 1350 strings) --- po/zh_CN/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 768e02609..982502c7f 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-11-21 04:52+0000\n" -"Last-Translator: Gao Tiesuan \n" +"Last-Translator: IFRFSX <1079092922@qq.com>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -399,7 +399,7 @@ msgstr "改变河的深度" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "地下深处的巨大洞穴" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy From 60a7c02511fc694dd5c230ba357f813d6d198910 Mon Sep 17 00:00:00 2001 From: Gao Tiesuan Date: Sat, 21 Nov 2020 04:52:13 +0000 Subject: [PATCH 447/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 90.9% (1228 of 1350 strings) --- po/zh_CN/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 982502c7f..ca45d8e46 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-11-21 04:52+0000\n" -"Last-Translator: IFRFSX <1079092922@qq.com>\n" +"Last-Translator: Gao Tiesuan \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -395,7 +395,7 @@ msgstr "树木和丛林草" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "改变河的深度" +msgstr "变化河流深度" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" From dd08fe0a29e2b287721143324e143eb8395bb852 Mon Sep 17 00:00:00 2001 From: IFRFSX <1079092922@qq.com> Date: Sat, 21 Nov 2020 04:54:46 +0000 Subject: [PATCH 448/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 91.2% (1232 of 1350 strings) --- po/zh_CN/minetest.po | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index ca45d8e46..1f36a639c 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-11-21 04:52+0000\n" -"Last-Translator: Gao Tiesuan \n" +"PO-Revision-Date: 2020-11-21 04:55+0000\n" +"Last-Translator: IFRFSX <1079092922@qq.com>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -402,9 +402,8 @@ msgid "Very large caverns deep in the underground" msgstr "地下深处的巨大洞穴" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "警告: 最小化开发测试是为开发者提供的。" +msgstr "警告:开发测试是为开发者提供的。" #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -716,7 +715,7 @@ msgstr "建立服务器" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "从 ContentDB 安装游戏" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -1375,11 +1374,11 @@ msgstr "已静音" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "声音系统已禁用" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "此版本不支持声音系统" #: src/client/game.cpp msgid "Sound unmuted" From 64599a493cfb3fbbee94de7ef5780a380fa41699 Mon Sep 17 00:00:00 2001 From: Gao Tiesuan Date: Sat, 21 Nov 2020 04:52:48 +0000 Subject: [PATCH 449/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 91.2% (1232 of 1350 strings) --- po/zh_CN/minetest.po | 46 +++++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 1f36a639c..d3d807f97 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-11-21 04:55+0000\n" -"Last-Translator: IFRFSX <1079092922@qq.com>\n" +"PO-Revision-Date: 2020-11-24 11:29+0000\n" +"Last-Translator: Gao Tiesuan \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -399,7 +399,7 @@ msgstr "变化河流深度" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "地下深处的巨大洞穴" +msgstr "地下深处的大型洞穴" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." @@ -1378,7 +1378,7 @@ msgstr "声音系统已禁用" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "此版本不支持声音系统" +msgstr "此编译版本不支持声音系统" #: src/client/game.cpp msgid "Sound unmuted" @@ -2102,9 +2102,8 @@ msgid "ABM interval" msgstr "ABM间隔" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" -msgstr "生产队列绝对限制" +msgstr "待显示方块队列的绝对限制" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2452,18 +2451,16 @@ msgstr "" "需要用于小屏幕。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "字体大小" +msgstr "聊天字体大小" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "聊天键" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "调试日志级别" +msgstr "聊天日志级别" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2751,9 +2748,8 @@ msgid "Default report format" msgstr "默认报告格式" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "默认游戏" +msgstr "默认栈大小" #: src/settings_translation_file.cpp msgid "" @@ -3242,39 +3238,32 @@ msgid "Fixed virtual joystick" msgstr "固定虚拟摇杆" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "水级别" +msgstr "悬空岛密度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "地窖最大Y坐标" +msgstr "悬空岛最大Y坐标" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "地窖最小Y坐标" +msgstr "悬空岛最小Y坐标" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "水级别" +msgstr "悬空岛噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "水级别" +msgstr "悬空岛尖锐指数" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "玩家转移距离" +msgstr "悬空岛尖锐距离" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "水级别" +msgstr "悬空岛水位" #: src/settings_translation_file.cpp msgid "Fly key" @@ -5012,9 +5001,8 @@ msgid "Lower Y limit of dungeons." msgstr "地窖的Y值下限。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "地窖的Y值下限。" +msgstr "悬空岛的Y值下限。" #: src/settings_translation_file.cpp msgid "Main menu script" @@ -6811,10 +6799,12 @@ msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "快速模式下的步行、飞行和攀爬速度,单位为方块每秒。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Water level" msgstr "水级别" #: src/settings_translation_file.cpp +#, fuzzy msgid "Water surface level of the world." msgstr "世界水平面级别。" From bc69b4d52c1dd7eed09f56f7361b21b2bc570866 Mon Sep 17 00:00:00 2001 From: Janar Leas Date: Mon, 23 Nov 2020 01:30:55 +0000 Subject: [PATCH 450/624] Translated using Weblate (Estonian) Currently translated at 39.3% (531 of 1350 strings) --- po/et/minetest.po | 220 +++++++++++++++++++++------------------------- 1 file changed, 98 insertions(+), 122 deletions(-) diff --git a/po/et/minetest.po b/po/et/minetest.po index a0e736bb1..23fa62808 100644 --- a/po/et/minetest.po +++ b/po/et/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Estonian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-11-08 06:26+0000\n" -"Last-Translator: Janar Leas \n" +"PO-Revision-Date: 2020-12-05 15:29+0000\n" +"Last-Translator: Janar Leas \n" "Language-Team: Estonian \n" "Language: et\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -111,7 +111,7 @@ msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"Tõrge MOD-i \"$1\" lubamisel, kuna sisaldab keelatud sümboleid. Lubatud on " +"MOD-i \"$1\" kasutamine nurjus, kuna sisaldab keelatud sümboleid. Lubatud on " "ainult [a-z0-9_] märgid." #: builtin/mainmenu/dlg_config_world.lua @@ -361,7 +361,7 @@ msgstr "Jõed merekõrgusel" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "Seed" +msgstr "Külv" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" @@ -393,7 +393,7 @@ msgstr "Rohtla, Lagendik, Tihnik, Tundra, Laas" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Maapinna kulumine" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" @@ -401,11 +401,11 @@ msgstr "Puud ja tihniku rohi" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Muutlik jõe sügavus" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Väga suured koopasaalid maapõue sügavuses" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." @@ -447,7 +447,7 @@ msgstr "Nõustu" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "Nimetad ümber MOD-i paki:" +msgstr "Taasnimeta MOD-i pakk:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -463,7 +463,7 @@ msgstr "(Kirjeldus seadistusele puudub)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" -msgstr "2-mõõtmeline müra" +msgstr "kahemõõtmeline müra" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" @@ -487,11 +487,11 @@ msgstr "Lubatud" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" -msgstr "Lakunaarsus" +msgstr "Pinna auklikus" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" -msgstr "Oktaavid" +msgstr "Oktavid" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" @@ -543,7 +543,7 @@ msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" -msgstr "X levitus" +msgstr "X levi" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" @@ -551,7 +551,7 @@ msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "Y levitus" +msgstr "Y levi" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" @@ -559,7 +559,7 @@ msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" -msgstr "Z levitus" +msgstr "Z levi" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". @@ -567,14 +567,14 @@ msgstr "Z levitus" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" -msgstr "absoluutväärtus" +msgstr "täisväärtus" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "vaikesätted" +msgstr "algne" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -675,59 +675,59 @@ msgstr "Vali tekstuurikomplekt" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" -msgstr "Co-arendaja" +msgstr "Tegevad panustajad" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "Põhiline arendaja" +msgstr "Põhi arendajad" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "Tänuavaldused" +msgstr "Tegijad" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" -msgstr "Early arendajad" +msgstr "Eelnevad panustajad" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "Eelmised põhilised arendajad" +msgstr "Eelnevad põhi-arendajad" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "Kuuluta serverist" +msgstr "Võõrustamise kuulutamine" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" -msgstr "Aadress" +msgstr "Seo aadress" #: builtin/mainmenu/tab_local.lua msgid "Configure" -msgstr "Konfigureeri" +msgstr "Kohanda" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" -msgstr "Kujunduslik mängumood" +msgstr "Looja" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Enable Damage" -msgstr "Lülita valu sisse" +msgstr "Ellujääja" #: builtin/mainmenu/tab_local.lua msgid "Host Game" -msgstr "Majuta mäng" +msgstr "Võõrusta" #: builtin/mainmenu/tab_local.lua msgid "Host Server" -msgstr "Majuta server" +msgstr "Majuta külastajatele" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Lisa mänge sisuvaramust" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" -msgstr "Nimi/Parool" +msgstr "Nimi/Salasõna" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -735,7 +735,7 @@ msgstr "Uus" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" -msgstr "Ühtegi maailma pole loodud ega valitud!" +msgstr "Pole valitud ega loodud ühtegi maailma!" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -751,52 +751,52 @@ msgstr "Vali maailm:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" -msgstr "Serveri port" +msgstr "Võõrustaja kanal" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "Alusta mäng" +msgstr "Alusta mängu" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "Aadress / Port" +msgstr "Aadress / kanal" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Connect" -msgstr "Liitu" +msgstr "Ühine" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative mode" -msgstr "Loov režiim" +msgstr "Looja" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Damage enabled" -msgstr "Kahjustamine lubatud" +msgstr "Ellujääja" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Del. Favorite" -msgstr "Eemalda lemmik" +msgstr "Pole lemmik" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Favorite" -msgstr "Lisa lemmikuks" +msgstr "On lemmik" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "Liitu mänguga" +msgstr "Ühine" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" -msgstr "Nimi / Salasõna" +msgstr "Nimi / salasõna" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Ping" -msgstr "Ping" +msgstr "Viivitus" #. ~ PvP = Player versus Player #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "PvP enabled" -msgstr "PvP lubatud" +msgstr "Vaenulikus lubatud" #: builtin/mainmenu/tab_settings.lua msgid "2x" @@ -804,7 +804,7 @@ msgstr "2x" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" -msgstr "3D pilved" +msgstr "Ruumilised pilved" #: builtin/mainmenu/tab_settings.lua msgid "4x" @@ -820,15 +820,15 @@ msgstr "Kõik sätted" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "Antialiasing:" +msgstr "Silu servad:" #: builtin/mainmenu/tab_settings.lua msgid "Are you sure to reset your singleplayer world?" -msgstr "Olete kindel, et lähtestate oma üksikmängija maailma?" +msgstr "Kindlasti lähtestad oma üksikmängija maailma algseks?" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "Salvesta ekraani suurus" +msgstr "Mäleta ekraani suurust" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" @@ -836,7 +836,7 @@ msgstr "Bi-lineaarne filtreerimine" #: builtin/mainmenu/tab_settings.lua msgid "Bump Mapping" -msgstr "Muhkkaardistamine" +msgstr "Konarlik tapeet" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" @@ -876,11 +876,11 @@ msgstr "Mipmapita" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "Blokkide esiletõstmine" +msgstr "Valitud klotsi ilme" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" -msgstr "Blokkide kontuur" +msgstr "Klotsi servad" #: builtin/mainmenu/tab_settings.lua msgid "None" @@ -988,11 +988,11 @@ msgstr "Valmis!" #: src/client/client.cpp msgid "Initializing nodes" -msgstr "Blokkide häälestamine" +msgstr "Klotsidega täitmine" #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "Blokkide häälestamine..." +msgstr "Klotsidega täitmine..." #: src/client/client.cpp msgid "Loading textures..." @@ -1334,15 +1334,15 @@ msgstr "Haakumatus lubatud (pole 'haakumatus' volitust)" #: src/client/game.cpp msgid "Node definitions..." -msgstr "" +msgstr "Klotsi määratlused..." #: src/client/game.cpp msgid "Off" -msgstr "" +msgstr "Väljas" #: src/client/game.cpp msgid "On" -msgstr "" +msgstr "Sees" #: src/client/game.cpp msgid "Pitch move mode disabled" @@ -1358,15 +1358,15 @@ msgstr "" #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "Kaug võõrustaja" #: src/client/game.cpp msgid "Resolving address..." -msgstr "" +msgstr "Aadressi lahendamine..." #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "Sulgemine..." #: src/client/game.cpp msgid "Singleplayer" @@ -1382,11 +1382,11 @@ msgstr "Heli vaigistatud" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Heli süsteem on keelatud" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "See kooste ei toeta heli süsteemi" #: src/client/game.cpp msgid "Sound unmuted" @@ -1395,17 +1395,17 @@ msgstr "Heli taastatud" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "Vaate kaugus on nüüd: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "Vaate kaugus on suurim võimalik: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "Vaate kaugus on vähim võimalik: %d" #: src/client/game.cpp #, c-format @@ -2079,7 +2079,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Raskuskiirendus, (klotsi sekundis) sekundi kohta." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2106,7 +2106,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." -msgstr "" +msgstr "Lendlevad osakesed klotsi kaevandamisel." #: src/settings_translation_file.cpp msgid "" @@ -2212,7 +2212,7 @@ msgstr "Automaatse edasiliikumise klahv" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "Iseseisvalt hüppab üle ühe klotsi kordse tõkke." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." @@ -2519,7 +2519,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." -msgstr "" +msgstr "Ühendab klaasi, kui klots võimaldab." #: src/settings_translation_file.cpp msgid "Console alpha" @@ -3775,9 +3775,8 @@ msgid "Inventory items animations" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Inventory key" -msgstr "Seljakott" +msgstr "Varustuse klahv" #: src/settings_translation_file.cpp msgid "Invert mouse" @@ -5165,9 +5164,8 @@ msgid "Physics" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "Kujunduslik mängumood" +msgstr "Kõrvale astumise klahv" #: src/settings_translation_file.cpp msgid "Pitch move mode" @@ -5261,18 +5259,16 @@ msgid "Random input" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Range select key" -msgstr "Kauguse valik" +msgstr "Valiku ulatuse klahv" #: src/settings_translation_file.cpp msgid "Recent Chat Messages" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" -msgstr "Vali" +msgstr "Tavafondi asukoht" #: src/settings_translation_file.cpp msgid "Remote media" @@ -5293,9 +5289,8 @@ msgid "Replaces the default main menu with a custom one." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Report path" -msgstr "Vali" +msgstr "Aruande asukoht" #: src/settings_translation_file.cpp msgid "" @@ -5328,9 +5323,8 @@ msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Right key" -msgstr "Parem Menüü" +msgstr "Parem klahv" #: src/settings_translation_file.cpp msgid "Rightclick repetition interval" @@ -5349,9 +5343,8 @@ msgid "River depth" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "River noise" -msgstr "Parem Windowsi nupp" +msgstr "Jõe müra" #: src/settings_translation_file.cpp msgid "River size" @@ -5419,14 +5412,12 @@ msgid "Screenshot folder" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Screenshot format" -msgstr "Mängupilt" +msgstr "Kuvapildi vorming" #: src/settings_translation_file.cpp -#, fuzzy msgid "Screenshot quality" -msgstr "Mängupilt" +msgstr "Kuvapildi tase" #: src/settings_translation_file.cpp msgid "" @@ -5491,9 +5482,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Server / Singleplayer" -msgstr "Üksikmäng" +msgstr "Võõrusta / Üksi" #: src/settings_translation_file.cpp msgid "Server URL" @@ -5556,9 +5546,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Shader path" -msgstr "Varjutajad" +msgstr "Varjutaja asukoht" #: src/settings_translation_file.cpp msgid "" @@ -5638,9 +5627,8 @@ msgid "Small-scale temperature variation for blending biomes on borders." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Smooth lighting" -msgstr "Ilus valgustus" +msgstr "Hajus valgus" #: src/settings_translation_file.cpp msgid "" @@ -5657,14 +5645,12 @@ msgid "Smooths rotation of camera. 0 to disable." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Sneak key" -msgstr "Hiilimine" +msgstr "Hiilimis klahv" #: src/settings_translation_file.cpp -#, fuzzy msgid "Sneaking speed" -msgstr "Hiilimine" +msgstr "Hiilimis kiirus" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." @@ -5675,9 +5661,8 @@ msgid "Sound" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key" -msgstr "Hiilimine" +msgstr "Eri klahv" #: src/settings_translation_file.cpp msgid "Special key for climbing/descending" @@ -5973,18 +5958,16 @@ msgid "Tooltip delay" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Touch screen threshold" -msgstr "Põlvkonna kaardid" +msgstr "Puuteekraani lävi" #: src/settings_translation_file.cpp msgid "Trees noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Trilinear filtering" -msgstr "Tri-Linear Filtreerimine" +msgstr "kolmik-lineaar filtreerimine" #: src/settings_translation_file.cpp msgid "" @@ -6131,7 +6114,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "View distance in nodes." -msgstr "" +msgstr "Vaate kaugus klotsides." #: src/settings_translation_file.cpp msgid "View range decrease key" @@ -6154,9 +6137,8 @@ msgid "Virtual joystick triggers aux button" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Volume" -msgstr "Hääle volüüm" +msgstr "Valjus" #: src/settings_translation_file.cpp msgid "" @@ -6191,40 +6173,35 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Water surface level of the world." -msgstr "" +msgstr "Merepinna kõrgus maailmas." #: src/settings_translation_file.cpp msgid "Waving Nodes" -msgstr "" +msgstr "Lainetavad klotsid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving leaves" -msgstr "Uhked puud" +msgstr "Lehvivad lehed" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" msgstr "Lainetavad vedelikud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "Uhked puud" +msgstr "Vedeliku laine kõrgus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" -msgstr "Uhked puud" +msgstr "Vedeliku laine kiirus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "Uhked puud" +msgstr "Vedeliku laine pikkus" #: src/settings_translation_file.cpp msgid "Waving plants" -msgstr "" +msgstr "Õõtsuvad taimed" #: src/settings_translation_file.cpp msgid "" @@ -6273,7 +6250,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "Kas mängjail on võimalus teineteist tappa." #: src/settings_translation_file.cpp msgid "" @@ -6283,7 +6260,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to fog out the end of the visible area." -msgstr "" +msgstr "Kas nähtava ala lõpp udutada." #: src/settings_translation_file.cpp msgid "" @@ -6320,9 +6297,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "World start time" -msgstr "Maailma nimi" +msgstr "Aeg alustatavas maailmas" #: src/settings_translation_file.cpp msgid "" @@ -6394,7 +6370,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL timeout" -msgstr "" +msgstr "cURL aegus" #, fuzzy #~ msgid "Toggle Cinematic" From 49728d0b01e67cbb69aec394d7af5b81e86e5ebc Mon Sep 17 00:00:00 2001 From: IFRFSX <1079092922@qq.com> Date: Sat, 21 Nov 2020 04:55:34 +0000 Subject: [PATCH 451/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 92.0% (1243 of 1350 strings) --- po/zh_CN/minetest.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index d3d807f97..55b033acc 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-11-24 11:29+0000\n" -"Last-Translator: Gao Tiesuan \n" +"Last-Translator: IFRFSX <1079092922@qq.com>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -2013,9 +2013,8 @@ msgid "3D mode" msgstr "3D 模式" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "法线贴图强度" +msgstr "3D模式视差强度" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." From a66401b32d34432de545670e92a022e045faa38d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Villalba?= Date: Fri, 27 Nov 2020 23:15:24 +0000 Subject: [PATCH 452/624] Translated using Weblate (Spanish) Currently translated at 73.9% (998 of 1350 strings) --- po/es/minetest.po | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index d9955e353..c121cd72c 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-09-22 03:39+0000\n" -"Last-Translator: Jo \n" +"PO-Revision-Date: 2020-12-24 05:29+0000\n" +"Last-Translator: Joaquín Villalba \n" "Language-Team: Spanish \n" "Language: es\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1337,7 +1337,7 @@ msgstr "Modo 'Noclip' activado" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Modo \"noclip\" activado (nota: sin privilegio 'noclip')" +msgstr "Modo 'Noclip' activado (nota: sin privilegio 'noclip')" #: src/client/game.cpp msgid "Node definitions..." @@ -1437,7 +1437,7 @@ msgstr "Chat oculto" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "Chat mostrado" +msgstr "Chat visible" #: src/client/gameui.cpp msgid "HUD hidden" @@ -1993,7 +1993,7 @@ msgstr "" "limitado en tamaño por el mundo.\n" "Incrementa estos valores para 'ampliar' el detalle del fractal.\n" "El valor por defecto es para ajustar verticalmente la forma para\n" -"una isla, establece los 3 números igual para la forma pura." +"una isla, establece los 3 números iguales para la forma inicial." #: src/settings_translation_file.cpp msgid "" @@ -5256,7 +5256,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Map save interval" -msgstr "" +msgstr "Intervalo de guardado de mapa" #: src/settings_translation_file.cpp msgid "Mapblock limit" @@ -5288,54 +5288,48 @@ msgid "Mapgen Flat" msgstr "Generador de mapas plano" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas plano" #: src/settings_translation_file.cpp msgid "Mapgen Fractal" msgstr "Generador de mapas fractal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas fractal" #: src/settings_translation_file.cpp msgid "Mapgen V5" msgstr "Generador de mapas V5" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5 specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas V5" #: src/settings_translation_file.cpp msgid "Mapgen V6" msgstr "Generador de mapas V6" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6 specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas V6" #: src/settings_translation_file.cpp msgid "Mapgen V7" msgstr "Generador de mapas v7" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7 specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas V7" #: src/settings_translation_file.cpp msgid "Mapgen Valleys" -msgstr "Valles de Mapgen" +msgstr "Generador de mapas Valleys" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Valleys specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas Valleys" #: src/settings_translation_file.cpp msgid "Mapgen debug" @@ -5479,6 +5473,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." msgstr "" +"Tiempo máximo en ms que puede demorar una descarga (por ejemplo, la descarga " +"de un mod)." #: src/settings_translation_file.cpp msgid "Maximum users" @@ -5490,7 +5486,7 @@ msgstr "Menús" #: src/settings_translation_file.cpp msgid "Mesh cache" -msgstr "" +msgstr "Caché de mallas poligonales" #: src/settings_translation_file.cpp msgid "Message of the day" @@ -5506,7 +5502,7 @@ msgstr "Método utilizado para resaltar el objeto seleccionado." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Nivel mínimo de logging a ser escrito al chat." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5548,11 +5544,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Monospace font path" -msgstr "" +msgstr "Ruta de fuente monoespaciada" #: src/settings_translation_file.cpp msgid "Monospace font size" -msgstr "" +msgstr "Tamaño de fuente monoespaciada" #: src/settings_translation_file.cpp msgid "Mountain height noise" @@ -5572,11 +5568,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Mouse sensitivity" -msgstr "" +msgstr "Sensibilidad del ratón" #: src/settings_translation_file.cpp msgid "Mouse sensitivity multiplier." -msgstr "" +msgstr "Multiplicador de sensiblidad del ratón." #: src/settings_translation_file.cpp msgid "Mud noise" @@ -5610,6 +5606,10 @@ msgid "" "When running a server, clients connecting with this name are admins.\n" "When starting from the main menu, this is overridden." msgstr "" +"Nombre del jugador.\n" +"Cuando se ejecuta un servidor, los clientes que se conecten con este nombre " +"son administradores.\n" +"Al comenzar desde el menú principal, esto se anula." #: src/settings_translation_file.cpp msgid "" @@ -5632,7 +5632,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "New users need to input this password." -msgstr "" +msgstr "Los usuarios nuevos deben ingresar esta contraseña." #: src/settings_translation_file.cpp msgid "Noclip" @@ -7057,7 +7057,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL file download timeout" -msgstr "" +msgstr "Tiempo de espera de descarga por cURL" #: src/settings_translation_file.cpp msgid "cURL parallel limit" From 339faea2e79b2f374700bc463a27aeeed4152f24 Mon Sep 17 00:00:00 2001 From: Quick Shell Date: Fri, 27 Nov 2020 06:43:46 +0000 Subject: [PATCH 453/624] Translated using Weblate (Korean) Currently translated at 75.1% (1015 of 1350 strings) --- po/ko/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/ko/minetest.po b/po/ko/minetest.po index 7801daebb..8ed363340 100644 --- a/po/ko/minetest.po +++ b/po/ko/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-11-28 23:29+0000\n" -"Last-Translator: HunSeongPark \n" +"Last-Translator: Quick Shell \n" "Language-Team: Korean \n" "Language: ko\n" @@ -90,7 +90,7 @@ msgstr "종속성:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "모두 비활성화" +msgstr "모두 사용안함" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" From 54a3b37ea4f000256924ff6af9cc09b890911243 Mon Sep 17 00:00:00 2001 From: miaplacidus Date: Fri, 27 Nov 2020 06:43:43 +0000 Subject: [PATCH 454/624] Translated using Weblate (Korean) Currently translated at 75.1% (1015 of 1350 strings) --- po/ko/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/ko/minetest.po b/po/ko/minetest.po index 8ed363340..d7536e3b6 100644 --- a/po/ko/minetest.po +++ b/po/ko/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-11-28 23:29+0000\n" -"Last-Translator: Quick Shell \n" +"Last-Translator: miaplacidus \n" "Language-Team: Korean \n" "Language: ko\n" @@ -86,7 +86,7 @@ msgstr "취소" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "종속성:" +msgstr "의존:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" From 14f9794ba80f956fb1002f6ba020b864285b0cf3 Mon Sep 17 00:00:00 2001 From: HunSeongPark Date: Fri, 4 Dec 2020 14:48:32 +0000 Subject: [PATCH 455/624] Translated using Weblate (Korean) Currently translated at 75.2% (1016 of 1350 strings) --- po/ko/minetest.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/ko/minetest.po b/po/ko/minetest.po index d7536e3b6..3768bd5a5 100644 --- a/po/ko/minetest.po +++ b/po/ko/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Korean (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-11-28 23:29+0000\n" -"Last-Translator: miaplacidus \n" +"PO-Revision-Date: 2020-12-05 15:29+0000\n" +"Last-Translator: HunSeongPark \n" "Language-Team: Korean \n" "Language: ko\n" @@ -6458,7 +6458,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "" +msgstr "숫자 의 마우스 설정." #: src/settings_translation_file.cpp msgid "" From 33d9f83c44b4b6cfb605296919270e9e96372e0a Mon Sep 17 00:00:00 2001 From: ZhiZe-ZG Date: Mon, 7 Dec 2020 09:10:38 +0000 Subject: [PATCH 456/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 94.2% (1273 of 1350 strings) --- po/zh_CN/minetest.po | 82 +++++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 35 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 55b033acc..81ee05342 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-11-24 11:29+0000\n" -"Last-Translator: IFRFSX <1079092922@qq.com>\n" +"PO-Revision-Date: 2020-12-07 09:22+0000\n" +"Last-Translator: ZhiZe-ZG \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -5083,7 +5083,6 @@ msgstr "" "忽略'jungles'标签。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" @@ -5091,7 +5090,9 @@ msgid "" "'caverns': Giant caves deep underground." msgstr "" "针对v7地图生成器的属性。\n" -"'ridges'启用河流。" +"'ridges':启用河流。\n" +"'floatlands':漂浮于大气中的陆块。\n" +"'caverns':地下深处的巨大洞穴。" #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5248,22 +5249,20 @@ msgid "Maximum number of blocks that can be queued for loading." msgstr "可在加载时加入队列的最大方块数。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" "在生成时加入队列的最大方块数。\n" -"设置为空白则自动选择合适的数值。" +"此限制对每位玩家强制执行。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" "在从文件中加载时加入队列的最大方块数。\n" -"设置为空白则自动选择合适的数值。" +"此限制对每位玩家强制执行。" #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5527,7 +5526,6 @@ msgid "Number of emerge threads" msgstr "生产线程数" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "Value 0:\n" @@ -5541,9 +5539,6 @@ msgid "" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" "使用的生产线程数。\n" -"警告:当'num_emerge_threads'大于1时,目前有很\n" -"多bug会导致崩溃。\n" -"强烈建议在此警告被移除之前将此值设为默认值'1'。\n" "值0:\n" "- 自动选择。生产线程数会是‘处理器数-2’,\n" "- 下限为1。\n" @@ -5552,7 +5547,7 @@ msgstr "" "警告:增大此值会提高引擎地图生成器速度,但会由于\n" "干扰其他进程而影响游戏体验,尤其是单人模式或运行\n" "‘on_generated’中的Lua代码。对于大部分用户来说,最\n" -"佳值为1。" +"佳值为'1'。" #: src/settings_translation_file.cpp msgid "" @@ -5685,9 +5680,8 @@ msgid "Per-player limit of queued blocks load from disk" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Per-player limit of queued blocks to generate" -msgstr "要生成的生产队列限制" +msgstr "每个玩家要生成的生产队列限制" #: src/settings_translation_file.cpp msgid "Physics" @@ -6207,7 +6201,7 @@ msgstr "切片 w" #: src/settings_translation_file.cpp msgid "Slope and fill work together to modify the heights." -msgstr "" +msgstr "斜率和填充共同工作来修改高度。" #: src/settings_translation_file.cpp msgid "Small cave maximum number" @@ -6287,6 +6281,8 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"指定节点、物品和工具的默认堆叠数量。\n" +"请注意,mod或游戏可能会为某些(或所有)项目明确设置堆栈。" #: src/settings_translation_file.cpp msgid "" @@ -6294,6 +6290,9 @@ msgid "" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" +"光曲线提升范围的分布。\n" +"控制要提升的范围的宽度。\n" +"光曲线的标准偏差可提升高斯。" #: src/settings_translation_file.cpp msgid "Static spawnpoint" @@ -6301,21 +6300,19 @@ msgstr "静态重生点" #: src/settings_translation_file.cpp msgid "Steepness noise" -msgstr "" +msgstr "陡度噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain size noise" -msgstr "地形高度" +msgstr "单步山峰高度噪声" #: src/settings_translation_file.cpp msgid "Step mountain spread noise" -msgstr "" +msgstr "单步山峰广度噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." -msgstr "视差强度。" +msgstr "3D 模式视差的强度。" #: src/settings_translation_file.cpp msgid "Strength of generated normalmaps." @@ -6327,6 +6324,9 @@ msgid "" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" +"光照曲线提升的强度。\n" +"3 个'boost'参数定义了在亮度上提升的\n" +"光照曲线的范围。" #: src/settings_translation_file.cpp msgid "Strict protocol checking" @@ -6334,7 +6334,7 @@ msgstr "严格协议检查" #: src/settings_translation_file.cpp msgid "Strip color codes" -msgstr "" +msgstr "条形颜色代码" #: src/settings_translation_file.cpp msgid "" @@ -6349,6 +6349,16 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"放置在固体浮地层的可选水的表面水平。\n" +"默认情况下,水处于禁用状态,并且仅在设置此值时才放置\n" +"在'mgv7_floatland_ymax' - 'mgv7_floatland_taper'上(\n" +"上部逐渐变细的开始)。\n" +"***警告,世界存档和服务器性能的潜在危险***:\n" +"启用水放置时,必须配置和测试悬空岛\n" +"通过将\"mgv7_floatland_density\"设置为 2.0(或其他\n" +"所需的值,具体取决于mgv7_np_floatland\"),确保是固体层,\n" +"以避免服务器密集的极端水流,\n" +"并避免地表的巨大的洪水。" #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6356,32 +6366,27 @@ msgstr "同步 SQLite" #: src/settings_translation_file.cpp msgid "Temperature variation for biomes." -msgstr "" +msgstr "生物群系的温度变化。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain alternative noise" -msgstr "地形高度" +msgstr "地形替代噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain base noise" -msgstr "地形高度" +msgstr "地形基准高度噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain height" msgstr "地形高度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain higher noise" -msgstr "地形高度" +msgstr "地形增高噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain noise" -msgstr "地形高度" +msgstr "地形噪声" #: src/settings_translation_file.cpp msgid "" @@ -6389,6 +6394,9 @@ msgid "" "Controls proportion of world area covered by hills.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"丘陵的地形噪声阈值。\n" +"控制山丘覆盖的世界区域的比例。\n" +"朝0.0调整较大的比例。" #: src/settings_translation_file.cpp msgid "" @@ -6396,10 +6404,13 @@ msgid "" "Controls proportion of world area covered by lakes.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"湖泊的地形噪声阈值。\n" +"控制被湖泊覆盖的世界区域的比例。\n" +"朝0.0调整较大的比例。" #: src/settings_translation_file.cpp msgid "Terrain persistence noise" -msgstr "" +msgstr "地形持久性噪声" #: src/settings_translation_file.cpp msgid "Texture path" @@ -6416,8 +6427,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "The URL for the content repository" -msgstr "" +msgstr "内容存储库的 URL" #: src/settings_translation_file.cpp msgid "" From 9e209a4a90aa4aa050db4b5538a270d9e74b3e57 Mon Sep 17 00:00:00 2001 From: IFRFSX <1079092922@qq.com> Date: Mon, 7 Dec 2020 08:38:55 +0000 Subject: [PATCH 457/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 94.2% (1273 of 1350 strings) --- po/zh_CN/minetest.po | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 81ee05342..09cf7097f 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-12-07 09:22+0000\n" -"Last-Translator: ZhiZe-ZG \n" +"Last-Translator: IFRFSX <1079092922@qq.com>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -3321,6 +3321,8 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"最近聊天文本和聊天提示的字体大小(pt)。\n" +"值为0将使用默认字体大小。" #: src/settings_translation_file.cpp msgid "" @@ -5356,7 +5358,7 @@ msgstr "用于高亮选定的对象的方法。" #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "写入聊天的最小日志级别。" #: src/settings_translation_file.cpp msgid "Minimap" @@ -5636,6 +5638,8 @@ msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"路径保存截图。可以是绝对路径或相对路径。\n" +"如果该文件夹不存在,将创建它。" #: src/settings_translation_file.cpp msgid "" @@ -5677,7 +5681,7 @@ msgstr "丢失窗口焦点时暂停" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" -msgstr "" +msgstr "每个玩家从磁盘加载的队列块的限制" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks to generate" @@ -5761,7 +5765,7 @@ msgstr "性能分析" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Prometheus 监听器地址" #: src/settings_translation_file.cpp msgid "" @@ -5770,6 +5774,10 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Prometheus 监听器地址。\n" +"如果minetest是在启用ENABLE_PROMETHEUS选项的情况下编译的,\n" +"在该地址上为 Prometheus 启用指标侦听器。\n" +"可以从 http://127.0.0.1:30000/metrics 获取指标" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." From 9cf4cba7e53e540074cf18548e4575c396cc857e Mon Sep 17 00:00:00 2001 From: ZhiZe-ZG Date: Mon, 7 Dec 2020 10:01:26 +0000 Subject: [PATCH 458/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 95.1% (1284 of 1350 strings) --- po/zh_CN/minetest.po | 51 +++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 09cf7097f..3c2b3f312 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-12-07 09:22+0000\n" -"Last-Translator: IFRFSX <1079092922@qq.com>\n" +"PO-Revision-Date: 2020-12-08 10:29+0000\n" +"Last-Translator: ZhiZe-ZG \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -1721,8 +1721,9 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"这是你第一次用“%s”加入服务器。 如果要继续,一个新的用户将在服务器上创建。\n" -"请重新输入你的密码然后点击“注册”或点击“取消”。" +"这是你第一次用“%s”加入服务器。\n" +"如果要继续,一个新的用户将在服务器上创建。\n" +"请重新输入你的密码然后点击“注册”来创建用户或点击“取消”退出。" #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -6593,9 +6594,8 @@ msgid "Tooltip delay" msgstr "工具提示延迟" #: src/settings_translation_file.cpp -#, fuzzy msgid "Touch screen threshold" -msgstr "海滩噪音阈值" +msgstr "触屏阈值" #: src/settings_translation_file.cpp msgid "Trees noise" @@ -6611,18 +6611,23 @@ msgid "" "False = 128\n" "Usable to make minimap smoother on slower machines." msgstr "" +"True = 256\n" +"False = 128\n" +"可用于在较慢的机器上使最小地图更平滑。" #: src/settings_translation_file.cpp msgid "Trusted mods" msgstr "可信 mod" #: src/settings_translation_file.cpp +#, fuzzy msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" +msgstr "显示在“多人游戏”选项卡中的服务器列表的URL。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Undersampling" -msgstr "" +msgstr "欠采样" #: src/settings_translation_file.cpp msgid "" @@ -6646,17 +6651,17 @@ msgid "Upper Y limit of dungeons." msgstr "地窖的Y值上限。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "地窖的Y值上限。" +msgstr "悬空岛的Y值上限。" #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." msgstr "使用 3D 云彩,而不是看起来是平面的。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Use a cloud animation for the main menu background." -msgstr "" +msgstr "主菜单背景使用云动画。" #: src/settings_translation_file.cpp msgid "Use anisotropic filtering when viewing at textures from an angle." @@ -6757,11 +6762,8 @@ msgid "View bobbing factor" msgstr "范围摇动" #: src/settings_translation_file.cpp -#, fuzzy msgid "View distance in nodes." -msgstr "" -"节点间可视距离。\n" -"最小 = 20" +msgstr "可视距离(以节点方块为单位)。" #: src/settings_translation_file.cpp msgid "View range decrease key" @@ -6818,9 +6820,8 @@ msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "快速模式下的步行、飞行和攀爬速度,单位为方块每秒。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Water level" -msgstr "水级别" +msgstr "水位" #: src/settings_translation_file.cpp #, fuzzy @@ -6836,24 +6837,20 @@ msgid "Waving leaves" msgstr "摇动树叶" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "摇动流体" +msgstr "波动流体" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "摇动水高度" +msgstr "波动液体波动高度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" -msgstr "摇动水速度" +msgstr "波动液体波动速度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "摇动水长度" +msgstr "波动液体波动长度" #: src/settings_translation_file.cpp msgid "Waving plants" @@ -7016,11 +7013,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of lower terrain and seabed." -msgstr "" +msgstr "较低地形与海底的Y坐标。" #: src/settings_translation_file.cpp msgid "Y-level of seabed." -msgstr "" +msgstr "海底的Y坐标。" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From 09b87c6e1a96f812bf20b2973cd219a8ddc2fcd7 Mon Sep 17 00:00:00 2001 From: IFRFSX <1079092922@qq.com> Date: Mon, 7 Dec 2020 09:59:14 +0000 Subject: [PATCH 459/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 95.1% (1284 of 1350 strings) --- po/zh_CN/minetest.po | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 3c2b3f312..544ed38ba 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-12-08 10:29+0000\n" -"Last-Translator: ZhiZe-ZG \n" +"Last-Translator: IFRFSX <1079092922@qq.com>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -2160,8 +2160,9 @@ msgid "" msgstr "" "调整悬空岛层的密度。\n" "增加值以增加密度。可以是正值或负值。\n" -"Value = 0.0: 容积的50%是floatland。\n" -"Value = 2.0 (可以更高,取决于“mgv7_np_floatland”,始终测试以确定)创建一个坚实的悬空岛层。" +"值等于0.0, 容积的50%是floatland。\n" +"值等于2.0 ,(可以更高,取决于 'mgv7_np_floatland' ,始终测试以确定)\n" +"创建一个坚实的悬空岛层。" #: src/settings_translation_file.cpp msgid "Advanced" From 26fd464fb3c7f6b759b3fb0fee72de4b3f719d81 Mon Sep 17 00:00:00 2001 From: cypMon Date: Tue, 22 Dec 2020 13:37:20 +0000 Subject: [PATCH 460/624] Translated using Weblate (Spanish) Currently translated at 74.5% (1007 of 1350 strings) --- po/es/minetest.po | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index c121cd72c..6b4d4c8cd 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2020-12-24 05:29+0000\n" -"Last-Translator: Joaquín Villalba \n" +"Last-Translator: cypMon \n" "Language-Team: Spanish \n" "Language: es\n" @@ -720,11 +720,11 @@ msgstr "Permitir daños" #: builtin/mainmenu/tab_local.lua msgid "Host Game" -msgstr "Juego anfitrión" +msgstr "Hospedar juego" #: builtin/mainmenu/tab_local.lua msgid "Host Server" -msgstr "Servidor anfitrión" +msgstr "Hospedar servidor" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" @@ -1421,7 +1421,7 @@ msgstr "Volumen cambiado a %d%%" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "Wireframe mostrado" +msgstr "Líneas 3D mostradas" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1429,7 +1429,7 @@ msgstr "El zoom está actualmente desactivado por el juego o un mod" #: src/client/game.cpp msgid "ok" -msgstr "aceptar" +msgstr "Aceptar" #: src/client/gameui.cpp msgid "Chat hidden" @@ -5088,11 +5088,16 @@ msgid "Light curve low gradient" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" "Only mapchunks completely within the mapgen limit are generated.\n" "Value is stored per-world." msgstr "" +"Límite de la generación de mapa, en nodos, en todas las 6 direcciones desde (" +"0, 0, 0).\n" +"Solo las porciones de terreno dentro de los límites son generadas.\n" +"Los valores se guardan por mundo." #: src/settings_translation_file.cpp msgid "" @@ -5105,11 +5110,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Liquid fluidity" -msgstr "" +msgstr "Fluidez líquida" #: src/settings_translation_file.cpp msgid "Liquid fluidity smoothing" -msgstr "" +msgstr "Suavizado de la fluidez líquida" #: src/settings_translation_file.cpp msgid "Liquid loop max" @@ -5150,7 +5155,7 @@ msgstr "Intervalo de modificador de bloques activos" #: src/settings_translation_file.cpp msgid "Lower Y limit of dungeons." -msgstr "" +msgstr "Límite inferior en Y de mazmorras." #: src/settings_translation_file.cpp msgid "Lower Y limit of floatlands." @@ -5168,18 +5173,20 @@ msgstr "Estilo del menú principal" msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" +"Hace que la niebla y los colores del cielo dependan de la hora del día (" +"amanecer / atardecer) y la dirección de vista." #: src/settings_translation_file.cpp msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" +msgstr "Hace que DirectX funcione con LuaJIT. Desactivar si ocasiona problemas." #: src/settings_translation_file.cpp msgid "Makes all liquids opaque" -msgstr "" +msgstr "Vuelve opacos a todos los líquidos" #: src/settings_translation_file.cpp msgid "Map directory" -msgstr "" +msgstr "Directorio de mapas" #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen Carpathian." @@ -5252,7 +5259,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Map generation limit" -msgstr "" +msgstr "Límite de generación de mapa" #: src/settings_translation_file.cpp msgid "Map save interval" From 3cf6cea91188085fa679f44e8a6c217dd682d381 Mon Sep 17 00:00:00 2001 From: zjeffer Date: Tue, 22 Dec 2020 21:36:44 +0000 Subject: [PATCH 461/624] Translated using Weblate (Dutch) Currently translated at 79.0% (1067 of 1350 strings) --- po/nl/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/nl/minetest.po b/po/nl/minetest.po index c4d3da53a..22861f410 100644 --- a/po/nl/minetest.po +++ b/po/nl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Dutch (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: sfan5 \n" +"PO-Revision-Date: 2020-12-24 05:29+0000\n" +"Last-Translator: zjeffer \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -221,7 +221,7 @@ msgstr "Update" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "Bekijk" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" From 5505a6af00145263acfeeef7fe27d86dc6ab0351 Mon Sep 17 00:00:00 2001 From: Man Ho Yiu Date: Wed, 23 Dec 2020 04:53:41 +0000 Subject: [PATCH 462/624] Translated using Weblate (Chinese (Traditional)) Currently translated at 76.7% (1036 of 1350 strings) --- po/zh_TW/minetest.po | 59 ++++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/po/zh_TW/minetest.po b/po/zh_TW/minetest.po index 646c292b5..99a9da965 100644 --- a/po/zh_TW/minetest.po +++ b/po/zh_TW/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Traditional) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-29 13:50+0000\n" -"Last-Translator: pan93412 \n" +"PO-Revision-Date: 2020-12-24 05:29+0000\n" +"Last-Translator: Man Ho Yiu \n" "Language-Team: Chinese (Traditional) \n" "Language: zh_TW\n" @@ -12,7 +12,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.11-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,8 +23,9 @@ msgid "You died" msgstr "您已死亡" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp +#, fuzzy msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -112,7 +113,7 @@ msgstr "無法啟用 Mod「$1」,因為其包含了不允許的字元。只能 #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "搜尋更多 Mod" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -164,8 +165,9 @@ msgid "Back to Main Menu" msgstr "返回主選單" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "在沒有cURL的情況下編譯Minetest時,ContentDB不可用" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -217,15 +219,16 @@ msgstr "更新" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "查看" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" msgstr "名為「$1」的世界已存在" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Additional terrain" -msgstr "" +msgstr "其他地形" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -279,8 +282,9 @@ msgid "Dungeons" msgstr "地城雜訊" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Flat terrain" -msgstr "" +msgstr "平坦世界" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -302,7 +306,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "山" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -310,16 +314,18 @@ msgid "Humid rivers" msgstr "顯示卡驅動程式" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Increases humidity around rivers" -msgstr "" +msgstr "增加河流周圍的濕度" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "河流" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "因低濕度和高熱量而導致河流淺或乾燥" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -341,11 +347,12 @@ msgstr "山雜訊" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "泥石流" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Network of tunnels and caves" -msgstr "" +msgstr "隧道和洞穴網絡" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -366,7 +373,7 @@ msgstr "河流大小" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "生成在海平面的河流" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -375,21 +382,23 @@ msgstr "種子" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "生態域之間的平穩過渡" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "出現在地形上的結構(對v6地圖生成器創建的樹木和叢林草無影響)" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "出現在地形上的結構,通常是樹木和植物" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Temperate, Desert" -msgstr "" +msgstr "溫帶沙漠" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" @@ -415,7 +424,7 @@ msgstr "河流深度" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "地下深處的巨大洞穴" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -733,8 +742,9 @@ msgid "Host Server" msgstr "主機伺服器" #: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Install games from ContentDB" -msgstr "" +msgstr "從ContentDB安裝遊戲" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -1392,12 +1402,13 @@ msgid "Sound muted" msgstr "已靜音" #: src/client/game.cpp +#, fuzzy msgid "Sound system is disabled" -msgstr "" +msgstr "聲音系統已被禁用" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "此編譯版本不支持聲音系統" #: src/client/game.cpp msgid "Sound unmuted" From 9e646364d91745ec4fb4c269fc2a9ff8955d1bb2 Mon Sep 17 00:00:00 2001 From: Atrate Date: Sat, 26 Dec 2020 00:10:57 +0000 Subject: [PATCH 463/624] Translated using Weblate (Polish) Currently translated at 74.2% (1002 of 1350 strings) --- po/pl/minetest.po | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/po/pl/minetest.po b/po/pl/minetest.po index f1b19a7fb..bc227049e 100644 --- a/po/pl/minetest.po +++ b/po/pl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Polish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-10-31 19:26+0000\n" -"Last-Translator: ResuUman \n" +"PO-Revision-Date: 2020-12-27 00:29+0000\n" +"Last-Translator: Atrate \n" "Language-Team: Polish \n" "Language: pl\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.3.2-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -25,7 +25,7 @@ msgstr "Umarłeś" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -170,7 +170,7 @@ msgstr "Powrót do menu głównego" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB nie jest dostępne gdy Minetest był zbudowany bez cURL" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -230,7 +230,7 @@ msgstr "Istnieje już świat o nazwie \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Dodatkowy teren" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp #, fuzzy @@ -267,7 +267,7 @@ msgstr "Utwórz" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" -msgstr "" +msgstr "Dekoracje" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -279,11 +279,11 @@ msgstr "Ściągnij taką z minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "Lochy" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Płaski teren" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -292,7 +292,7 @@ msgstr "Gęstość gór na latających wyspach" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Latające wyspy (eksperymentalne)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -304,7 +304,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Wzgórza" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -313,7 +313,7 @@ msgstr "Sterownik graficzny" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Zwiększa wilgotność wokół rzek" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" @@ -322,6 +322,8 @@ msgstr "Jeziora" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Niska wilgotność i wysoka temperatura wpływa na niski stan rzek lub ich " +"wysychanie" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -346,19 +348,20 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Sieć jaskiń i korytarzy." #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" msgstr "Nie wybrano gry" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Reduces heat with altitude" -msgstr "" +msgstr "Spadek temperatury wraz z wysokością" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Spadek wilgotności wraz ze wzrostem wysokości" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy From 583babc1cf06b5c0a1314b3b87082757b3ec9792 Mon Sep 17 00:00:00 2001 From: Tejaswi Hegde Date: Fri, 1 Jan 2021 06:35:54 +0000 Subject: [PATCH 464/624] Translated using Weblate (Kannada) Currently translated at 4.9% (67 of 1350 strings) --- po/kn/minetest.po | 135 ++++++++++++++++++++++++---------------------- 1 file changed, 71 insertions(+), 64 deletions(-) diff --git a/po/kn/minetest.po b/po/kn/minetest.po index 91fc52c2a..156b3e4d6 100644 --- a/po/kn/minetest.po +++ b/po/kn/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Kannada (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"PO-Revision-Date: 2021-01-02 07:29+0000\n" +"Last-Translator: Tejaswi Hegde \n" "Language-Team: Kannada \n" "Language: kn\n" @@ -12,7 +12,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.10-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,17 +24,15 @@ msgstr "ನೀನು ಸತ್ತುಹೋದೆ" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "ಸರಿ" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "ಒಂದು ಲುವಾ ಸ್ಕ್ರಿಪ್ಟ್ ನಲ್ಲಿ ತಪ್ಪಾಗಿದೆ, ಉದಾಹರಣೆ ಮಾಡ್‍ನಲ್ಲಿ" +msgstr "ಒಂದು ಲುವಾ ಸ್ಕ್ರಿಪ್ಟ್ ನಲ್ಲಿ ತಪ್ಪಾಗಿದೆ:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" -msgstr "ಒಂದು ತಪ್ಪಾಗಿದೆ:" +msgstr "ದೋಷ ವೊಂದು ಸಂಭವಿಸಿದೆ:" #: builtin/fstk/ui.lua msgid "Main menu" @@ -61,17 +59,13 @@ msgid "Server enforces protocol version $1. " msgstr "ಸರ್ವರ್ ಪ್ರೋಟೋಕಾಲ್ ಆವೃತ್ತಿ $1 ಅನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತದೆ. " #: builtin/mainmenu/common.lua -#, fuzzy msgid "Server supports protocol versions between $1 and $2. " -msgstr "" -"ಸರ್ವರ್ $1 ಮತ್ತು $2 ನಡುವೆಯ ಪ್ರೋಟೋಕಾಲ್ \n" -"ಅವೃತ್ತಿಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. " +msgstr "ಸರ್ವರ್ $1 ಮತ್ತು $2 ನಡುವೆಯ ಪ್ರೋಟೋಕಾಲ್ ಅವೃತ್ತಿಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. " #: builtin/mainmenu/common.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "" -"ಪಬ್ಲಿಕ್ ಸರ್ವರ್ಲಿಸ್ಟ್ಅನ್ನು ರಿಎನೆಬಲ್ ಮಾಡಿ ಮತ್ತು ಅಂತರ್ಜಾಲ ಸಂಪರ್ಕ \n" -"ಪರಿಶೀಲಿಸಿ." +"ಪಬ್ಲಿಕ್ ಸರ್ವರ್ಲಿಸ್ಟ್ಅನ್ನು ರಿಎನೆಬಲ್ ಮಾಡಿ ಮತ್ತು ಅಂತರ್ಜಾಲ ಸಂಪರ್ಕ ಪರಿಶೀಲಿಸಿ." #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." @@ -101,7 +95,7 @@ msgstr "ಎಲ್ಲವನ್ನೂ ನಿಷ್ಕ್ರಿಯೆಗೊಳ #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "" +msgstr "ಮಾಡ್ ಪ್ಯಾಕ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -109,47 +103,43 @@ msgstr "ಎಲ್ಲವನ್ನೂ ಸಕ್ರಿಯಗೊಳಿಸಿ" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "" +msgstr "ಮಾಡ್ ಪ್ಯಾಕ್ ಕ್ರಿಯಾತ್ಮಕಗೊಳಿಸಿ" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"\"$1\" ಮಾಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ ಏಕೆಂದರೆ ಅದು ಅನುಮತಿಸದ ಅಕ್ಷರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. " -"ಮಾತ್ರ chararacters [a-z0-9_] ಅನುಮತಿಸಲಾಗಿದೆ." +"ಅನುಮತಿಸದೇ ಇರುವ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರುವ ುದರಿಂದ mod \"$1\" ಅನ್ನು ಕ್ರಿಯಾತ್ಮಕಗೊಳಿಸಲು" +" ವಿಫಲವಾಗಿದೆ. ಕೇವಲ ಅಕ್ಷರಗಳನ್ನು [a-z0-9_] ಗೆ ಮಾತ್ರ ಅನುಮತಿಸಲಾಗುತ್ತದೆ." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "ಇನ್ನಷ್ಟು ಮಾಡ್ ಗಳನ್ನು ಹುಡುಕಿ" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" msgstr "ಮಾಡ್:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "ಐಚ್ಛಿಕ ಅವಲಂಬನೆಗಳು:" +msgstr "(ಐಚ್ಛಿಕ) ಅವಲಂಬನೆಗಳು ಇಲ್ಲ" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "ಯಾವುದೇ ಆಟದ ವಿವರಣೆ ಒದಗಿಸಿಲ್ಲ." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "ಐಚ್ಛಿಕ ಅವಲಂಬನೆಗಳು:" +msgstr "ಯಾವುದೇ ಗಟ್ಟಿ ಅವಲಂಬನೆಗಳಿಲ್ಲ" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "ಯಾವುದೇ ಮಾಡ್ಪ್ಯಾಕ್ ವಿವರಣೆ ಕೊಟ್ಟಿಲ್ಲ." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "ಐಚ್ಛಿಕ ಅವಲಂಬನೆಗಳು:" +msgstr "ಯಾವುದೇ ಐಚ್ಛಿಕ ಅವಲಂಬನೆಗಳಿಲ್ಲ" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -178,12 +168,11 @@ msgstr "ಮುಖ್ಯ ಮೆನುಗೆ ಹಿಂತಿರುಗಿ" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "cURL ಇಲ್ಲದೆ ಮೈನ್ ಟೆಸ್ಟ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಿದಾಗ ContentDB ಲಭ್ಯವಿಲ್ಲ" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "ಲೋಡ್ ಆಗುತ್ತಿದೆ..." +msgstr "ಡೌನ್ ಲೋಡ್ ಆಗುತ್ತಿದೆ..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -205,7 +194,7 @@ msgstr "ಮಾಡ್‍ಗಳು" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "ಯಾವುದೇ ಪ್ಯಾಕೇಜ್ ಗಳನ್ನು ಪಡೆಯಲಾಗಲಿಲ್ಲ" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" @@ -229,16 +218,17 @@ msgid "Update" msgstr "ನವೀಕರಿಸಿ" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "View" -msgstr "" +msgstr "ತೋರಿಸು" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "" +msgstr "\"$1\" ಹೆಸರಿನ ಒಂದು ಪ್ರಪಂಚವು ಈಗಾಗಲೇ ಇದೆ" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "ಹೆಚ್ಚುವರಿ ಭೂಪ್ರದೇಶ" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -249,133 +239,150 @@ msgid "Altitude dry" msgstr "" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Biome blending" -msgstr "" +msgstr "ಪ್ರದೇಶ ಮಿಶ್ರಣ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Biomes" -msgstr "" +msgstr "ಪ್ರದೇಶಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Caverns" -msgstr "" +msgstr "ಗುಹೆಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Caves" -msgstr "" +msgstr "ಗುಹೆಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Create" -msgstr "" +msgstr "ರಚಿಸು" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" -msgstr "" +msgstr "ಅಲಂಕಾರಗಳು" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" +msgstr "minetest.net ನಿಂದ ಮೈನ್ಟೆಸ್ಟ್ ಗೇಮ್ ನಂತಹ ಆಟವನ್ನು ಡೌನ್ ಲೋಡ್ ಮಾಡಿ" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "" +msgstr "minetest.net ಇಂದ ಒಂದನ್ನು ಡೌನ್ ಲೋಡ್ ಮಾಡಿ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Dungeons" -msgstr "" +msgstr "ಡಂಗೆನ್ಸ್" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "ಸಮತಟ್ಟಾದ ಭೂಪ್ರದೇಶ" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "ಆಕಾಶದಲ್ಲಿ ತೇಲುತ್ತಿರುವ ಭೂಭಾಗಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Floatlands (experimental)" -msgstr "" +msgstr "ತೇಲುವ ಭೂಮಿಗಳು (ಪ್ರಾಯೋಗಿಕ)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "" +msgstr "ಆಟ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "ಫ್ರಾಕ್ಟಲ್ ಅಲ್ಲದ ಭೂಪ್ರದೇಶ ಸೃಷ್ಟಿಸಿ: ಸಾಗರಗಳು ಮತ್ತು ಭೂಗರ್ಭ" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "ಬೆಟ್ಟಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Humid rivers" -msgstr "" +msgstr "ಆರ್ದ್ರ ನದಿಗಳು" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "ನದಿಗಳ ಸುತ್ತ ತೇವಾಂಶ ವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "ಕೆರೆ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"ಕಡಿಮೆ ಆರ್ದ್ರತೆ ಮತ್ತು ಅಧಿಕ ಶಾಖವು ಆಳವಿಲ್ಲದ ಅಥವಾ ಶುಷ್ಕ ನದಿಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +#, fuzzy msgid "Mapgen" -msgstr "" +msgstr "ಮ್ಯಾಪ್ಜೆನ್" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +#, fuzzy msgid "Mapgen flags" -msgstr "" +msgstr "ಮ್ಯಾಪ್ಜೆನ್ ಧ್ವಜಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Mapgen-specific flags" -msgstr "" +msgstr "ಮ್ಯಾಪ್ಜೆನ್-ನಿರ್ದಿಷ್ಟ ಧ್ವಜಗಳು" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "ಪರ್ವತಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Mud flow" -msgstr "" +msgstr "ಮಣ್ಣಿನ ಹರಿವು" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "ಸುರಂಗಗಳು ಮತ್ತು ಗುಹೆಗಳ ಜಾಲ" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" -msgstr "" +msgstr "ಯಾವುದೇ ಆಟ ಆಯ್ಕೆಯಾಗಿಲ್ಲ" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "ಎತ್ತರದಲ್ಲಿ ಶಾಖವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "ಎತ್ತರದಲ್ಲಿ ತೇವಾಂಶವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "ನದಿಗಳು" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "ಸಮುದ್ರ ಮಟ್ಟದಲ್ಲಿರುವ ನದಿಗಳು" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "Seed" -msgstr "" +msgstr "ಬೀಜ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Smooth transition between biomes" -msgstr "" +msgstr "ಪ್ರದೇಶಗಳ ನಡುವೆ ಸುಗಮವಾದ ಸ್ಥಿತ್ಯಂತರ" #: builtin/mainmenu/dlg_create_world.lua msgid "" From bb0f2b28ee64c13d6d9b8ee26329aa9715705102 Mon Sep 17 00:00:00 2001 From: Ferdinand Tampubolon Date: Thu, 7 Jan 2021 15:27:27 +0000 Subject: [PATCH 465/624] Translated using Weblate (Indonesian) Currently translated at 99.6% (1345 of 1350 strings) --- po/id/minetest.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/po/id/minetest.po b/po/id/minetest.po index 21fd705bb..eaf34894f 100644 --- a/po/id/minetest.po +++ b/po/id/minetest.po @@ -3,9 +3,8 @@ msgstr "" "Project-Id-Version: Indonesian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-25 16:39+0000\n" -"Last-Translator: Muhammad Rifqi Priyo Susanto " -"\n" +"PO-Revision-Date: 2021-01-08 17:32+0000\n" +"Last-Translator: Ferdinand Tampubolon \n" "Language-Team: Indonesian \n" "Language: id\n" @@ -13,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -5885,7 +5884,7 @@ msgstr "Media jarak jauh" #: src/settings_translation_file.cpp msgid "Remote port" -msgstr "Porta server jarak jauh" +msgstr "Port utk Kendali Jarak Jauh" #: src/settings_translation_file.cpp msgid "" From c6abdfef4892a6d875109cf84aefca8e9aed93a7 Mon Sep 17 00:00:00 2001 From: "Omer I.S" Date: Thu, 7 Jan 2021 16:58:54 +0000 Subject: [PATCH 466/624] Translated using Weblate (Hebrew) Currently translated at 11.1% (150 of 1350 strings) --- po/he/minetest.po | 195 +++++++++++++++++++++++----------------------- 1 file changed, 98 insertions(+), 97 deletions(-) diff --git a/po/he/minetest.po b/po/he/minetest.po index 1d7c692ba..f98be26a7 100644 --- a/po/he/minetest.po +++ b/po/he/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Hebrew (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-08-30 19:38+0000\n" -"Last-Translator: Omeritzics Games \n" +"PO-Revision-Date: 2021-01-08 17:32+0000\n" +"Last-Translator: Omer I.S. \n" "Language-Team: Hebrew \n" "Language: he\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 4.2.1-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -41,7 +41,7 @@ msgstr "תפריט ראשי" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "התחבר מחדש" +msgstr "התחברות מחדש" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" @@ -49,7 +49,7 @@ msgstr "השרת מבקש שתתחבר מחדש:" #: builtin/mainmenu/common.lua src/client/game.cpp msgid "Loading..." -msgstr "טוען..." +msgstr "כעת בטעינה..." #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " @@ -57,7 +57,7 @@ msgstr "שגיאה בגרסאות הפרוטוקול. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "השרת יפעיל את פרוטוקול גרסה $1. בכוח " +msgstr "השרת מחייב שימוש בגרסת פרוטוקול $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " @@ -65,7 +65,7 @@ msgstr "השרת תומך בפרוטוקולים בין גרסה $1 וגרסה $ #: builtin/mainmenu/common.lua msgid "Try reenabling public serverlist and check your internet connection." -msgstr "נסה לצאת והכנס מחדש לרשימת השרתים ובדוק את חיבור האינטרנט שלך." +msgstr "נא לנסות לצאת ולהיכנס מחדש לרשימת השרתים ולבדוק את החיבור שלך לאינטרנט." #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." @@ -87,11 +87,11 @@ msgstr "ביטול" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "רכיבי תלות:" +msgstr "תלויות:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "השבת הכל" +msgstr "להשבית הכול" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" @@ -99,7 +99,7 @@ msgstr "השבתת ערכת המודים" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "אפשר הכל" +msgstr "להפעיל הכול" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" @@ -116,7 +116,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "מצא עוד מודים" +msgstr "מציאת מודים נוספים" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -124,16 +124,15 @@ msgstr "מוד:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "אין רכיבי תלות (אופציונליים)" +msgstr "אין תלויות (רשות)" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "לא סופק תיאור משחק." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "תלוי ב:" +msgstr "אין תלויות קשות" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -141,16 +140,16 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "אין רכיבי תלות אופציונליים" +msgstr "אין תלויות רשות" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "רכיבי תלות אופציונליים:" +msgstr "תלויות רשות:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "שמור" +msgstr "שמירה" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" @@ -166,7 +165,7 @@ msgstr "כל החבילות" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "חזור אל התפריט הראשי" +msgstr "חזרה לתפריט הראשי" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -174,7 +173,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." -msgstr "מוריד..." +msgstr "כעת בהורדה..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -187,7 +186,7 @@ msgstr "משחקים" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "החקן" +msgstr "התקנה" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -205,7 +204,7 @@ msgstr "אין תוצאות" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua msgid "Search" -msgstr "חפש" +msgstr "חיפוש" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -214,19 +213,19 @@ msgstr "חבילות מרקם" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" -msgstr "הסר התקנה" +msgstr "הסרה" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "עדכן" +msgstr "עדכון" #: builtin/mainmenu/dlg_contentstore.lua msgid "View" -msgstr "" +msgstr "תצוגה" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "עולם בשם \"1$\" כבר קיים" +msgstr "כבר קיים עולם בשם \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" @@ -258,7 +257,7 @@ msgstr "מערות" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" -msgstr "ליצור" +msgstr "יצירה" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" @@ -278,7 +277,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "עולם שטוח" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" @@ -422,13 +421,13 @@ msgstr "אין לך משחקים מותקנים." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "האם ברצונך למחוק את \"$1\"?" +msgstr "האם אכן ברצונך למחוק את \"$1\"?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" -msgstr "מחק" +msgstr "מחיקה" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" @@ -440,11 +439,11 @@ msgstr "" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "למחוק עולם \"$1\"?" +msgstr "למחוק את העולם \"$1\"?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "קבל" +msgstr "הסכמה" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" @@ -478,7 +477,7 @@ msgstr "מושבת" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "ערוך" +msgstr "עריכה" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" @@ -510,7 +509,7 @@ msgstr "נא להזין מספר תקין." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "איפוס לברירת המחדל" +msgstr "שחזור לברירת המחדל" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" @@ -530,11 +529,11 @@ msgstr "הצגת שמות טכניים" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." -msgstr "" +msgstr "הערך חייב להיות לפחות $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must not be larger than $1." -msgstr "" +msgstr "הערך לא יכול להיות גדול מ־$1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" @@ -653,7 +652,7 @@ msgstr "" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." -msgstr "" +msgstr "אין תלויות." #: builtin/mainmenu/tab_content.lua msgid "No package description available" @@ -661,7 +660,7 @@ msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Rename" -msgstr "" +msgstr "שינוי שם" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" @@ -681,7 +680,7 @@ msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "קרדיטים" +msgstr "תודות" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -705,11 +704,11 @@ msgstr "קביעת תצורה" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" -msgstr "משחק יצירתי" +msgstr "מצב יצירתי" #: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Enable Damage" -msgstr "אפשר נזק" +msgstr "לאפשר חבלה" #: builtin/mainmenu/tab_local.lua #, fuzzy @@ -717,9 +716,8 @@ msgid "Host Game" msgstr "הסתר משחק" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Host Server" -msgstr "שרת" +msgstr "אכסון שרת" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" @@ -765,15 +763,15 @@ msgstr "כתובת / פורט" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Connect" -msgstr "התחבר" +msgstr "התחברות" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative mode" -msgstr "" +msgstr "מצב יצירתי" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Damage enabled" -msgstr "" +msgstr "החבלה מאופשרת" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Del. Favorite" @@ -784,9 +782,8 @@ msgid "Favorite" msgstr "" #: builtin/mainmenu/tab_online.lua -#, fuzzy msgid "Join Game" -msgstr "הסתר משחק" +msgstr "הצטרפות למשחק" #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" @@ -799,7 +796,7 @@ msgstr "" #. ~ PvP = Player versus Player #: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "PvP enabled" -msgstr "PvP אפשר" +msgstr "לאפשר קרבות" #: builtin/mainmenu/tab_settings.lua msgid "2x" @@ -818,9 +815,8 @@ msgid "8x" msgstr "" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "All Settings" -msgstr "הגדרות" +msgstr "כל ההגדרות" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" @@ -1034,7 +1030,7 @@ msgstr "" #: src/client/clientlauncher.cpp msgid "Please choose a name!" -msgstr "" +msgstr "נא לבחור שם!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " @@ -1063,33 +1059,28 @@ msgid "" msgstr "" #: src/client/game.cpp -#, fuzzy msgid "- Address: " -msgstr "כתובת / פורט" +msgstr "- כתובת: " #: src/client/game.cpp -#, fuzzy msgid "- Creative Mode: " -msgstr "משחק יצירתי" +msgstr "- מצב יצירתי: " #: src/client/game.cpp -#, fuzzy msgid "- Damage: " -msgstr "אפשר נזק" +msgstr "- חבלה: " #: src/client/game.cpp msgid "- Mode: " msgstr "" #: src/client/game.cpp -#, fuzzy msgid "- Port: " -msgstr "פורט" +msgstr "- פורט: " #: src/client/game.cpp -#, fuzzy msgid "- Public: " -msgstr "ציבורי" +msgstr "- ציבורי: " #. ~ PvP = Player versus Player #: src/client/game.cpp @@ -1158,6 +1149,20 @@ msgid "" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" +"פקדים:\n" +"- %s: כדי לזוז קדימה\n" +"- %s: כדי לזוז אחורה\n" +"- %s: כדי לזוז שמאלה\n" +"- %s: כדי לזוז ימינה\n" +"- %s: כדי לקפוץ או לטפס\n" +"- %s: כדי להתכופף או לרדת למטה\n" +"- %s: כדי לזרוק פריט\n" +"- %s: כדי לפתוח את תיק החפצים\n" +"- עכבר: כדי להסתובב או להסתכל\n" +"- לחצן שמאלי בעכבר: כדי לחצוב או להרביץ\n" +"- לחצן ימני בעכבר: כדי להניח או להשתמש\n" +"- גלגלת העכבר: כדי לבחור פריט\n" +"- %s: כדי לפתוח את הצ׳אט\n" #: src/client/game.cpp msgid "Creating client..." @@ -1209,7 +1214,7 @@ msgstr "" #: src/client/game.cpp msgid "Exit to OS" -msgstr "" +msgstr "יציאה למערכת ההפעלה" #: src/client/game.cpp msgid "Fast mode disabled" @@ -1228,9 +1233,8 @@ msgid "Fly mode disabled" msgstr "" #: src/client/game.cpp -#, fuzzy msgid "Fly mode enabled" -msgstr "מופעל" +msgstr "מצב התעופה הופעל" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" @@ -1250,9 +1254,8 @@ msgid "Game info:" msgstr "" #: src/client/game.cpp -#, fuzzy msgid "Game paused" -msgstr "משחקים" +msgstr "המשחק הושהה" #: src/client/game.cpp msgid "Hosting server" @@ -1506,15 +1509,15 @@ msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "" +msgstr "שמאלה" #: src/client/keycode.cpp msgid "Left Button" -msgstr "" +msgstr "הלחצן השמאלי" #: src/client/keycode.cpp msgid "Left Control" -msgstr "" +msgstr "מקש Control השמאלי" #: src/client/keycode.cpp msgid "Left Menu" @@ -1522,11 +1525,11 @@ msgstr "" #: src/client/keycode.cpp msgid "Left Shift" -msgstr "" +msgstr "מקש Shift השמאלי" #: src/client/keycode.cpp msgid "Left Windows" -msgstr "" +msgstr "מקש Windows השמאלי" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp @@ -1632,15 +1635,15 @@ msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Right" -msgstr "" +msgstr "ימינה" #: src/client/keycode.cpp msgid "Right Button" -msgstr "" +msgstr "הלחצן הימני" #: src/client/keycode.cpp msgid "Right Control" -msgstr "" +msgstr "מקש Control הימני" #: src/client/keycode.cpp msgid "Right Menu" @@ -1648,11 +1651,11 @@ msgstr "" #: src/client/keycode.cpp msgid "Right Shift" -msgstr "" +msgstr "מקש Shift הימני" #: src/client/keycode.cpp msgid "Right Windows" -msgstr "" +msgstr "מקש Windows הימני" #: src/client/keycode.cpp msgid "Scroll Lock" @@ -1731,11 +1734,11 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "" +msgstr "קפיצה אוטומטית" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" -msgstr "" +msgstr "אחורה" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" @@ -1763,7 +1766,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "" +msgstr "לחיצה כפולה על \"קפיצה\" כדי לכבות או להדליק את מצב התעופה" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" @@ -1771,7 +1774,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Forward" -msgstr "" +msgstr "קדימה" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" @@ -1787,7 +1790,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Jump" -msgstr "" +msgstr "קפיצה" #: src/gui/guiKeyChangeMenu.cpp msgid "Key already in use" @@ -2213,7 +2216,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Backward key" -msgstr "" +msgstr "מקש התזוזה אחורה" #: src/settings_translation_file.cpp msgid "Base ground level" @@ -2425,7 +2428,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Client" -msgstr "קלינט" +msgstr "לקוח" #: src/settings_translation_file.cpp msgid "Client and Server" @@ -2573,9 +2576,8 @@ msgid "Crash message" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Creative" -msgstr "ליצור" +msgstr "יצירתי" #: src/settings_translation_file.cpp msgid "Crosshair alpha" @@ -2599,7 +2601,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Damage" -msgstr "" +msgstr "חבלה" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2784,7 +2786,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Double tap jump for fly" -msgstr "" +msgstr "הקשה כפולה על \"קפיצה\" לתעופה" #: src/settings_translation_file.cpp msgid "Double-tapping the jump key toggles fly mode." @@ -2844,7 +2846,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Enable players getting damage and dying." -msgstr "" +msgstr "לאפשר חבלה ומוות של השחקנים." #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." @@ -3214,7 +3216,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Forward key" -msgstr "" +msgstr "מקש התזוזה קדימה" #: src/settings_translation_file.cpp msgid "Fourth of 4 2D noises that together define hill/mountain range height." @@ -3861,11 +3863,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Jump key" -msgstr "" +msgstr "מקש הקפיצה" #: src/settings_translation_file.cpp msgid "Jumping speed" -msgstr "" +msgstr "מהירות הקפיצה" #: src/settings_translation_file.cpp msgid "" @@ -4403,7 +4405,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Left key" -msgstr "" +msgstr "מקש התזוזה שמאלה" #: src/settings_translation_file.cpp msgid "" @@ -4538,9 +4540,8 @@ msgid "Main menu script" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Main menu style" -msgstr "תפריט ראשי" +msgstr "סגנון התפריט הראשי" #: src/settings_translation_file.cpp msgid "" @@ -5310,7 +5311,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Right key" -msgstr "" +msgstr "מקש התזוזה ימינה" #: src/settings_translation_file.cpp msgid "Rightclick repetition interval" @@ -5469,7 +5470,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Server / Singleplayer" -msgstr "שרת" +msgstr "שרת / שחקן יחיד" #: src/settings_translation_file.cpp msgid "Server URL" @@ -6236,7 +6237,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "האם לאפשר לשחקנים להרוג אחד־את־השני." #: src/settings_translation_file.cpp msgid "" From d6980c22d36167aa101991828030b50c8594e1ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 9 Jan 2021 00:47:37 +0000 Subject: [PATCH 467/624] Translated using Weblate (Norwegian Nynorsk) Currently translated at 29.1% (394 of 1350 strings) --- po/nn/minetest.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/nn/minetest.po b/po/nn/minetest.po index 9a0b036d3..a1483e996 100644 --- a/po/nn/minetest.po +++ b/po/nn/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Norwegian Nynorsk (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-03-31 10:14+0000\n" -"Last-Translator: sfan5 \n" +"PO-Revision-Date: 2021-01-10 01:32+0000\n" +"Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -473,7 +473,7 @@ msgstr "To-dimensjonal lyd" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "< Attende til instillinger" +msgstr "< Attende til innstillingar" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" @@ -825,7 +825,7 @@ msgstr "8x" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" -msgstr "Alle instillinger" +msgstr "Alle innstillingar" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" @@ -921,7 +921,7 @@ msgstr "Sjerm:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" -msgstr "Instillinger" +msgstr "Innstillingar" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" From bf2e079f6dfceb1074e6657c4d5c25a937c3940a Mon Sep 17 00:00:00 2001 From: Edgar Date: Tue, 12 Jan 2021 17:48:43 +0000 Subject: [PATCH 468/624] Translated using Weblate (Dutch) Currently translated at 79.7% (1076 of 1350 strings) --- po/nl/minetest.po | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/po/nl/minetest.po b/po/nl/minetest.po index 22861f410..2fce143fd 100644 --- a/po/nl/minetest.po +++ b/po/nl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Dutch (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-12-24 05:29+0000\n" -"Last-Translator: zjeffer \n" +"PO-Revision-Date: 2021-01-13 18:32+0000\n" +"Last-Translator: Edgar \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -285,7 +285,7 @@ msgstr "Kerker ruis" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Vlak terrein" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -307,7 +307,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Heuvels" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -315,16 +315,19 @@ msgid "Humid rivers" msgstr "Video driver" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Increases humidity around rivers" -msgstr "" +msgstr "Verhoogt de luchtvochtigheid rond rivieren" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Meren" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Lage luchtvochtigheid en hoge hitte zorgen voor ondiepe of droge rivieren" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -346,11 +349,11 @@ msgstr "Bergen ruis" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Modderstroom" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Netwerk van tunnels en grotten" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -361,8 +364,9 @@ msgid "Reduces heat with altitude" msgstr "" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Vermindert de luchtvochtigheid met hoogte" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -371,7 +375,7 @@ msgstr "Grootte van rivieren" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Rivieren op zeeniveau" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -394,15 +398,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Gematigd, Woestijn" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Gematigd, Woestijn, Oerwoud" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Gematigd, Woestijn, Oerwoud, Toendra, Taiga" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -410,8 +414,9 @@ msgid "Terrain surface erosion" msgstr "Terrein hoogte" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Trees and jungle grass" -msgstr "" +msgstr "Bomen en oerwoudgras" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -419,8 +424,9 @@ msgid "Vary river depth" msgstr "Diepte van rivieren" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Zeer grote grotten diep in de ondergrond" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy From 0b203b35cd5db6d8cb95e548ab2ea5bd444edeec Mon Sep 17 00:00:00 2001 From: ZhiZe-ZG Date: Wed, 20 Jan 2021 15:10:33 +0000 Subject: [PATCH 469/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 96.7% (1306 of 1350 strings) --- po/zh_CN/minetest.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 544ed38ba..28a359fd4 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-12-08 10:29+0000\n" -"Last-Translator: IFRFSX <1079092922@qq.com>\n" +"PO-Revision-Date: 2021-01-20 15:10+0000\n" +"Last-Translator: ZhiZe-ZG \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -6550,6 +6550,9 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" +"如果'altitude_chill'开启,则热量下降20的垂直距离\n" +"已启用。如果湿度下降的垂直距离也是10\n" +"已启用“ altitude_dry”。" #: src/settings_translation_file.cpp #, fuzzy @@ -6561,10 +6564,12 @@ msgid "" "Time in seconds for item entity (dropped items) to live.\n" "Setting it to -1 disables the feature." msgstr "" +"项目实体(删除的项目)生存的时间(以秒为单位)。\n" +"将其设置为 -1 将禁用该功能。" #: src/settings_translation_file.cpp msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" +msgstr "一天中开始一个新世界的时间,以毫小时为单位(0-23999)。" #: src/settings_translation_file.cpp msgid "Time send interval" @@ -6600,7 +6605,7 @@ msgstr "触屏阈值" #: src/settings_translation_file.cpp msgid "Trees noise" -msgstr "" +msgstr "树木噪声" #: src/settings_translation_file.cpp msgid "Trilinear filtering" @@ -6621,7 +6626,6 @@ msgid "Trusted mods" msgstr "可信 mod" #: src/settings_translation_file.cpp -#, fuzzy msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "显示在“多人游戏”选项卡中的服务器列表的URL。" @@ -6688,12 +6692,10 @@ msgid "VBO" msgstr "VBO" #: src/settings_translation_file.cpp -#, fuzzy msgid "VSync" msgstr "垂直同步" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley depth" msgstr "山谷深度" @@ -6703,26 +6705,24 @@ msgid "Valley fill" msgstr "山谷弥漫" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley profile" msgstr "山谷轮廓" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley slope" msgstr "山谷坡度" #: src/settings_translation_file.cpp msgid "Variation of biome filler depth." -msgstr "" +msgstr "生物群落填充物深度的变化。" #: src/settings_translation_file.cpp msgid "Variation of maximum mountain height (in nodes)." -msgstr "" +msgstr "最大山体高度的变化(以节点为单位)。" #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "" +msgstr "洞口数量的变化。" #: src/settings_translation_file.cpp msgid "" From 071bf32057618003e674191d7a73b7a3730a9bb4 Mon Sep 17 00:00:00 2001 From: AISS Date: Wed, 20 Jan 2021 15:08:25 +0000 Subject: [PATCH 470/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 96.7% (1306 of 1350 strings) --- po/zh_CN/minetest.po | 67 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 9 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 28a359fd4..b6649e09b 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2021-01-20 15:10+0000\n" -"Last-Translator: ZhiZe-ZG \n" +"Last-Translator: AISS \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -6427,6 +6427,7 @@ msgid "Texture path" msgstr "材质路径" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Textures on a node may be aligned either to the node or to the world.\n" "The former mode suits better things like machines, furniture, etc., while\n" @@ -6435,34 +6436,51 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" +"节点上的纹理可以与节点或世界对齐。\n" +"\n" +"前一种模式更适合机器、家具等,而\n" +"\n" +"后者使楼梯和微型砌块更适合周围环境。\n" +"\n" +"但是,由于这种可能性是新的,因此可能不会被较旧的服务器使用,\n" +"\n" +"此选项允许对某些节点类型强制执行它。注意,尽管\n" +"\n" +"这被认为是实验性的,可能无法正常工作。" #: src/settings_translation_file.cpp -#, fuzzy msgid "The URL for the content repository" msgstr "内容存储库的 URL" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The default format in which profiles are being saved,\n" "when calling `/profiler save [format]` without format." msgstr "" +"保存配置文件的默认格式,\n" +"\n" +"调用`/profiler save[format]`时不带格式。" #: src/settings_translation_file.cpp msgid "The depth of dirt or other biome filler node." msgstr "泥土深度或其他生物群系过滤节点" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The file path relative to your worldpath in which profiles will be saved to." -msgstr "" +msgstr "(配置文件将保存到)您的世界路径的文件路径。" #: src/settings_translation_file.cpp +#, fuzzy msgid "The identifier of the joystick to use" -msgstr "" +msgstr "要使用的操纵杆的标识符" #: src/settings_translation_file.cpp +#, fuzzy msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" +msgstr "开始触摸屏交互所需的长度(以像素为单位)。" #: src/settings_translation_file.cpp msgid "" @@ -6472,6 +6490,11 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" +"波浪状液体表面的最大高度。\n" +"4.0 =波高是两个节点。\n" +"0.0 =波形完全不移动。\n" +"默认值为1.0(1/2节点)。\n" +"需要启用波状液体。" #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." @@ -6486,6 +6509,7 @@ msgstr "" "在游戏中查看/privs以获得完整列表和mod配置。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6495,6 +6519,15 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" +"每一个受限制的玩家周围方块体积的半径\n" +"\n" +"活动块,用mapblocks(16个节点)表示。\n" +"\n" +"在活动块中,加载对象并运行ABMs。\n" +"\n" +"这也是保持活动对象(mob)的最小范围。\n" +"\n" +"这应该与活动的\\对象\\发送\\范围\\块一起配置。" #: src/settings_translation_file.cpp msgid "" @@ -6505,6 +6538,11 @@ msgid "" "On other platforms, OpenGL is recommended, and it’s the only driver with\n" "shader support currently." msgstr "" +"Irrlicht的渲染后端,\n" +"更改此设置后需要重新启动,\n" +"注意:在Android上,如果不确定,请坚持使用OGLES1! 应用可能无法启动,否则,\n" +"在其他平台上,建议使用OpenGL,它是唯一具有以下功能的驱动程序,\n" +"目前支持着色器," #: src/settings_translation_file.cpp msgid "" @@ -6532,6 +6570,8 @@ msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" +"按住操纵手柄按钮组合时,\n" +"重复事件之间的时间(以秒为单位)。" #: src/settings_translation_file.cpp msgid "" @@ -6539,10 +6579,12 @@ msgid "" "right\n" "mouse button." msgstr "" +"按住鼠标右键时两次重复单击之间所花费的时间(以秒为单位)\n" +"鼠标按钮。" #: src/settings_translation_file.cpp msgid "The type of joystick" -msgstr "" +msgstr "手柄类型" #: src/settings_translation_file.cpp msgid "" @@ -6584,12 +6626,15 @@ msgid "Timeout for client to remove unused map data from memory." msgstr "客户端从内存中移除未用地图数据的超时。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "To reduce lag, block transfers are slowed down when a player is building " "something.\n" "This determines how long they are slowed down after placing or removing a " "node." msgstr "" +"为了减少延迟,当一个玩家正在构建某个东西时,阻塞传输会减慢。\n" +"这决定了放置或删除节点后它们的速度减慢的时间" #: src/settings_translation_file.cpp msgid "Toggle camera mode key" @@ -6632,9 +6677,10 @@ msgstr "显示在“多人游戏”选项卡中的服务器列表的URL。" #: src/settings_translation_file.cpp #, fuzzy msgid "Undersampling" -msgstr "欠采样" +msgstr "采集" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6642,6 +6688,10 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" +"采集类似于使用较低的屏幕分辨率,但是它适用\n" +"仅限于游戏世界,保持GUI完整。\n" +"它应该以不那么详细的图像为代价显着提高性能。\n" +"较高的值会导致图像不太清晰" #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6664,7 +6714,6 @@ msgid "Use 3D cloud look instead of flat." msgstr "使用 3D 云彩,而不是看起来是平面的。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Use a cloud animation for the main menu background." msgstr "主菜单背景使用云动画。" @@ -6702,7 +6751,7 @@ msgstr "山谷深度" #: src/settings_translation_file.cpp #, fuzzy msgid "Valley fill" -msgstr "山谷弥漫" +msgstr "山谷堆积" #: src/settings_translation_file.cpp msgid "Valley profile" From 4160502baaa866d5fa7fcbd2cff0d1ff184d8c4d Mon Sep 17 00:00:00 2001 From: IFRFSX <1079092922@qq.com> Date: Wed, 20 Jan 2021 15:07:21 +0000 Subject: [PATCH 471/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 96.7% (1306 of 1350 strings) --- po/zh_CN/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index b6649e09b..db4bb025b 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2021-01-20 15:10+0000\n" -"Last-Translator: AISS \n" +"Last-Translator: IFRFSX <1079092922@qq.com>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -6719,11 +6719,11 @@ msgstr "主菜单背景使用云动画。" #: src/settings_translation_file.cpp msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" +msgstr "从某个角度查看纹理时使用各向异性过滤。" #: src/settings_translation_file.cpp msgid "Use bilinear filtering when scaling textures." -msgstr "" +msgstr "缩放纹理时使用双线性过滤。" #: src/settings_translation_file.cpp msgid "" @@ -6734,7 +6734,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." -msgstr "" +msgstr "缩放纹理时使用三线过滤。" #: src/settings_translation_file.cpp msgid "VBO" From 5fdd3db5e810833b89caaa5126fc9bfab2c07cbb Mon Sep 17 00:00:00 2001 From: ZhiZe-ZG Date: Wed, 20 Jan 2021 15:23:00 +0000 Subject: [PATCH 472/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 97.2% (1313 of 1350 strings) --- po/zh_CN/minetest.po | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index db4bb025b..8f8a879ad 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2021-01-20 15:10+0000\n" -"Last-Translator: IFRFSX <1079092922@qq.com>\n" +"PO-Revision-Date: 2021-01-20 15:24+0000\n" +"Last-Translator: ZhiZe-ZG \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -6790,7 +6790,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Varies steepness of cliffs." msgstr "控制山丘的坡度/高度。" @@ -6833,14 +6832,13 @@ msgstr "可视范围" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "" +msgstr "虚拟操纵手柄触发辅助按钮" #: src/settings_translation_file.cpp msgid "Volume" msgstr "音量" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." @@ -6856,6 +6854,11 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" +"生成的 4D 分形 3D 切片的 W 坐标。\n" +"确定生成的 4D 形状的 3D 切片。\n" +"更改分形的形状。\n" +"对 3D 分形没有影响。\n" +"范围大约 -2 到 2。" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." @@ -6912,6 +6915,9 @@ msgid "" "filtered in software, but some images are generated directly\n" "to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" +"当gui_scaling_filter为 true 时,所有 GUI 映像都需要\n" +"在软件中过滤,但一些图像是直接生成的\n" +"硬件(例如,库存中节点的渲染到纹理)。" #: src/settings_translation_file.cpp msgid "" From a76e224dee0a94af0cbc93d3164f98b4c21909bc Mon Sep 17 00:00:00 2001 From: AISS Date: Wed, 20 Jan 2021 15:13:38 +0000 Subject: [PATCH 473/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 97.2% (1313 of 1350 strings) --- po/zh_CN/minetest.po | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 8f8a879ad..23eaeb67b 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2021-01-20 15:24+0000\n" -"Last-Translator: ZhiZe-ZG \n" +"Last-Translator: AISS \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -6771,17 +6771,19 @@ msgstr "最大山体高度的变化(以节点为单位)。" #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "洞口数量的变化。" +msgstr "洞穴数量的变化。" #: src/settings_translation_file.cpp msgid "" "Variation of terrain vertical scale.\n" "When noise is < -0.55 terrain is near-flat." msgstr "" +"地形垂直比例的变化。\n" +"当比例< -0.55 地形接近平坦。" #: src/settings_translation_file.cpp msgid "Varies depth of biome surface nodes." -msgstr "" +msgstr "改变生物群落表面方块的深度。" #: src/settings_translation_file.cpp msgid "" From 8610adae6c0e972ca29c7df541c400b4d6536c61 Mon Sep 17 00:00:00 2001 From: ZhiZe-ZG Date: Wed, 20 Jan 2021 15:43:53 +0000 Subject: [PATCH 474/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 98.0% (1323 of 1350 strings) --- po/zh_CN/minetest.po | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 23eaeb67b..77612ce5f 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2021-01-20 15:24+0000\n" -"Last-Translator: AISS \n" +"PO-Revision-Date: 2021-01-20 15:48+0000\n" +"Last-Translator: ZhiZe-ZG \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -6928,6 +6928,10 @@ msgid "" "to the old scaling method, for video drivers that don't\n" "properly support downloading textures back from hardware." msgstr "" +"当gui_scaling_filter_txr2img为 true 时,复制这些图像\n" +"从硬件到软件进行扩展。 当 false 时,回退\n" +"到旧的缩放方法,对于不\n" +"正确支持从硬件下载纹理。" #: src/settings_translation_file.cpp msgid "" @@ -6948,16 +6952,20 @@ msgid "" "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +"是否使用 FreeType 字体,都需要在 中编译 FreeType 支持。\n" +"如果禁用,则使用位图和 XML 矢量字体。" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" +msgstr "节点纹理动画是否应按地图块不同步。" #: src/settings_translation_file.cpp msgid "" "Whether players are shown to clients without any range limit.\n" "Deprecated, use the setting player_transfer_distance instead." msgstr "" +"玩家是否显示给客户端没有任何范围限制。\n" +"已弃用,请player_transfer_distance设置。" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." @@ -6982,6 +6990,10 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" +"是否将声音静音。您可随时取消静音声音,除非\n" +"音响系统已禁用(enable_sound=false)。\n" +"在游戏中,您可以使用静音键切换静音状态,或者使用\n" +"暂停菜单。" #: src/settings_translation_file.cpp msgid "" @@ -7025,6 +7037,12 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" +"世界对齐纹理可以缩放为跨越多个节点。然而\n" +"服务器可能不会发送您想要的比例,特别是如果您使用\n" +"专门设计的纹理包;使用此选项,客户端尝试\n" +"根据纹理大小自动确定比例。\n" +"另请参阅texture_min_size。\n" +"警告: 此选项是实验性的!" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" From 7f2daf95b5d80baa60abf3105d91d31f648fdd7d Mon Sep 17 00:00:00 2001 From: AISS Date: Wed, 20 Jan 2021 15:43:24 +0000 Subject: [PATCH 475/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 98.0% (1323 of 1350 strings) --- po/zh_CN/minetest.po | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 77612ce5f..5d347c6ec 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2021-01-20 15:48+0000\n" -"Last-Translator: ZhiZe-ZG \n" +"Last-Translator: AISS \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -6919,7 +6919,7 @@ msgid "" msgstr "" "当gui_scaling_filter为 true 时,所有 GUI 映像都需要\n" "在软件中过滤,但一些图像是直接生成的\n" -"硬件(例如,库存中节点的渲染到纹理)。" +"硬件(例如,库存中材质的渲染到纹理)。" #: src/settings_translation_file.cpp msgid "" @@ -6945,6 +6945,17 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" +"531 / 5000\n" +"Translation results\n" +"使用双线性/三线性/各向异性滤镜时,低分辨率纹理\n" +"可以被模糊化,因此可以使用最近的邻居自动对其进行放大\n" +"插值以保留清晰像素。 设置最小纹理大小\n" +"用于高档纹理; 较高的值看起来更锐利,但需要更多\n" +"记忆。 建议使用2的幂。 将此值设置为大于1可能不会\n" +"除非双线性/三线性/各向异性过滤是\n" +"已启用。\n" +"这也用作与世界对齐的基本材质纹理大小\n" +"纹理自动缩放。" #: src/settings_translation_file.cpp msgid "" @@ -7005,9 +7016,8 @@ msgid "Width component of the initial window size." msgstr "初始窗口大小的宽度。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Width of the selection box lines around nodes." -msgstr "结点周围的选择框的线宽。" +msgstr "节点周围的选择框线的宽度。" #: src/settings_translation_file.cpp msgid "" @@ -7015,6 +7025,8 @@ msgid "" "background.\n" "Contains the same information as the file debug.txt (default name)." msgstr "" +"仅适用于 Windows 系统:在命令行中窗口中启动 Minetest。\n" +"与 debug.txt(默认名称)文件包含相同的调试信息。" #: src/settings_translation_file.cpp msgid "" From 722d895e66bc8198887a7f4f91f47767b60c2b7d Mon Sep 17 00:00:00 2001 From: Deleted User Date: Wed, 20 Jan 2021 15:38:19 +0000 Subject: [PATCH 476/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 98.0% (1323 of 1350 strings) --- po/zh_CN/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 5d347c6ec..d87e78e73 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2021-01-20 15:48+0000\n" -"Last-Translator: AISS \n" +"Last-Translator: Deleted User \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -6980,7 +6980,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "是否允许玩家互相伤害和杀死。" #: src/settings_translation_file.cpp msgid "" From df401050094273e3d433f310596f2188f48d8067 Mon Sep 17 00:00:00 2001 From: ZhiZe-ZG Date: Wed, 20 Jan 2021 16:36:28 +0000 Subject: [PATCH 477/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1350 of 1350 strings) --- po/zh_CN/minetest.po | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index d87e78e73..9d5a04ecd 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2021-01-20 15:48+0000\n" -"Last-Translator: Deleted User \n" +"PO-Revision-Date: 2021-01-20 16:39+0000\n" +"Last-Translator: ZhiZe-ZG \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -2160,8 +2160,8 @@ msgid "" msgstr "" "调整悬空岛层的密度。\n" "增加值以增加密度。可以是正值或负值。\n" -"值等于0.0, 容积的50%是floatland。\n" -"值等于2.0 ,(可以更高,取决于 'mgv7_np_floatland' ,始终测试以确定)\n" +"Value = 0.0: 容积的50%是floatland。\n" +"Value = 2.0 (可以更高,取决于 'mgv7_np_floatland' ,始终测试以确定):\n" "创建一个坚实的悬空岛层。" #: src/settings_translation_file.cpp @@ -6557,6 +6557,10 @@ msgid "" "setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" "set to the nearest valid value." msgstr "" +"节点环境遮挡阴影的强度(暗度)。\n" +"越低越暗,越高越亮。该值的有效范围是\n" +"0.25至4.0(含)。如果该值超出范围,则为\n" +"设置为最接近的有效值。" #: src/settings_translation_file.cpp msgid "" @@ -6797,7 +6801,7 @@ msgstr "控制山丘的坡度/高度。" #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "垂直爬升速度,以节点/秒表示。" #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6808,7 +6812,6 @@ msgid "Video driver" msgstr "视频驱动程序" #: src/settings_translation_file.cpp -#, fuzzy msgid "View bobbing factor" msgstr "范围摇动" @@ -7058,7 +7061,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "" +msgstr "世界对齐纹理模式" #: src/settings_translation_file.cpp msgid "Y of flat ground." @@ -7068,7 +7071,7 @@ msgstr "平地的 Y。" msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." -msgstr "" +msgstr "Y的山地密度梯度为零。用于垂直移动山脉。" #: src/settings_translation_file.cpp #, fuzzy @@ -7077,7 +7080,7 @@ msgstr "大型随机洞穴的Y轴最大值。" #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." -msgstr "" +msgstr "洞穴扩大到最大尺寸的Y轴距离。" #: src/settings_translation_file.cpp msgid "" @@ -7086,6 +7089,10 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"悬空岛从最大密度到无密度区域的Y 轴距离。\n" +"锥形从 Y 轴界限开始。\n" +"对于实心浮地图层,这控制山/山的高度。\n" +"必须小于或等于 Y 限制之间一半的距离。" #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." @@ -7093,11 +7100,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of cavern upper limit." -msgstr "" +msgstr "洞穴上限的Y坐标。" #: src/settings_translation_file.cpp msgid "Y-level of higher terrain that creates cliffs." -msgstr "" +msgstr "形成悬崖的更高地形的Y坐标。" #: src/settings_translation_file.cpp msgid "Y-level of lower terrain and seabed." From 5a7c728a9f41c979969e888a75b15af2ef6d459c Mon Sep 17 00:00:00 2001 From: AISS Date: Wed, 20 Jan 2021 16:31:59 +0000 Subject: [PATCH 478/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1350 of 1350 strings) --- po/zh_CN/minetest.po | 132 +++++++++++++++++++------------------------ 1 file changed, 59 insertions(+), 73 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 9d5a04ecd..57389b219 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2021-01-20 16:39+0000\n" -"Last-Translator: ZhiZe-ZG \n" +"PO-Revision-Date: 2021-01-24 16:19+0000\n" +"Last-Translator: AISS \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -2159,10 +2159,10 @@ msgid "" "to be sure) creates a solid floatland layer." msgstr "" "调整悬空岛层的密度。\n" -"增加值以增加密度。可以是正值或负值。\n" -"Value = 0.0: 容积的50%是floatland。\n" -"Value = 2.0 (可以更高,取决于 'mgv7_np_floatland' ,始终测试以确定):\n" -"创建一个坚实的悬空岛层。" +"增大数值可增加密度,可以是正值或负值。\n" +"值=0.0:50% o的体积是平原。\n" +"值 = 2.0 (可以更高,取决于'mgv7_np_floatland'。\n" +"总是测试以确保,创建一个坚实的悬空岛层。" #: src/settings_translation_file.cpp msgid "Advanced" @@ -3116,9 +3116,10 @@ msgid "" "flatter lowlands, suitable for a solid floatland layer." msgstr "" "悬空岛锥度的指数,更改锥度的行为。\n" -"值等于1.0,创建一个统一的,线性锥度。\n" -"值大于1.0,创建一个平滑的、合适的锥度,默认分隔的悬空岛。\n" -"值小于1.0,(例如0.25)创建一个带有平坦低地的更加轮廓分明的表面级别,\n" +"值等于1.0 ,创建一个统一的,线性锥度。\n" +"值大于1.0 ,创建一个平滑的、合适的锥度,\n" +"默认分隔的悬空岛。\n" +"值小于1.0,(例如0.25)创建一个带有平坦低地的更加轮廓分明的表面级别。\n" "适用于固体悬空岛层。" #: src/settings_translation_file.cpp @@ -3878,8 +3879,8 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" -"如果客户端mod方块范围限制启用,限制get_node至玩家\n" -"到方块的距离" +"如果客户端mod方块范围限制启用,限制get_node至玩家。\n" +"到方块的距离。" #: src/settings_translation_file.cpp msgid "" @@ -6427,7 +6428,6 @@ msgid "Texture path" msgstr "材质路径" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Textures on a node may be aligned either to the node or to the world.\n" "The former mode suits better things like machines, furniture, etc., while\n" @@ -6436,49 +6436,39 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" -"节点上的纹理可以与节点或世界对齐。\n" -"\n" -"前一种模式更适合机器、家具等,而\n" -"\n" -"后者使楼梯和微型砌块更适合周围环境。\n" -"\n" -"但是,由于这种可能性是新的,因此可能不会被较旧的服务器使用,\n" -"\n" -"此选项允许对某些节点类型强制执行它。注意,尽管\n" -"\n" -"这被认为是实验性的,可能无法正常工作。" +"节点上的纹理可以与该节点对齐,也可以与世界对齐。\n" +"前一种模式适合机器,家具等更好的东西,而\n" +"后者使楼梯和微区块更适合周围环境。\n" +"但是,由于这种可能性是新的,因此较旧的服务器可能不会使用,\n" +"此选项允许对某些节点类型强制实施。 注意尽管\n" +"被认为是实验性的,可能无法正常工作。" #: src/settings_translation_file.cpp msgid "The URL for the content repository" msgstr "内容存储库的 URL" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The default format in which profiles are being saved,\n" "when calling `/profiler save [format]` without format." msgstr "" "保存配置文件的默认格式,\n" -"\n" "调用`/profiler save[format]`时不带格式。" #: src/settings_translation_file.cpp msgid "The depth of dirt or other biome filler node." -msgstr "泥土深度或其他生物群系过滤节点" +msgstr "泥土深度或其他生物群系过滤节点。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The file path relative to your worldpath in which profiles will be saved to." -msgstr "(配置文件将保存到)您的世界路径的文件路径。" +msgstr "配置文件将保存到,您的世界路径的文件路径。" #: src/settings_translation_file.cpp -#, fuzzy msgid "The identifier of the joystick to use" msgstr "要使用的操纵杆的标识符" #: src/settings_translation_file.cpp -#, fuzzy msgid "The length in pixels it takes for touch screen interaction to start." msgstr "开始触摸屏交互所需的长度(以像素为单位)。" @@ -6509,7 +6499,6 @@ msgstr "" "在游戏中查看/privs以获得完整列表和mod配置。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6519,15 +6508,11 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" -"每一个受限制的玩家周围方块体积的半径\n" -"\n" -"活动块,用mapblocks(16个节点)表示。\n" -"\n" -"在活动块中,加载对象并运行ABMs。\n" -"\n" -"这也是保持活动对象(mob)的最小范围。\n" -"\n" -"这应该与活动的\\对象\\发送\\范围\\块一起配置。" +"每个玩家周围的方块体积的半径受制于\n" +"活动块内容,以mapblock(16个节点)表示。\n" +"在活动块中,将加载对象并运行ABM。\n" +"这也是保持活动对象(生物)的最小范围。\n" +"这应该与active_object_send_range_blocks一起配置。" #: src/settings_translation_file.cpp msgid "" @@ -6538,17 +6523,19 @@ msgid "" "On other platforms, OpenGL is recommended, and it’s the only driver with\n" "shader support currently." msgstr "" -"Irrlicht的渲染后端,\n" -"更改此设置后需要重新启动,\n" -"注意:在Android上,如果不确定,请坚持使用OGLES1! 应用可能无法启动,否则,\n" -"在其他平台上,建议使用OpenGL,它是唯一具有以下功能的驱动程序,\n" -"目前支持着色器," +"Irrlicht的渲染后端。\n" +"更改此设置后需要重新启动。\n" +"注意:在Android上,如果不确定,请坚持使用OGLES1! 应用可能无法启动,否则。\n" +"在其他平台上,建议使用OpenGL,它是唯一具有以下功能的驱动程序。\n" +"目前支持着色器。" #: src/settings_translation_file.cpp msgid "" "The sensitivity of the joystick axes for moving the\n" "ingame view frustum around." msgstr "" +"操纵杆轴的灵敏度,用于移动\n" +"在游戏中查看周围 frustum。" #: src/settings_translation_file.cpp msgid "" @@ -6568,6 +6555,9 @@ msgid "" "capacity until an attempt is made to decrease its size by dumping old queue\n" "items. A value of 0 disables the functionality." msgstr "" +"液体波动可能增长超过处理能力的时间(以秒为单位)。\n" +"尝试通过旧液体波动项来减少其大小。\n" +"数值为0将禁用该功能。" #: src/settings_translation_file.cpp msgid "" @@ -6601,9 +6591,8 @@ msgstr "" "已启用“ altitude_dry”。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "定义tunnels的最初2个3D噪音。" +msgstr "四种2D波状定义了,频率,幅度,噪声,颜色。" #: src/settings_translation_file.cpp msgid "" @@ -6630,7 +6619,6 @@ msgid "Timeout for client to remove unused map data from memory." msgstr "客户端从内存中移除未用地图数据的超时。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "To reduce lag, block transfers are slowed down when a player is building " "something.\n" @@ -6638,7 +6626,7 @@ msgid "" "node." msgstr "" "为了减少延迟,当一个玩家正在构建某个东西时,阻塞传输会减慢。\n" -"这决定了放置或删除节点后它们的速度减慢的时间" +"这决定了放置或删除节点后它们的速度减慢的时间。" #: src/settings_translation_file.cpp msgid "Toggle camera mode key" @@ -6679,12 +6667,10 @@ msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "显示在“多人游戏”选项卡中的服务器列表的URL。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Undersampling" msgstr "采集" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6695,7 +6681,7 @@ msgstr "" "采集类似于使用较低的屏幕分辨率,但是它适用\n" "仅限于游戏世界,保持GUI完整。\n" "它应该以不那么详细的图像为代价显着提高性能。\n" -"较高的值会导致图像不太清晰" +"较高的值会导致图像不太清晰。" #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6735,6 +6721,9 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" +"使用mip映射缩放纹理。可能会稍微提高性能,\n" +"尤其是使用高分辨率纹理包时。\n" +"不支持Gamma校正缩小。" #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -6753,9 +6742,8 @@ msgid "Valley depth" msgstr "山谷深度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley fill" -msgstr "山谷堆积" +msgstr "山谷填塞" #: src/settings_translation_file.cpp msgid "Valley profile" @@ -6794,6 +6782,8 @@ msgid "" "Varies roughness of terrain.\n" "Defines the 'persistence' value for terrain_base and terrain_alt noises." msgstr "" +"改变地形的粗糙度。\n" +"定义 terrain_base和terrain_alt光影的“持久性”值。" #: src/settings_translation_file.cpp msgid "Varies steepness of cliffs." @@ -6882,9 +6872,8 @@ msgid "Water level" msgstr "水位" #: src/settings_translation_file.cpp -#, fuzzy msgid "Water surface level of the world." -msgstr "世界水平面级别。" +msgstr "地表水面高度。" #: src/settings_translation_file.cpp msgid "Waving Nodes" @@ -6948,16 +6937,14 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" -"531 / 5000\n" -"Translation results\n" -"使用双线性/三线性/各向异性滤镜时,低分辨率纹理\n" -"可以被模糊化,因此可以使用最近的邻居自动对其进行放大\n" -"插值以保留清晰像素。 设置最小纹理大小\n" -"用于高档纹理; 较高的值看起来更锐利,但需要更多\n" -"记忆。 建议使用2的幂。 将此值设置为大于1可能不会\n" -"除非双线性/三线性/各向异性过滤是\n" +"使用双线性/三线性/各向异性滤镜时,低分辨率纹理。\n" +"可以被模糊化,因此可以使用最近的邻居自动对其进行放大。\n" +"插值以保留清晰像素。 设置最小纹理大小。\n" +"用于高档纹理; 较高的值看起来更锐利,但需要更多。\n" +"记忆。 建议使用2的幂。 将此值设置为大于1可能不会。\n" +"除非双线性/三线性/各向异性过滤是。\n" "已启用。\n" -"这也用作与世界对齐的基本材质纹理大小\n" +"这也用作与世界对齐的基本材质纹理大小。\n" "纹理自动缩放。" #: src/settings_translation_file.cpp @@ -7052,12 +7039,12 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" -"世界对齐纹理可以缩放为跨越多个节点。然而\n" -"服务器可能不会发送您想要的比例,特别是如果您使用\n" -"专门设计的纹理包;使用此选项,客户端尝试\n" +"世界对齐的纹理可以缩放以跨越多个节点。 然而,\n" +"服务器可能不会同意您想要的请求,特别是如果您使用\n" +"专门设计的纹理包; 使用此选项,客户端尝试\n" "根据纹理大小自动确定比例。\n" -"另请参阅texture_min_size。\n" -"警告: 此选项是实验性的!" +"另请参见texture_min_size。\n" +"警告:此选项是实验性的!" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" @@ -7074,9 +7061,8 @@ msgid "" msgstr "Y的山地密度梯度为零。用于垂直移动山脉。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Y of upper limit of large caves." -msgstr "大型随机洞穴的Y轴最大值。" +msgstr "大型随机洞穴的Y坐标最大值。" #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." @@ -7096,7 +7082,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." -msgstr "" +msgstr "地表平均Y坐标。" #: src/settings_translation_file.cpp msgid "Y-level of cavern upper limit." From 588af14733815beec7777e24db85782e1ceab621 Mon Sep 17 00:00:00 2001 From: Ronoaldo Pereira Date: Thu, 21 Jan 2021 03:28:59 +0000 Subject: [PATCH 479/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 92.5% (1250 of 1350 strings) --- po/pt_BR/minetest.po | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index cd8d6f415..0deada45a 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-11-14 18:28+0000\n" -"Last-Translator: Alex Parra \n" +"PO-Revision-Date: 2021-01-22 03:32+0000\n" +"Last-Translator: Ronoaldo Pereira \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -2204,6 +2204,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Ajusta a densidade da camada de ilhas flutuantes.\n" +"Aumente o valor para aumentar a densidade. Pode ser positivo ou negativo.\n" +"Valor = 0.0: 50% do volume é ilhas flutuantes.\n" +"Valor = 2.0 (pode ser maior dependendo do 'mgv7_np_floatland', sempre teste\n" +"para ter certeza) cria uma camada sólida de ilhas flutuantes." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2217,6 +2222,12 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" +"Altera a curva da luz aplicando-lhe a 'correção gama'.\n" +"Valores altos tornam os níveis médios e baixos de luminosidade mais " +"brilhantes.\n" +"O valor '1.0' mantêm a curva de luz inalterada.\n" +"Isto só tem um efeito significativo sobre a luz do dia e a luz \n" +"artificial, tem pouquíssimo efeito na luz natural da noite." #: src/settings_translation_file.cpp msgid "Always fly and fast" @@ -2706,6 +2717,9 @@ msgid "" "Value >= 10.0 completely disables generation of tunnels and avoids the\n" "intensive noise calculations." msgstr "" +"Controla a largura dos túneis, um valor menor cria túneis mais largos.\n" +"Valor >= 10,0 desabilita completamente a geração de túneis e evita os\n" +"cálculos intensivos de ruído." #: src/settings_translation_file.cpp msgid "Crash message" @@ -3060,6 +3074,8 @@ msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" +"Ativa vertex buffer objects.\n" +"Isso deve melhorar muito a performance gráfica." #: src/settings_translation_file.cpp msgid "" @@ -3086,6 +3102,11 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" +"Permite o mapeamento de tom do filme 'Uncharted 2', de Hable.\n" +"Simula a curva de tons do filme fotográfico e como isso se aproxima da\n" +"aparência de imagens de alto alcance dinâmico (HDR). O contraste de médio " +"alcance é ligeiramente\n" +"melhorado, os destaques e as sombras são gradualmente comprimidos." #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." @@ -3134,6 +3155,11 @@ msgid "" "sound controls will be non-functional.\n" "Changing this setting requires a restart." msgstr "" +"Ativa o sistema de som.\n" +"Se desativado, isso desabilita completamente todos os sons em todos os " +"lugares\n" +"e os controles de som dentro do jogo se tornarão não funcionais.\n" +"Mudar esta configuração requer uma reinicialização." #: src/settings_translation_file.cpp msgid "Engine profiling data print interval" From 9eac2edd1a92bed682fb7b4508f003e49e8ff91d Mon Sep 17 00:00:00 2001 From: AISS Date: Thu, 21 Jan 2021 01:18:38 +0000 Subject: [PATCH 480/624] Translated using Weblate (Chinese (Traditional)) Currently translated at 77.1% (1041 of 1350 strings) --- po/zh_TW/minetest.po | 529 +++++++++++++++++++++++++++++++------------ 1 file changed, 382 insertions(+), 147 deletions(-) diff --git a/po/zh_TW/minetest.po b/po/zh_TW/minetest.po index 99a9da965..dc2868bff 100644 --- a/po/zh_TW/minetest.po +++ b/po/zh_TW/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Traditional) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-12-24 05:29+0000\n" -"Last-Translator: Man Ho Yiu \n" +"PO-Revision-Date: 2021-01-24 16:19+0000\n" +"Last-Translator: AISS \n" "Language-Team: Chinese (Traditional) \n" "Language: zh_TW\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,7 +23,6 @@ msgid "You died" msgstr "您已死亡" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp -#, fuzzy msgid "OK" msgstr "OK" @@ -165,12 +164,10 @@ msgid "Back to Main Menu" msgstr "返回主選單" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "在沒有cURL的情況下編譯Minetest時,ContentDB不可用" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." msgstr "正在載入..." @@ -226,7 +223,6 @@ msgid "A world named \"$1\" already exists" msgstr "名為「$1」的世界已存在" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Additional terrain" msgstr "其他地形" @@ -235,24 +231,23 @@ msgid "Altitude chill" msgstr "寒冷海拔" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" msgstr "寒冷海拔" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Biome blending" -msgstr "生物雜訊" +msgstr "生物群落" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Biomes" -msgstr "生物雜訊" +msgstr "生物群落" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Caverns" -msgstr "洞穴雜訊" +msgstr "洞穴" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -302,7 +297,7 @@ msgstr "遊戲" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "生成曲線或幾何地形:海洋和地下" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" @@ -360,11 +355,11 @@ msgstr "未選擇遊戲" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "隨海拔降低熱量" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "濕度隨海拔升高而降低" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -402,11 +397,11 @@ msgstr "溫帶沙漠" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "溫帶、沙漠、叢林" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "溫帶,沙漠,叢林,苔原,針葉林" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -415,7 +410,7 @@ msgstr "地形基礎高度" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "樹木和叢林草" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -506,7 +501,7 @@ msgstr "已啟用" #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Lacunarity" -msgstr "Lacunarity" +msgstr "空隙" #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy @@ -1953,12 +1948,13 @@ msgstr "" "如停用,虛擬搖桿將會置中於第一個觸碰的位置。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." -msgstr "(Android) 使用虛擬搖桿觸發 \"aux\" 按鍵。\n" +msgstr "" +"(Android)使用虛擬操縱桿觸發“aux”按鈕。\n" +"如果啟用,則虛擬遊戲桿也會在離開主圓時點擊“aux”按鈕。" #: src/settings_translation_file.cpp #, fuzzy @@ -1973,11 +1969,16 @@ msgid "" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" "在「比例尺」中單位的 (X,Y,Z) 偏移。\n" -"用於移動適合的低地生成區域靠近 (0, 0)。\n" -"預設值適合曼德博集合,若要用於朱利亞集合則必須修改。\n" -"範圍大約在 -2 至 2 間。乘以節點的偏移值。" +"可用於將所需點移動到(0, 0)以創建一個。\n" +"合適的生成點,或允許“放大”所需的點。\n" +"通過增加“規模”來確定。\n" +"默認值已調整為Mandelbrot合適的生成點。\n" +"設置默認參數,可能需要更改其他參數。\n" +"情況。\n" +"範圍大約在 -2 至 2 間。乘以“比例”可得出節點的偏移值。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "(X,Y,Z) scale of fractal in nodes.\n" "Actual fractal size will be 2 to 3 times larger.\n" @@ -1987,6 +1988,13 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" +"節點的分形幾何的(X,Y,Z)比例。\n" +"實際分形大小將是2到3倍。\n" +"這些數字可以做得很大,分形確實。\n" +"不必適應世界。\n" +"增加這些以“放大”到分形的細節。\n" +"默認為適合於垂直壓扁的形狀。\n" +"一個島,將所有3個數字設置為原始形狀相等。" #: src/settings_translation_file.cpp msgid "" @@ -2058,6 +2066,10 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D噪聲定義了浮地結構。\n" +"如果更改為默認值,則可能需要噪聲“比例”(默認值為0.7)。\n" +"需要進行調整,因為當噪音達到。\n" +"值範圍約為-2.0到2.0。" #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2177,6 +2189,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"調整浮游性地層的密度.\n" +"增加值以增加密度. 可以是正麵還是負麵的。\n" +"價值=0.0:50% o的體積是浮遊地。\n" +"值2.0(可以更高,取決於“mgv7_np_floatland”,總是測試。\n" +"肯定)創造一個固體浮游性地層。" #: src/settings_translation_file.cpp msgid "Advanced" @@ -2190,6 +2207,11 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" +"通過對其應用“gamma correction”來更改光曲線。\n" +"較高的值可使中等和較低的光照水平更亮。\n" +"值“ 1.0”使光曲線保持不變。\n" +"這僅對日光和人造光有重大影響。\n" +"光線,對自然的夜光影響很小。" #: src/settings_translation_file.cpp msgid "Always fly and fast" @@ -2201,7 +2223,7 @@ msgstr "環境遮蔽光" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "玩家每 10 秒能傳送的訊息量" +msgstr "玩家每 10 秒能傳送的訊息量。" #: src/settings_translation_file.cpp msgid "Amplifies the valleys." @@ -2241,14 +2263,15 @@ msgstr "慣性手臂" msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." -msgstr "慣性手臂,當相機移動時提供更加真實的手臂運動。" +msgstr "" +"手臂慣性,使動作更加逼真。\n" +"相機移動時的手臂。" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" msgstr "詢問是否在當機後重新連線" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "At this distance the server will aggressively optimize which blocks are sent " "to\n" @@ -2262,11 +2285,14 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" -"在這樣的距離下,伺服器將積極最佳化那些要傳送給用戶端的方塊。\n" -"較小的值可能會提升效能,但代價是一些可見的彩現問題。\n" -"(有一些在水中與洞穴中的方塊將不會被彩現,以及有時在陸地上)\n" +"在這樣的距離下,伺服器將積極最佳化。\n" +"那些要傳送給用戶端的方塊。\n" +"較小的值可能會提升效能。\n" +"但代價是一些可見的彩現問題。\n" +"(有一些在水中與洞穴中的方塊將不會被彩現,\n" +"以及有時在陸地上)。\n" "將此值設定為大於 max_block_send_distance 將會停用這個最佳化。\n" -"在地圖區塊中顯示(16 個節點)" +"在地圖區塊中顯示(16 個節點)。" #: src/settings_translation_file.cpp #, fuzzy @@ -2274,8 +2300,9 @@ msgid "Automatic forward key" msgstr "前進鍵" #: src/settings_translation_file.cpp +#, fuzzy msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "自動跳過單節點障礙物。" #: src/settings_translation_file.cpp #, fuzzy @@ -2287,8 +2314,9 @@ msgid "Autosave screen size" msgstr "自動儲存視窗大小" #: src/settings_translation_file.cpp +#, fuzzy msgid "Autoscaling mode" -msgstr "" +msgstr "自動縮放模式" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2300,9 +2328,8 @@ msgid "Base ground level" msgstr "地面高度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Base terrain height." -msgstr "基礎地形高度" +msgstr "基礎地形高度。" #: src/settings_translation_file.cpp msgid "Basic" @@ -2379,12 +2406,17 @@ msgid "Bumpmapping" msgstr "映射貼圖" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"相機在節點附近的“剪切平面附近”距離,介於0到0.25之間\n" +"僅適用於GLES平台。 大多數用戶不需要更改此設置。\n" +"增加可以減少較弱GPU上的偽影。\n" +"0.1 =默認值,0.25 =對於較弱的平板電腦來說是好的值。" #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2448,6 +2480,8 @@ msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"光線曲線推進範圍中心。\n" +"0.0是最低光水平, 1.0是最高光水平." #: src/settings_translation_file.cpp msgid "" @@ -2458,6 +2492,10 @@ msgid "" "be\n" "necessary for smaller screens." msgstr "" +"更改主菜單用戶界面:\n" +"-完整:多個單人遊戲世界,遊戲選擇,紋理包選擇器等。\n" +"-簡單:一個單人遊戲世界,沒有遊戲或紋理包選擇器。 也許\n" +"對於較小的屏幕是必需的。" #: src/settings_translation_file.cpp #, fuzzy @@ -2531,8 +2569,9 @@ msgid "Client side modding restrictions" msgstr "用戶端修改" #: src/settings_translation_file.cpp +#, fuzzy msgid "Client side node lookup range restriction" -msgstr "" +msgstr "客戶端節點查找範圍限制" #: src/settings_translation_file.cpp msgid "Climbing speed" @@ -2559,6 +2598,7 @@ msgid "Colored fog" msgstr "彩色迷霧" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Comma-separated list of flags to hide in the content repository.\n" "\"nonfree\" can be used to hide packages which do not qualify as 'free " @@ -2568,6 +2608,12 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" +"以逗號分隔的標誌列表,以隱藏在內容存儲庫中。\n" +"“ nonfree”可用於隱藏不符合“免費軟件”資格的軟件包,\n" +"由自由軟件基金會定義。\n" +"您還可以指定內容分級。\n" +"這些標誌獨立於Minetest版本,\n" +"因此請訪問https://content.minetest.net/help/content_flags/查看完整列表" #: src/settings_translation_file.cpp msgid "" @@ -2614,8 +2660,9 @@ msgid "Console height" msgstr "終端機高度" #: src/settings_translation_file.cpp +#, fuzzy msgid "ContentDB Flag Blacklist" -msgstr "" +msgstr "ContentDB標誌黑名單列表" #: src/settings_translation_file.cpp #, fuzzy @@ -2637,18 +2684,18 @@ msgid "Controls" msgstr "控制" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Controls length of day/night cycle.\n" "Examples:\n" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" "控制日/夜循環的長度。\n" -"範例:72 = 20分鐘,360 = 4分鐘,1 = 24小時,0 = 日/夜/一切保持不變。" +"範例:\n" +"72 = 20分鐘,360 = 4分鐘,1 = 24小時,0 = 日/夜/一切保持不變。" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "控制液體的下沉速度。" #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2659,11 +2706,15 @@ msgid "Controls steepness/height of hills." msgstr "控制山丘的陡度/深度。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Controls width of tunnels, a smaller value creates wider tunnels.\n" "Value >= 10.0 completely disables generation of tunnels and avoids the\n" "intensive noise calculations." msgstr "" +"控制隧道的寬度,較小的值將創建較寬的隧道。\n" +"值> = 10.0完全禁用了隧道的生成,並避免了\n" +"密集的噪聲計算。" #: src/settings_translation_file.cpp msgid "Crash message" @@ -2716,7 +2767,7 @@ msgstr "音量減少鍵" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistance to movement." -msgstr "" +msgstr "減小此值可增加液體的運動阻力。" #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2931,6 +2982,8 @@ msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." msgstr "" +"啟用IPv6支持(針對客戶端和服務器)。\n" +"IPv6連接需要它。" #: src/settings_translation_file.cpp msgid "" @@ -2954,9 +3007,8 @@ msgid "Enable joysticks" msgstr "啟用搖桿" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable mod channels support." -msgstr "啟用 mod 安全性" +msgstr "啟用Mod Channels支持。" #: src/settings_translation_file.cpp msgid "Enable mod security" @@ -2972,13 +3024,15 @@ msgstr "啟用隨機使用者輸入(僅供測試使用)。" #: src/settings_translation_file.cpp msgid "Enable register confirmation" -msgstr "" +msgstr "啟用註冊確認" #: src/settings_translation_file.cpp msgid "" "Enable register confirmation when connecting to server.\n" "If disabled, new account will be registered automatically." msgstr "" +"連接到服務器時啟用註冊確認。\n" +"如果禁用,新帳戶將自動註冊。" #: src/settings_translation_file.cpp msgid "" @@ -3016,6 +3070,8 @@ msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" +"啟用最好圖形緩衝.\n" +"這將大大提高圖形性能。" #: src/settings_translation_file.cpp msgid "" @@ -3037,12 +3093,17 @@ msgstr "" "當 bind_address 被設定時將會被忽略。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Enables Hable's 'Uncharted 2' filmic tone mapping.\n" "Simulates the tone curve of photographic film and how this approximates the\n" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" +"啟用Hable的“Uncharted 2”電影色調映射。\n" +"模擬攝影膠片的色調曲線,\n" +"以及它如何近似高動態範圍圖像的外觀。\n" +"中檔對比度略微增強,高光和陰影逐漸壓縮。" #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." @@ -3090,6 +3151,10 @@ msgid "" "sound controls will be non-functional.\n" "Changing this setting requires a restart." msgstr "" +"啟用聲音系統。\n" +"如果禁用,則將完全禁用所有聲音以及遊戲中的所有聲音。\n" +"聲音控件將不起作用。\n" +"更改此設置需要重新啟動。" #: src/settings_translation_file.cpp msgid "Engine profiling data print interval" @@ -3116,6 +3181,12 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"逐漸縮小的指數。 更改逐漸變細的行為。\n" +"值= 1.0會創建均勻的線性錐度。\n" +"值> 1.0會創建適合於默認分隔的平滑錐形\n" +"浮地。\n" +"值<1.0(例如0.25)可使用\n" +"平坦的低地,適用於堅固的浮遊地層。" #: src/settings_translation_file.cpp msgid "FPS in pause menu" @@ -3184,13 +3255,13 @@ msgid "Field of view in degrees." msgstr "以度計算的視野。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "File in client/serverlist/ that contains your favorite servers displayed in " "the\n" "Multiplayer Tab." msgstr "" -"在 用戶端/伺服器清單/ 中的檔案包含了顯示在多人遊戲分頁中您最愛的伺服器。" +"在 用戶端/伺服器清單/ 中的檔案包含了顯示在。\n" +"多人遊戲分頁中您最愛的伺服器。" #: src/settings_translation_file.cpp #, fuzzy @@ -3235,8 +3306,9 @@ msgid "Fixed map seed" msgstr "固定的地圖種子" #: src/settings_translation_file.cpp +#, fuzzy msgid "Fixed virtual joystick" -msgstr "" +msgstr "固定虛擬遊戲桿" #: src/settings_translation_file.cpp #, fuzzy @@ -3295,11 +3367,11 @@ msgstr "霧氣切換鍵" #: src/settings_translation_file.cpp msgid "Font bold by default" -msgstr "" +msgstr "字體默認為粗體" #: src/settings_translation_file.cpp msgid "Font italic by default" -msgstr "" +msgstr "字體默認為斜體" #: src/settings_translation_file.cpp msgid "Font shadow" @@ -3314,22 +3386,28 @@ msgid "Font size" msgstr "字型大小" #: src/settings_translation_file.cpp +#, fuzzy msgid "Font size of the default font in point (pt)." -msgstr "" +msgstr "默認字體的字體大小,以(pt)為單位。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Font size of the fallback font in point (pt)." -msgstr "" +msgstr "後備字體的字體大小,以(pt)為單位。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Font size of the monospace font in point (pt)." -msgstr "" +msgstr "以点为单位的单空格字体的字体大小,以(pt)為單位。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"最近的聊天文本和聊天提示的字體大小,以(pt)為單位。\n" +"值0將使用默認字體大小。" #: src/settings_translation_file.cpp msgid "" @@ -3346,19 +3424,19 @@ msgstr "螢幕截圖的格式。" #: src/settings_translation_file.cpp msgid "Formspec Default Background Color" -msgstr "" +msgstr "Formspec默認背景色" #: src/settings_translation_file.cpp msgid "Formspec Default Background Opacity" -msgstr "" +msgstr "Formspec默認背景不透明度" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" -msgstr "" +msgstr "Formspec全屏背景色" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" -msgstr "" +msgstr "Formspec全屏背景不透明度" #: src/settings_translation_file.cpp #, fuzzy @@ -3413,6 +3491,7 @@ msgid "" msgstr "要把多遠的區塊送到用戶端,以地圖區塊計算(16 個節點)。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "From how far clients know about objects, stated in mapblocks (16 nodes).\n" "\n" @@ -3420,6 +3499,11 @@ msgid "" "to maintain active objects up to this distance in the direction the\n" "player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" +"客戶端了解對象的程度,以mapblocks(16個節點)表示。\n" +"\n" +"將此值設置為大於active_block_range也會導致服務器。\n" +"使活動物體在以下方向上保持此距離。\n" +"玩家正在尋找。 (這可以避免小怪突然從視線中消失)" #: src/settings_translation_file.cpp msgid "Full screen" @@ -3461,22 +3545,26 @@ msgid "" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" "全域地圖產生屬性。\n" -"在 Mapgen v6 中,「decorations」旗標控制所有除了樹木\n" +"在 Mapgen v6 中,「decorations」旗標控制所有除了樹木。\n" "與叢林以外的裝飾,在其他所有的 mapgen 中,這個旗標控制所有裝飾。\n" -"未在旗標字串中指定的旗標將不會自預設值修改。\n" -"以「no」開頭的旗標字串將會用於明確的停用它們。" +"未在旗標字串中指定的旗標將不會自預設值修改\n" +"以「no」開頭的旗標字串將會用於明確的停用它們" #: src/settings_translation_file.cpp msgid "" "Gradient of light curve at maximum light level.\n" "Controls the contrast of the highest light levels." msgstr "" +"最大光水平下的光曲線漸變。\n" +"控制最高亮度的對比度。" #: src/settings_translation_file.cpp msgid "" "Gradient of light curve at minimum light level.\n" "Controls the contrast of the lowest light levels." msgstr "" +"最小光水平下的光曲線漸變。\n" +"控制最低亮度的對比度。" #: src/settings_translation_file.cpp msgid "Graphics" @@ -3590,18 +3678,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"跳躍或墜落時空氣中的水平加速度,\n" +"以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"快速模式下的水平和垂直加速度,\n" +"以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"在地面或攀爬時的水平和垂直加速度,\n" +"以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3742,7 +3836,7 @@ msgstr "快捷列第 9 個槽的按鍵" #: src/settings_translation_file.cpp #, fuzzy msgid "How deep to make rivers." -msgstr "河流多深" +msgstr "河流深度。" #: src/settings_translation_file.cpp msgid "" @@ -3750,6 +3844,9 @@ msgid "" "If negative, liquid waves will move backwards.\n" "Requires waving liquids to be enabled." msgstr "" +"液體波將移動多快。 Higher = faster。\n" +"如果為負,則液體波將向後移動。\n" +"需要啟用波狀液體。" #: src/settings_translation_file.cpp msgid "" @@ -3762,7 +3859,7 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "How wide to make rivers." -msgstr "河流多寬" +msgstr "河流寬度。" #: src/settings_translation_file.cpp msgid "Humidity blend noise" @@ -3798,7 +3895,9 @@ msgid "" "If disabled, \"special\" key is used to fly fast if both fly and fast mode " "are\n" "enabled." -msgstr "若停用,在飛行與快速模式皆啟用時,「使用」鍵將用於快速飛行。" +msgstr "" +"若停用,在飛行與快速模式皆啟用時,\n" +"「special」鍵將用於快速飛行。" #: src/settings_translation_file.cpp msgid "" @@ -3828,7 +3927,9 @@ msgid "" "If enabled, \"special\" key instead of \"sneak\" key is used for climbing " "down and\n" "descending." -msgstr "若啟用,向下爬與下降將使用「使用」鍵而非「潛行」鍵。" +msgstr "" +"若啟用,向下爬與下降將使用。\n" +"「special」鍵而非「sneak」鍵。" #: src/settings_translation_file.cpp msgid "" @@ -3851,38 +3952,50 @@ msgstr "" "只在您知道您在幹嘛時才啟用這個選項。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." msgstr "" +"如果啟用,則在飛行或游泳時。\n" +"相對於玩家的俯仰方向做出移動方向。" #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." msgstr "若啟用,新玩家將無法以空密碼加入。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "If enabled, you can place blocks at the position (feet + eye level) where " "you stand.\n" "This is helpful when working with nodeboxes in small areas." msgstr "" -"若啟用,您可以在您站立的位置(腳與眼睛的高度)放置方塊。當在小區域裡與節點盒" -"一同工作時非常有用。" +"若啟用,您可以在您站立的位置(腳與眼睛的高度)放置方塊。\n" +"當在小區域裡與節點盒一同工作時非常有用。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "If the CSM restriction for node range is enabled, get_node calls are " "limited\n" "to this distance from the player to the node." msgstr "" +"如果啟用了節點範圍的CSM限制,則get_node調用將受到限制\n" +"從玩家到節點的這個距離。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "If the file size of debug.txt exceeds the number of megabytes specified in\n" "this setting when it is opened, the file is moved to debug.txt.1,\n" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"如果debug.txt的文件大小超過在中指定的兆字節數\n" +"打開此設置後,文件將移至debug.txt.1,\n" +"刪除較舊的debug.txt.1(如果存在)。\n" +"僅當此設置為正時,才會移動debug.txt。" #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3914,7 +4027,7 @@ msgstr "提高音量鍵" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "跳躍時的初始垂直速度,以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "" @@ -3997,12 +4110,17 @@ msgid "Iterations" msgstr "迭代" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Iterations of the recursive function.\n" "Increasing this increases the amount of fine detail, but also\n" "increases processing load.\n" "At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" +"遞歸函數的迭代。\n" +"增加它會增加細節的數量,而且。\n" +"增加處理負荷。\n" +"迭代次數iterations = 20時,此mapgen的負載與mapgen V7相似。" #: src/settings_translation_file.cpp msgid "Joystick ID" @@ -4022,7 +4140,6 @@ msgid "Joystick type" msgstr "搖桿類型" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "W component of hypercomplex constant.\n" @@ -4030,9 +4147,11 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" -"僅朱利亞集合:可交換超複數的 W 元素決定了 朱利亞形狀。\n" -"在 3D 碎形上沒有效果。\n" -"範圍約在 -2 至 2 間。" +"蝴蝶只設置蝴蝶。\n" +"超複雜常數的W分量。\n" +"改變分形的形狀。\n" +"對3D分形沒有影響。\n" +"範圍約為-2至2。" #: src/settings_translation_file.cpp #, fuzzy @@ -4042,9 +4161,10 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"僅朱利亞集合:可交換超複數的 X 元素決定了 朱利亞形狀。\n" -"在 3D 碎形上沒有效果。\n" -"範圍約在 -2 至 2 間。" +"蝴蝶只設置蝴蝶。\n" +"超複雜常數的X分量。\n" +"改變分形的形狀。\n" +"範圍約為-2至2。" #: src/settings_translation_file.cpp #, fuzzy @@ -4054,7 +4174,8 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"僅朱利亞集合:可交換超複數的 Y 元素決定了 朱利亞形狀。\n" +"蝴蝶只設置蝴蝶\n" +"可交換超複數的 Y 元素決定了 蝴蝶形狀。\n" "在 3D 碎形上沒有效果。\n" "範圍約在 -2 至 2 間。" @@ -4066,7 +4187,8 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"僅朱利亞集合:可交換超複數的 Z 元素決定了 朱利亞形狀。\n" +"蝴蝶設置。\n" +"可交換超複數的 Z 元素決定了 蝴蝶形狀。\n" "在 3D 碎形上沒有效果。\n" "範圍約在 -2 至 2 間。" @@ -4173,6 +4295,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "將玩家往後方移動的按鍵。\n" +"在活躍時,還會禁用自動。\n" "請見 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4791,8 +4914,9 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" +msgstr "踢每10秒發送超過X條信息的玩家。" #: src/settings_translation_file.cpp msgid "Lake steepness" @@ -4812,11 +4936,11 @@ msgstr "大型洞穴深度" #: src/settings_translation_file.cpp msgid "Large cave maximum number" -msgstr "" +msgstr "大洞穴最大數量" #: src/settings_translation_file.cpp msgid "Large cave minimum number" -msgstr "" +msgstr "大洞穴最小數量" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" @@ -4852,7 +4976,9 @@ msgid "" "Length of a server tick and the interval at which objects are generally " "updated over\n" "network." -msgstr "伺服器 tick 的長度與相關物件的間隔通常透過網路更新。" +msgstr "" +"伺服器 tick 的長度與相關物件的間隔,\n" +"通常透過網路更新。" #: src/settings_translation_file.cpp #, fuzzy @@ -4899,27 +5025,28 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Light curve boost" -msgstr "" +msgstr "光曲線增強" #: src/settings_translation_file.cpp msgid "Light curve boost center" -msgstr "" +msgstr "光曲線提升中心" #: src/settings_translation_file.cpp msgid "Light curve boost spread" -msgstr "" +msgstr "光曲線增強擴散" #: src/settings_translation_file.cpp +#, fuzzy msgid "Light curve gamma" -msgstr "" +msgstr "光線曲線伽瑪" #: src/settings_translation_file.cpp msgid "Light curve high gradient" -msgstr "" +msgstr "光曲線高漸變度" #: src/settings_translation_file.cpp msgid "Light curve low gradient" -msgstr "" +msgstr "光曲線低漸變度" #: src/settings_translation_file.cpp msgid "" @@ -5028,19 +5155,17 @@ msgid "Map directory" msgstr "地圖目錄" #: src/settings_translation_file.cpp +#, fuzzy msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" +msgstr "Mapgen Carpathian特有的属性地图生成。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" -"專用於 Mapgen flat 的地圖生成屬性。\n" -"可能會有少數的湖泊或是丘陵會在扁平的世界中生成。\n" -"未在旗標字串中指定的旗標將不會自預設值修改。\n" -"以「no」開頭的旗標字串將會用於明確的停用它們。" +"專用於 Mapgen Flat 的地圖生成屬性。\n" +"可能會有少數的湖泊或是丘陵會在扁平的世界中生成。" #: src/settings_translation_file.cpp #, fuzzy @@ -5049,12 +5174,12 @@ msgid "" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"專用於 Mapgen flat 的地圖生成屬性。\n" -"可能會有少數的湖泊或是丘陵會在扁平的世界中生成。\n" -"未在旗標字串中指定的旗標將不會自預設值修改。\n" -"以「no」開頭的旗標字串將會用於明確的停用它們。" +"Mapgen Fractal特有的地圖生成屬性。\n" +"“terrain”可生成非幾何地形:\n" +"海洋,島嶼和地下。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Map generation attributes specific to Mapgen Valleys.\n" "'altitude_chill': Reduces heat with altitude.\n" @@ -5063,10 +5188,17 @@ msgid "" "to become shallower and occasionally dry.\n" "'altitude_dry': Reduces humidity with altitude." msgstr "" +"Mapgen Valleys 山谷特有的地圖生成屬性。\n" +"'altitude_chill':隨高度降低熱量。\n" +"'humid_rivers':增加河流周圍的濕度。\n" +"'vary_river_depth':如果啟用,低濕度和高熱量會導致河流\n" +"變淺,偶爾變乾。\n" +"'altitude_dry':隨著海拔高度降低濕度。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Map generation attributes specific to Mapgen v5." -msgstr "" +msgstr "Mapgen v5特有的地圖生成屬性。" #: src/settings_translation_file.cpp #, fuzzy @@ -5076,12 +5208,10 @@ msgid "" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" -"專用於 Mapgen v6 的地圖生成屬性。\n" -"'snowbiomes' 旗標啟用了五個新的生態系。\n" -"當新的生態系啟用時,叢林生態系會自動啟用,\n" -"而 'jungles' 會被忽略。\n" -"未在旗標字串中指定的旗標將不會自預設值修改。\n" -"以「no」開頭的旗標字串將會用於明確的停用它們。" +"Mapgen v6特有的地圖生成屬性。\n" +"“ snowbiomes”標誌啟用了新的5個生物群落系統。\n" +"啟用“ snowbiomes”標誌時,會自動啟用叢林並。\n" +"“叢林”標誌將被忽略。" #: src/settings_translation_file.cpp #, fuzzy @@ -5236,24 +5366,30 @@ msgstr "快捷列最大寬度" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" +msgstr "每個地圖塊的大洞穴隨機數的最大限制。" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" +msgstr "每個地圖塊隨機小洞數的最大限制。" #: src/settings_translation_file.cpp msgid "" "Maximum liquid resistance. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"最大液體阻力。控制進入液體時的減速\n" +"高速。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Maximum number of blocks that are simultaneously sent per client.\n" "The maximum total count is calculated dynamically:\n" "max_total = ceil((#clients + max_users) * per_client / 4)" msgstr "" +"每個客戶端同時發送的最大塊數。\n" +"最大總數是動態計算的:\n" +"max_total = ceil((#clients + max_users)* per_client / 4)" #: src/settings_translation_file.cpp msgid "Maximum number of blocks that can be queued for loading." @@ -5329,14 +5465,18 @@ msgid "Maximum simultaneous block sends per client" msgstr "每個用戶端最大同時傳送區塊數" #: src/settings_translation_file.cpp +#, fuzzy msgid "Maximum size of the out chat queue" -msgstr "" +msgstr "輸出聊天隊列的最大大小" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Maximum size of the out chat queue.\n" "0 to disable queueing and -1 to make the queue size unlimited." msgstr "" +"輸出聊天隊列的最大大小。\n" +"0表示禁用排隊,-1表示隊列大小不受限制。" #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." @@ -5367,8 +5507,9 @@ msgid "Method used to highlight selected object." msgstr "用於突顯物件的方法。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "要寫入聊天記錄的最低級別。" #: src/settings_translation_file.cpp msgid "Minimap" @@ -5384,11 +5525,11 @@ msgstr "迷你地圖掃描高度" #: src/settings_translation_file.cpp msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" +msgstr "每個地圖塊的大洞穴隨機數的最小限制。" #: src/settings_translation_file.cpp msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" +msgstr "每個地圖塊隨機小洞數的最小限制。" #: src/settings_translation_file.cpp #, fuzzy @@ -5400,8 +5541,9 @@ msgid "Mipmapping" msgstr "映射貼圖" #: src/settings_translation_file.cpp +#, fuzzy msgid "Mod channels" -msgstr "" +msgstr "Mod 清單" #: src/settings_translation_file.cpp msgid "Modifies the size of the hudbar elements." @@ -5458,7 +5600,7 @@ msgstr "靜音按鍵" #: src/settings_translation_file.cpp msgid "Mute sound" -msgstr "" +msgstr "靜音" #: src/settings_translation_file.cpp msgid "" @@ -5565,7 +5707,7 @@ msgstr "視差遮蔽迭代次數。" #: src/settings_translation_file.cpp msgid "Online Content Repository" -msgstr "" +msgstr "在線內容存儲庫" #: src/settings_translation_file.cpp msgid "Opaque liquids" @@ -5574,19 +5716,22 @@ msgstr "不透明液體" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" +msgstr "默認字體後面的陰影的不透明(alpha),介於0和255之間。" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" +msgstr "後備字體後面的陰影的不透明度(alpha),介於0和255之間。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Open the pause menu when the window's focus is lost. Does not pause if a " "formspec is\n" "open." msgstr "" +"當窗口焦點丟失時,打開“暫停”菜單。如果formspec是\n" +"打開的。" #: src/settings_translation_file.cpp msgid "Overall bias of parallax occlusion effect, usually scale/2." @@ -5625,12 +5770,18 @@ msgid "" "This font will be used for certain languages or if the default font is " "unavailable." msgstr "" +"後備字體的路徑。\n" +"如果啟用“freetype”設置:必須是TrueType字體。\n" +"如果“freetype”設置被禁用:必須是位圖或XML矢量字體。\n" +"此字體將用於某些語言或默認字體不可用時。" #: src/settings_translation_file.cpp msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"保存截圖的路徑。可以是絕對路徑或相對路徑。\n" +"如果文件夾尚不存在,則將創建該文件夾。" #: src/settings_translation_file.cpp msgid "" @@ -5649,18 +5800,27 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "The fallback font will be used if the font cannot be loaded." msgstr "" +"默認字體的路徑。\n" +"如果啟用“freetype”設置:必須是TrueType字體。\n" +"如果“freetype”設置被禁用:必須是位圖或XML矢量字體。\n" +"如果無法加載字體,將使用後備字體。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Path to the monospace font.\n" "If “freetype” setting is enabled: Must be a TrueType font.\n" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "This font is used for e.g. the console and profiler screen." msgstr "" +"等寬字體的路徑。\n" +"如果啟用了“ freetype”設置:必須為TrueType字體。\n" +"如果禁用了“ freetype”設置:必須為位圖或XML矢量字體。\n" +"該字體用於例如 控制台和探查器屏幕。" #: src/settings_translation_file.cpp msgid "Pause on lost window focus" -msgstr "" +msgstr "窗口焦點丟失時暫停" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" @@ -5682,7 +5842,7 @@ msgstr "飛行按鍵" #: src/settings_translation_file.cpp msgid "Pitch move mode" -msgstr "" +msgstr "俯仰移動模式" #: src/settings_translation_file.cpp msgid "" @@ -5718,17 +5878,20 @@ msgid "" "Prevent digging and placing from repeating when holding the mouse buttons.\n" "Enable this when you dig or place too often by accident." msgstr "" +"按住鼠標按鈕時,避免重複挖掘和放置。\n" +"當您意外挖掘或放置過多時,請啟用此功能。" #: src/settings_translation_file.cpp msgid "Prevent mods from doing insecure things like running shell commands." msgstr "避免 mod 做出不安全的舉動,像是執行 shell 指令等。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." -msgstr "引擎性能資料印出間隔的秒數。0 = 停用。對開發者有用。" +msgstr "" +"引擎性能資料印出間隔的秒數。\n" +"0 = 停用。對開發者有用。" #: src/settings_translation_file.cpp msgid "Privileges that players with basic_privs can grant" @@ -5772,9 +5935,8 @@ msgstr "" "大於 26 的值將會在雲的角落有銳角的產生。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Raises terrain to make valleys around the rivers." -msgstr "提升地形以讓山谷在河流周圍" +msgstr "抬高地形,使河流周圍形成山谷。" #: src/settings_translation_file.cpp msgid "Random input" @@ -5830,6 +5992,16 @@ msgid "" "csm_restriction_noderange)\n" "READ_PLAYERINFO: 32 (disable get_player_names call client-side)" msgstr "" +"限制對服務器上某些客戶端功能的訪問。\n" +"組合下面的字節標誌以限制客戶端功能,或設置為0\n" +"無限制:\n" +"LOAD_CLIENT_MODS:1(禁用加載客戶端提供的mod)\n" +"CHAT_MESSAGES:2(在客戶端禁用send_chat_message調用)\n" +"READ_ITEMDEFS:4(禁用get_item_def調用客戶端)\n" +"READ_NODEDEFS:8(禁用get_node_def調用客戶端)\n" +"LOOKUP_NODES_LIMIT:16(限制get_node調用客戶端到\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO:32(禁用get_player_names調用客戶端)" #: src/settings_translation_file.cpp msgid "Ridge mountain spread noise" @@ -5913,8 +6085,9 @@ msgid "Save the map received by the client on disk." msgstr "由用戶端儲存接收到的地圖到磁碟上。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Save window size automatically when modified." -msgstr "" +msgstr "修改時自動保存窗口大小。" #: src/settings_translation_file.cpp msgid "Saving map received from server" @@ -6121,14 +6294,14 @@ msgid "Shader path" msgstr "著色器路徑" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shaders allow advanced visual effects and may increase performance on some " "video\n" "cards.\n" "This only works with the OpenGL video backend." msgstr "" -"著色器讓您可以有進階視覺效果並可能會在某些顯示卡上增強效能。\n" +"著色器讓您可以有進階視覺效果並可能會在某些顯示卡上,\n" +"增強效能。\n" "這僅在 OpenGL 視訊後端上才能運作。" #: src/settings_translation_file.cpp @@ -6186,17 +6359,16 @@ msgid "Slice w" msgstr "切片 w" #: src/settings_translation_file.cpp -#, fuzzy msgid "Slope and fill work together to modify the heights." -msgstr "坡度與填充一同運作來修改高度" +msgstr "坡度與填充一同運作來修改高度。" #: src/settings_translation_file.cpp msgid "Small cave maximum number" -msgstr "" +msgstr "小洞穴最大數量" #: src/settings_translation_file.cpp msgid "Small cave minimum number" -msgstr "" +msgstr "小洞穴最小數量" #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." @@ -6236,8 +6408,9 @@ msgid "Sneaking speed" msgstr "走路速度" #: src/settings_translation_file.cpp +#, fuzzy msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "潛行速度,以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "Sound" @@ -6266,18 +6439,25 @@ msgstr "" "沒有在其中的檔案將會以平常的方式抓取。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Specifies the default stack size of nodes, items and tools.\n" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"指定節點、項和工具的默認堆棧大小。\n" +"請注意,mods或games可以顯式地為某些(或所有)項目設置堆棧。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Spread of light curve boost range.\n" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" +"傳播光曲線增強範圍。\n" +"控制要增加範圍的寬度。\n" +"光曲線的標準偏差增強了高斯。" #: src/settings_translation_file.cpp msgid "Static spawnpoint" @@ -6307,11 +6487,15 @@ msgid "Strength of generated normalmaps." msgstr "生成之一般地圖的強度。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Strength of light curve boost.\n" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" +"光強度曲線增強。\n" +"3個“ boost”參數定義光源的範圍\n" +"亮度增加的曲線。" #: src/settings_translation_file.cpp msgid "Strict protocol checking" @@ -6319,7 +6503,7 @@ msgstr "嚴格協議檢查" #: src/settings_translation_file.cpp msgid "Strip color codes" -msgstr "" +msgstr "帶顏色代碼" #: src/settings_translation_file.cpp msgid "" @@ -6334,6 +6518,16 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"放置在固態漂浮面上的可選水的表面高度。\n" +"默認情況下禁用水,並且僅在設置了此值後才放置水\n" +"到'mgv7_floatland_ymax'-'mgv7_floatland_taper'(\n" +"上部逐漸變細)。\n" +"***警告,可能危害世界和服務器性能***:\n" +"啟用水位時,必須對浮地進行配置和測試\n" +"通過將'mgv7_floatland_density'設置為2.0(或其他\n" +"所需的值取決於“ mgv7_np_floatland”),以避免\n" +"服務器密集的極端水流,並避免大量洪水\n" +"下面的世界表面。" #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6393,6 +6587,7 @@ msgid "Texture path" msgstr "材質路徑" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Textures on a node may be aligned either to the node or to the world.\n" "The former mode suits better things like machines, furniture, etc., while\n" @@ -6401,10 +6596,16 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" +"節點上的紋理可以與節點對齊,也可以與世界對齊。\n" +"前一種模式適合機器,家具等更好的東西,而\n" +"後者使樓梯和微區塊更適合周圍環境。\n" +"但是,由於這種可能性是新的,因此較舊的服務器可能不會使用,\n" +"此選項允許對某些節點類型強制實施。 注意儘管\n" +"被認為是實驗性的,可能無法正常工作。" #: src/settings_translation_file.cpp msgid "The URL for the content repository" -msgstr "" +msgstr "內容存儲庫的URL" #: src/settings_translation_file.cpp msgid "" @@ -6415,9 +6616,8 @@ msgstr "" "當呼叫「/profiler save [格式]」但不包含格式時。" #: src/settings_translation_file.cpp -#, fuzzy msgid "The depth of dirt or other biome filler node." -msgstr "塵土或其他填充物的深度" +msgstr "塵土或其他填充物的深度。" #: src/settings_translation_file.cpp msgid "" @@ -6440,6 +6640,11 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" +"波動液體表面的最大高度。\n" +"4.0 =波高是兩個節點。\n" +"0.0 =波形完全不移動。\n" +"默認值為1.0(1/2節點)。\n" +"需要啟用波狀液體。" #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." @@ -6454,6 +6659,7 @@ msgstr "" "在遊戲中請見 /privs 以取得在您的伺服器上與 mod 設定的完整清單。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6463,6 +6669,11 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" +"每個玩家周圍的方塊體積的半徑受制於。\n" +"活動塊內容,以地图块(16個節點)表示。\n" +"在活動塊中,將加載對象並運行ABM。\n" +"這也是保持活動對象(生物)的最小範圍。\n" +"這應該與active_object_send_range_blocks一起配置。" #: src/settings_translation_file.cpp msgid "" @@ -6473,6 +6684,11 @@ msgid "" "On other platforms, OpenGL is recommended, and it’s the only driver with\n" "shader support currently." msgstr "" +"Irrlicht的渲染後端。\n" +"更改此設置後需要重新啟動。\n" +"注意:在Android上,如果不確定,請堅持使用OGLES1! 應用可能無法啟動,否則。\n" +"在其他平台上,建議使用OpenGL,它是唯一具有以下功能的驅動程序。\n" +"目前支持著色器。" #: src/settings_translation_file.cpp msgid "" @@ -6513,12 +6729,13 @@ msgstr "" "當按住搖桿的組合。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated right clicks when holding the " "right\n" "mouse button." -msgstr "當按住滑鼠右鍵時,重覆右鍵點選的間隔以秒計。" +msgstr "" +"當按住滑鼠右鍵時,\n" +"重覆右鍵點選的間隔以秒計。" #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6530,6 +6747,9 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" +"如果'altitude_chill'為,則熱量下降20的垂直距離\n" +"已啟用。 如果濕度下降的垂直距離也是10\n" +"已啟用“ altitude_dry”。" #: src/settings_translation_file.cpp msgid "Third of 4 2D noises that together define hill/mountain range height." @@ -6545,7 +6765,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" +msgstr "新世界開始的一天的時間,以毫秒為單位(0-23999)。" #: src/settings_translation_file.cpp msgid "Time send interval" @@ -6614,7 +6834,6 @@ msgid "Undersampling" msgstr "Undersampling" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6622,7 +6841,8 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"Undersampling 類似於較低的螢幕解析度,但其\n" +"Undersampling 類似於較低的螢幕解析度,\n" +"但其,\n" "僅適用於遊戲世界,保持圖形使用者介面完好無損。\n" "它應該有顯著的效能提升,代價是細節較差的圖片。" @@ -6660,11 +6880,15 @@ msgid "Use bilinear filtering when scaling textures." msgstr "當縮放材質時使用雙線性過濾。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Use mip mapping to scale textures. May slightly increase performance,\n" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" +"使用Mip映射縮放紋理。 可能會稍微提高性能,\n" +"尤其是在使用高分辨率紋理包時。\n" +"不支持Gamma正確縮小。" #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -6736,8 +6960,9 @@ msgid "Varies steepness of cliffs." msgstr "懸崖坡度變化。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "垂直爬升速度,以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6773,7 +6998,7 @@ msgstr "視野" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "" +msgstr "虛擬操縱桿觸發aux按鈕" #: src/settings_translation_file.cpp msgid "Volume" @@ -6799,20 +7024,23 @@ msgid "" msgstr "" "4D 碎形生成的 3D 切片的 W 座標。\n" "決定了會生成怎樣的 4D 形狀的 3D 切片。\n" +"改變碎形的形狀。\n" "對 3D 碎形沒有影響。\n" "範圍約在 -2 至 2 間。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "行走和飛行速度,以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "Walking speed" msgstr "走路速度" #: src/settings_translation_file.cpp +#, fuzzy msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" +msgstr "快速模式下的行走,飛行和爬升速度,以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "Water level" @@ -6877,7 +7105,6 @@ msgstr "" "來軟體支援不佳的顯示卡驅動程式使用。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" "can be blurred, so automatically upscale them with nearest-neighbor\n" @@ -6889,12 +7116,14 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" -"當使用雙線性/三線性/各向異性過濾器時,低解析度材質\n" -"會被模糊,所以會自動將大小縮放至最近的內插值\n" -"以讓像素保持清晰。這會設定最小材質大小\n" -"供放大材質使用;較高的值看起來較銳利,但需要更多的\n" -"記憶體。建議為 2 的次方。將這個值設定高於 1 不會\n" -"有任何視覺效果,除非雙線性/三線性/各向異性過濾\n" +"當使用雙線性/三線性/各向異性過濾器時,低解析度材質。\n" +"會被模糊,所以會自動將大小縮放至最近的內插值。\n" +"以讓像素保持清晰。這會設定最小材質大小。\n" +"供放大材質使用;較高的值看起來較銳利,\n" +"但需要更多的記憶體。\n" +"建議為 2 的次方。將這個值設定高於 1 不會。\n" +"有任何視覺效果,\n" +"除非雙線性/三線性/各向異性過濾。\n" "已啟用。" #: src/settings_translation_file.cpp @@ -6903,7 +7132,9 @@ msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." -msgstr "是否使用 freetype 字型,需要將 freetype 支援編譯進來。" +msgstr "" +"是否使用 freetype 字型,\n" +"需要將 freetype 支援編譯進來。" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -6940,6 +7171,10 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" +"是否靜音。 您可以隨時取消靜音,除非\n" +"聲音系統已禁用(enable_sound = false)。\n" +"在遊戲中,您可以使用靜音鍵或通過使用靜音鍵來切換靜音狀態\n" +"暫停菜單。" #: src/settings_translation_file.cpp msgid "" From 48691b0b2b78f958a91ebc377042d366a8abb575 Mon Sep 17 00:00:00 2001 From: Joshua De Clercq Date: Sat, 23 Jan 2021 21:02:48 +0000 Subject: [PATCH 481/624] Translated using Weblate (Dutch) Currently translated at 85.1% (1150 of 1350 strings) --- po/nl/minetest.po | 215 ++++++++++++++++++++++++---------------------- 1 file changed, 112 insertions(+), 103 deletions(-) diff --git a/po/nl/minetest.po b/po/nl/minetest.po index 2fce143fd..8e9dcb03a 100644 --- a/po/nl/minetest.po +++ b/po/nl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Dutch (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2021-01-13 18:32+0000\n" -"Last-Translator: Edgar \n" +"PO-Revision-Date: 2021-01-24 16:19+0000\n" +"Last-Translator: Joshua De Clercq \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -232,9 +232,8 @@ msgid "Additional terrain" msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -#, fuzzy msgid "Altitude chill" -msgstr "Temperatuurverschil vanwege hoogte" +msgstr "Temperatuurdaling vanwege hoogte" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -242,19 +241,16 @@ msgid "Altitude dry" msgstr "Temperatuurverschil vanwege hoogte" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Biome-ruis" +msgstr "Vegetatie mix" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Biome-ruis" +msgstr "Vegetaties" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Grot ruis" +msgstr "Grotten" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -279,23 +275,20 @@ msgid "Download one from minetest.net" msgstr "Laad er een van minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Kerker ruis" +msgstr "Kerkers" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" msgstr "Vlak terrein" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Drijvend gebergte dichtheid" +msgstr "Zwevende gebergtes" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Waterniveau" +msgstr "Zwevende eilanden (experimenteel)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -303,19 +296,17 @@ msgstr "Spel" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Een niet-fractaal terrein genereren: Oceanen en ondergrond" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" msgstr "Heuvels" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Video driver" +msgstr "Irrigerende rivier" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Increases humidity around rivers" msgstr "Verhoogt de luchtvochtigheid rond rivieren" @@ -324,7 +315,6 @@ msgid "Lakes" msgstr "Meren" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" "Lage luchtvochtigheid en hoge hitte zorgen voor ondiepe of droge rivieren" @@ -338,14 +328,12 @@ msgid "Mapgen flags" msgstr "Wereldgenerator vlaggen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Vlaggen" +msgstr "Mapgeneratie-specifieke vlaggen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Bergen ruis" +msgstr "Bergen" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -361,17 +349,15 @@ msgstr "Geen spel geselecteerd" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Verminderen van hitte met hoogte" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Reduces humidity with altitude" msgstr "Vermindert de luchtvochtigheid met hoogte" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Grootte van rivieren" +msgstr "Rivieren" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" @@ -384,17 +370,19 @@ msgstr "Kiemgetal" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Zachte overgang tussen vegetatiezones" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Structuren verschijnen op het terrein (geen effect op bomen en jungle gras " +"gemaakt door v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Structuren verschijnen op het terrein, voornamelijk bomen en planten" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -409,27 +397,22 @@ msgid "Temperate, Desert, Jungle, Tundra, Taiga" msgstr "Gematigd, Woestijn, Oerwoud, Toendra, Taiga" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "Terrein hoogte" +msgstr "Terreinoppervlakte erosie" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Trees and jungle grass" msgstr "Bomen en oerwoudgras" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Diepte van rivieren" +msgstr "Wisselende rivierdiepte" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Very large caverns deep in the underground" -msgstr "Zeer grote grotten diep in de ondergrond" +msgstr "Zeer grote en diepe grotten" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." msgstr "" "Waarschuwing: Het minimale ontwikkellaars-test-spel is bedoeld voor " @@ -747,7 +730,7 @@ msgstr "Server Hosten" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Installeer spellen van ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name/Password" @@ -763,7 +746,7 @@ msgstr "Geen wereldnaam opgegeven of geen wereld aangemaakt!" #: builtin/mainmenu/tab_local.lua msgid "Play Game" -msgstr "Spel Spelen" +msgstr "Spel Starten" #: builtin/mainmenu/tab_local.lua msgid "Port" @@ -848,7 +831,7 @@ msgstr "Antialiasing:" #: builtin/mainmenu/tab_settings.lua msgid "Are you sure to reset your singleplayer world?" -msgstr "Weet je zeker dat je je wereld wilt resetten?" +msgstr "Weet je zeker dat je jouw wereld wilt resetten?" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" @@ -1406,11 +1389,11 @@ msgstr "Geluid gedempt" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Systeemgeluiden zijn uitgeschakeld" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Geluidssysteem is niet ondersteund in deze versie" #: src/client/game.cpp msgid "Sound unmuted" @@ -1437,7 +1420,6 @@ msgid "Volume changed to %d%%" msgstr "Volume gewijzigd naar %d%%" #: src/client/game.cpp -#, fuzzy msgid "Wireframe shown" msgstr "Draadframe weergegeven" @@ -1479,7 +1461,6 @@ msgid "Apps" msgstr "Menu" #: src/client/keycode.cpp -#, fuzzy msgid "Backspace" msgstr "Terug" @@ -2058,9 +2039,8 @@ msgid "3D mode" msgstr "3D modus" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Sterkte van normal-maps" +msgstr "Sterkte van parallax in 3D modus" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2081,6 +2061,12 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D geluid om de vorm van de zwevende eilanden te bepalen.\n" +"Als de standaardwaarde wordt gewijzigd, dan moet de waarde van de " +"geluidsschaal,\n" +"standaard ingesteld op 0.7 gewijzigd worden, aangezien de afschuinings-" +"functies van de zwevende eilanden\n" +"het beste werkt met een waarde tussen -2.0 en 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2144,12 +2130,10 @@ msgstr "" "afgesloten wordt." #: src/settings_translation_file.cpp -#, fuzzy msgid "ABM interval" -msgstr "Interval voor opslaan wereld" +msgstr "Interval voor ABM's" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" msgstr "Maximaal aantal 'emerge' blokken in de wachtrij" @@ -2208,6 +2192,13 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Past de densiteit van de zwevende eilanden aan.\n" +"De densiteit verhoogt als de waarde verhoogt. Kan positief of negatief zijn." +"\n" +"Waarde = 0,0 : 50% van het volume is een zwevend eiland.\n" +"Waarde = 2.0 : een laag van massieve zwevende eilanden\n" +"(kan ook hoger zijn, afhankelijk van 'mgv7_np_floatland', altijd testen om " +"zeker te zijn)." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2505,18 +2496,16 @@ msgstr "" "noodzakelijk voor kleinere schermen." #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Lettergrootte" +msgstr "Chat lettergrootte" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Chat-toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Debug logniveau" +msgstr "Chat debug logniveau" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2567,9 +2556,8 @@ msgid "Client and Server" msgstr "Cliënt en server" #: src/settings_translation_file.cpp -#, fuzzy msgid "Client modding" -msgstr "Cliënt modding" +msgstr "Cliënt personalisatie (modding)" #: src/settings_translation_file.cpp msgid "Client side modding restrictions" @@ -2672,9 +2660,8 @@ msgid "Console height" msgstr "Hoogte console" #: src/settings_translation_file.cpp -#, fuzzy msgid "ContentDB Flag Blacklist" -msgstr "ContentDB markeert zwarte lijst" +msgstr "ContentDB optie: verborgen pakketten lijst" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2817,9 +2804,8 @@ msgid "Default report format" msgstr "Standaardformaat voor rapport-bestanden" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Standaardspel" +msgstr "Standaard voorwerpenstapel grootte" #: src/settings_translation_file.cpp msgid "" @@ -3200,6 +3186,13 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Exponent voor de afschuining van het zwevende eiland. Wijzigt de afschuining." +"\n" +"Waarde = 1.0 maakt een uniforme, rechte afschuining.\n" +"Waarde > 1.0 maakt een vloeiende afschuining voor standaard gescheiden\n" +"zwevende eilanden.\n" +"Waarde < 1.0 (bijvoorbeeld 0.25) maakt een meer uitgesproken oppervlak met \n" +"platte laaglanden, geschikt voor een solide zwevende eilanden laag." #: src/settings_translation_file.cpp msgid "FPS in pause menu" @@ -3288,7 +3281,6 @@ msgid "Filmic tone mapping" msgstr "Filmisch tone-mapping" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Filtered textures can blend RGB values with fully-transparent neighbors,\n" "which PNG optimizers usually discard, sometimes resulting in a dark or\n" @@ -3306,14 +3298,14 @@ msgid "Filtering" msgstr "Filters" #: src/settings_translation_file.cpp -#, fuzzy msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "Eerste van 2 3D geluiden voor tunnels." +msgstr "" +"Eerste van vier 2D geluiden die samen de hoogte van een heuvel of berg " +"bepalen." #: src/settings_translation_file.cpp -#, fuzzy msgid "First of two 3D noises that together define tunnels." -msgstr "Eerste van 2 3D geluiden voor tunnels." +msgstr "Eerste van twee 3D geluiden voor tunnels." #: src/settings_translation_file.cpp msgid "Fixed map seed" @@ -3329,34 +3321,28 @@ msgid "Floatland density" msgstr "Drijvend gebergte dichtheid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Dungeon maximaal Y" +msgstr "Maximaal Y-waarde van zwevende eilanden" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Dungeon minimaal Y" +msgstr "Minimum Y-waarde van zwevende eilanden" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Drijvend land basis ruis" +msgstr "Zwevende eilanden geluid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Drijvend gebergte dichtheid" +msgstr "Zwevend eiland vormfactor" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Drijvend land basis ruis" +msgstr "Zwevend eiland afschuinings-afstand" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Waterniveau" +msgstr "Waterniveau van zwevend eiland" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3371,9 +3357,8 @@ msgid "Fog" msgstr "Mist" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fog start" -msgstr "Nevel aanvang" +msgstr "Begin van de nevel of mist" #: src/settings_translation_file.cpp msgid "Fog toggle key" @@ -3416,6 +3401,8 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Tekstgrootte van de chatgeschiedenis en chat prompt in punten (pt).\n" +"Waarde 0 zal de standaard tekstgrootte gebruiken." #: src/settings_translation_file.cpp msgid "" @@ -3474,9 +3461,9 @@ msgid "Forward key" msgstr "Vooruit toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "Eerste van 2 3D geluiden voor tunnels." +msgstr "" +"Vierde van vier 3D geluiden die de hoogte van heuvels en bergen bepalen." #: src/settings_translation_file.cpp msgid "Fractal type" @@ -3487,7 +3474,6 @@ msgid "Fraction of the visible distance at which fog starts to be rendered" msgstr "Fractie van de zichtbare afstand vanaf waar de nevel wordt getoond" #: src/settings_translation_file.cpp -#, fuzzy msgid "FreeType fonts" msgstr "Freetype lettertypes" @@ -3555,7 +3541,6 @@ msgid "Global callbacks" msgstr "Algemene callbacks" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Global map generation attributes.\n" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" @@ -3595,14 +3580,12 @@ msgid "Gravity" msgstr "Zwaartekracht" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground level" msgstr "Grondniveau" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground noise" -msgstr "Modder ruis" +msgstr "Aarde/Modder geluid" #: src/settings_translation_file.cpp #, fuzzy @@ -3618,7 +3601,6 @@ msgid "HUD toggle key" msgstr "HUD aan/uitschakelen toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- legacy: (try to) mimic old behaviour (default for release).\n" @@ -3648,35 +3630,30 @@ msgstr "" "* Profileer de code die de statistieken ververst." #: src/settings_translation_file.cpp -#, fuzzy msgid "Heat blend noise" -msgstr "Wereldgenerator landschapstemperatuurovergangen" +msgstr "Geluid van landschapstemperatuurovergangen" #: src/settings_translation_file.cpp -#, fuzzy msgid "Heat noise" -msgstr "Grot ruispatroon #1" +msgstr "Hitte geluid" #: src/settings_translation_file.cpp msgid "Height component of the initial window size." msgstr "Aanvangshoogte van het venster." #: src/settings_translation_file.cpp -#, fuzzy msgid "Height noise" -msgstr "Rechter Windowstoets" +msgstr "Hoogtegeluid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Height select noise" -msgstr "Hoogte-selectie ruisparameters" +msgstr "Hoogte-selectie geluid" #: src/settings_translation_file.cpp msgid "High-precision FPU" msgstr "Hoge-nauwkeurigheid FPU" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hill steepness" msgstr "Steilheid van de heuvels" @@ -3686,9 +3663,8 @@ msgid "Hill threshold" msgstr "Heuvel-grenswaarde" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness1 noise" -msgstr "Steilte ruis" +msgstr "Heuvelsteilte ruis" #: src/settings_translation_file.cpp #, fuzzy @@ -5653,7 +5629,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Minimaal aantal loggegevens in de chat weergeven." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5963,6 +5939,9 @@ msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Pad waar screenshots moeten bewaard worden. Kan een absoluut of relatief pad " +"zijn.\n" +"De map zal aangemaakt worden als ze nog niet bestaat." #: src/settings_translation_file.cpp msgid "" @@ -6012,7 +5991,7 @@ msgstr "Pauzeer als venster focus verliest" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" -msgstr "" +msgstr "Per speler limiet van gevraagde blokken om te laden van de harde schijf" #: src/settings_translation_file.cpp #, fuzzy @@ -6102,7 +6081,7 @@ msgstr "Profileren" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Adres om te luisteren naar Prometheus" #: src/settings_translation_file.cpp msgid "" @@ -6111,6 +6090,10 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Adres om te luisteren naar Prometheus.\n" +"Als Minetest is gecompileerd met de optie ENABLE_PROMETHEUS,\n" +"zal dit adres gebruikt worden om naar Prometheus te luisteren.\n" +"Meetwaarden zullen kunnen bekeken worden op http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." @@ -6652,6 +6635,9 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"Bepaalt de standaard stack grootte van nodes, items en tools.\n" +"Merk op dat mods of spellen expliciet een stack kunnen maken voor sommige (" +"of alle) items." #: src/settings_translation_file.cpp msgid "" @@ -6721,6 +6707,22 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Oppervlaktehoogte van optioneel water, geplaatst op een vaste laag van een " +"zwevend eiland.\n" +"Water is standaard uitgeschakeld en zal enkel gemaakt worden als deze waarde " +"is gezet op \n" +"een waarde groter dan 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (het " +"begin van de\n" +"bovenste afschuining).\n" +"***WAARSCHUWING, MOGELIJK GEVAAR VOOR WERELDEN EN SERVER PERFORMANTIE***:\n" +"Als er water geplaatst wordt op zwevende eilanden, dan moet dit " +"geconfigureerd en getest worden,\n" +"dat het een vaste laag betreft met de instelling 'mgv7_floatland_density' op " +"2.0 (of andere waarde\n" +"afhankelijk van de waarde 'mgv7_np_floatland'), om te vermijden \n" +"dat er server-intensieve water verplaatsingen zijn en om ervoor te zorgen " +"dat het wereld oppervlak \n" +"eronder niet overstroomt." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -7490,6 +7492,13 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Y-afstand over dewelke de zwevende eilanden veranderen van volledige " +"densiteit naar niets.\n" +"De verandering start op deze afstand van de Y limiet.\n" +"Voor een solide zwevend eiland, bepaalt deze waarde de hoogte van de heuvels/" +"bergen.\n" +"Deze waarde moet lager zijn of gelijk aan de helft van de afstand tussen de " +"Y limieten." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." From d1a15634c9791f830c25b831b031efc774a79af1 Mon Sep 17 00:00:00 2001 From: zjeffer Date: Sat, 23 Jan 2021 20:22:12 +0000 Subject: [PATCH 482/624] Translated using Weblate (Dutch) Currently translated at 85.1% (1150 of 1350 strings) --- po/nl/minetest.po | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/po/nl/minetest.po b/po/nl/minetest.po index 8e9dcb03a..04777380b 100644 --- a/po/nl/minetest.po +++ b/po/nl/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" "PO-Revision-Date: 2021-01-24 16:19+0000\n" -"Last-Translator: Joshua De Clercq \n" +"Last-Translator: zjeffer \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -229,16 +229,15 @@ msgstr "Een wereld met de naam \"$1\" bestaat al" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Extra terrein" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "Temperatuurdaling vanwege hoogte" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Temperatuurverschil vanwege hoogte" +msgstr "Vochtigheidsverschil vanwege hoogte" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" @@ -253,9 +252,8 @@ msgid "Caverns" msgstr "Grotten" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Octaven" +msgstr "Grotten" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" From 30c28654e8d20900cf56c38252c0ea21b6df912a Mon Sep 17 00:00:00 2001 From: eol Date: Sun, 24 Jan 2021 20:03:59 +0000 Subject: [PATCH 483/624] Translated using Weblate (Dutch) Currently translated at 100.0% (1350 of 1350 strings) --- po/nl/minetest.po | 651 +++++++++++++++++----------------------------- 1 file changed, 236 insertions(+), 415 deletions(-) diff --git a/po/nl/minetest.po b/po/nl/minetest.po index 04777380b..9014db5ec 100644 --- a/po/nl/minetest.po +++ b/po/nl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Dutch (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2021-01-24 16:19+0000\n" -"Last-Translator: zjeffer \n" +"PO-Revision-Date: 2021-01-25 20:32+0000\n" +"Last-Translator: eol \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -260,9 +260,8 @@ msgid "Create" msgstr "Maak aan" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Per soort" +msgstr "Decoraties" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -1561,11 +1560,11 @@ msgstr "Num Lock" #: src/client/keycode.cpp msgid "Numpad *" -msgstr "Numpad *" +msgstr "Numeriek pad *" #: src/client/keycode.cpp msgid "Numpad +" -msgstr "Numpad +" +msgstr "Numeriek pad +" #: src/client/keycode.cpp msgid "Numpad -" @@ -1573,7 +1572,7 @@ msgstr "Numpad -" #: src/client/keycode.cpp msgid "Numpad ." -msgstr "Numpad ." +msgstr "Numeriek pad ." #: src/client/keycode.cpp msgid "Numpad /" @@ -2042,15 +2041,16 @@ msgstr "Sterkte van parallax in 3D modus" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "3D geluid voor grote holtes." +msgstr "3D ruis voor grote holtes." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" -"3D geluid voor gebergte of hoge toppen.\n" -"Ook voor luchtdrijvende bergen." +"3D ruis voor het definiëren van de structuur en de hoogte van gebergtes of " +"hoge toppen.\n" +"Ook voor de structuur van bergachtig terrein om zwevende eilanden." #: src/settings_translation_file.cpp msgid "" @@ -2059,7 +2059,7 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" -"3D geluid om de vorm van de zwevende eilanden te bepalen.\n" +"3D ruis om de vorm van de zwevende eilanden te bepalen.\n" "Als de standaardwaarde wordt gewijzigd, dan moet de waarde van de " "geluidsschaal,\n" "standaard ingesteld op 0.7 gewijzigd worden, aangezien de afschuinings-" @@ -2068,7 +2068,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "3D geluid voor wanden van diepe rivier kloof." +msgstr "3D ruis voor wanden van diepe rivier kloof." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." @@ -2368,9 +2368,8 @@ msgid "Bits per pixel (aka color depth) in fullscreen mode." msgstr "Aantal bits per pixel (oftewel: kleurdiepte) in full-screen modus." #: src/settings_translation_file.cpp -#, fuzzy msgid "Block send optimize distance" -msgstr "Blok verzend optimaliseren afstand" +msgstr "Blok verzend optimalisatie afstand" #: src/settings_translation_file.cpp msgid "Bold and italic font path" @@ -2623,10 +2622,9 @@ msgid "" "Comma-separated list of trusted mods that are allowed to access insecure\n" "functions even when mod security is on (via request_insecure_environment())." msgstr "" -"Lijst van vertrouwde mods die onveilige functies mogen gebruiken,\n" -"zelfs wanneer mod-beveiliging aan staat (via " -"request_insecure_environment()).\n" -"Gescheiden door komma's." +"Komma gescheiden lijst van vertrouwde mods die onveilige functies mogen " +"gebruiken,\n" +"zelfs wanneer mod-beveiliging aan staat (via request_insecure_environment())." #: src/settings_translation_file.cpp msgid "Command key" @@ -2862,8 +2860,7 @@ msgstr "Definieert de diepte van het rivierkanaal." msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" "Maximale afstand (in blokken van 16 nodes) waarbinnen andere spelers " -"zichtbaar zijn\n" -"(0 = oneindig ver)." +"zichtbaar zijn (0 = oneindig ver)." #: src/settings_translation_file.cpp msgid "Defines the width of the river channel." @@ -3049,8 +3046,7 @@ msgstr "" "Zet dit aan om verbindingen van oudere cliënten te weigeren.\n" "Oudere cliënten zijn compatibel, in de zin dat ze niet crashen als ze " "verbinding \n" -"maken met nieuwere servers, maar ze ondersteunen wellicht niet alle " -"nieuwere\n" +"maken met nieuwere servers, maar ze ondersteunen wellicht niet alle nieuwere " "mogelijkheden." #: src/settings_translation_file.cpp @@ -3245,8 +3241,8 @@ msgid "" "Fast movement (via the \"special\" key).\n" "This requires the \"fast\" privilege on the server." msgstr "" -"Snelle beweging (via de \"speciale\" toets). \n" -"Dit vereist het \"snelle\" recht op de server." +"Snelle beweging (via de \"speciaal\" toets). \n" +"Dit vereist het \"snel bewegen\" recht op de server." #: src/settings_translation_file.cpp msgid "Field of view" @@ -3314,9 +3310,8 @@ msgid "Fixed virtual joystick" msgstr "Vaste virtuele joystick" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Drijvend gebergte dichtheid" +msgstr "Drijvend gebergte densiteit" #: src/settings_translation_file.cpp msgid "Floatland maximum Y" @@ -3433,23 +3428,19 @@ msgid "Formspec Full-Screen Background Opacity" msgstr "Formspec Achtergronddekking op volledig scherm" #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background color (R,G,B)." msgstr "Chat console achtergrondkleur (R,G,B)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background opacity (between 0 and 255)." msgstr "" "Chat console achtergrond alphawaarde (ondoorzichtigheid, tussen 0 en 255)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background color (R,G,B)." msgstr "Chat console achtergrondkleur (R,G,B)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" "Chat console achtergrond alphawaarde (ondoorzichtigheid, tussen 0 en 255)." @@ -3586,9 +3577,8 @@ msgid "Ground noise" msgstr "Aarde/Modder geluid" #: src/settings_translation_file.cpp -#, fuzzy msgid "HTTP mods" -msgstr "HTTP Modules" +msgstr "HTTP Mods" #: src/settings_translation_file.cpp msgid "HUD scale factor" @@ -3656,7 +3646,6 @@ msgid "Hill steepness" msgstr "Steilheid van de heuvels" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hill threshold" msgstr "Heuvel-grenswaarde" @@ -3665,26 +3654,22 @@ msgid "Hilliness1 noise" msgstr "Heuvelsteilte ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness2 noise" -msgstr "Steilte ruis" +msgstr "Heuvelachtigheid2 ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness3 noise" -msgstr "Steilte ruis" +msgstr "Heuvelachtigheid3 ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness4 noise" -msgstr "Steilte ruis" +msgstr "Heuvelachtigheid4 ruis" #: src/settings_translation_file.cpp msgid "Homepage of server, to be displayed in the serverlist." msgstr "Home-pagina van de server. Wordt getoond in de serverlijst." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." @@ -3693,7 +3678,6 @@ msgstr "" "in knooppunten per seconde per seconde." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." @@ -3702,7 +3686,6 @@ msgstr "" "in knooppunten per seconde per seconde." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." @@ -3719,164 +3702,132 @@ msgid "Hotbar previous key" msgstr "Toets voor vorig gebruikte tool" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 1 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 1 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 10 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 10 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 11 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 11 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 12 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 12 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 13 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 13 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 14 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 14 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 15 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 15 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 16 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 16 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 17 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 17 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 18 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 18 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 19 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 19 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 2 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 2 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 20 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 20 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 21 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 21 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 22 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 22 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 23 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 23 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 24 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 24 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 25 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 25 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 26 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 26 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 27 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 27 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 28 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 28 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 29 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 29 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 3 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 3 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 30 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 30 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 31 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 31 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 32 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 32 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 4 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 4 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 5 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 5 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 6 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 6 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 7 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 7 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 8 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 8 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 9 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 9 van gebruikte tools" #: src/settings_translation_file.cpp msgid "How deep to make rivers." @@ -3934,13 +3885,12 @@ msgstr "" "kracht verspild wordt zonder dat het toegevoegde waarde heeft." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If disabled, \"special\" key is used to fly fast if both fly and fast mode " "are\n" "enabled." msgstr "" -"Indien uitgeschakeld, dan wordt met de \"gebruiken\" toets snel gevlogen " +"Indien uitgeschakeld, dan wordt met de \"speciaal\" toets snel gevlogen " "wanneer\n" "de \"vliegen\" en de \"snel\" modus aanstaan." @@ -3970,13 +3920,12 @@ msgstr "" "Dit vereist het \"noclip\" voorrecht op de server." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, \"special\" key instead of \"sneak\" key is used for climbing " "down and\n" "descending." msgstr "" -"Indien aangeschakeld, dan wordt de \"gebruiken\" toets gebruikt voor\n" +"Indien aangeschakeld, dan wordt de \"speciaal\" toets gebruikt voor\n" "omlaagklimmen en dalen i.p.v. de \"sluipen\" toets." #: src/settings_translation_file.cpp @@ -4071,15 +4020,13 @@ msgid "In-game chat console background color (R,G,B)." msgstr "Chat console achtergrondkleur (R,G,B)." #: src/settings_translation_file.cpp -#, fuzzy msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." msgstr "" "Chat console achtergrond alphawaarde (ondoorzichtigheid, tussen 0 en 255)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Inc. volume key" -msgstr "Console-toets" +msgstr "Verhoog volume toets" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." @@ -4092,7 +4039,7 @@ msgid "" msgstr "" "Profileer 'builtin'.\n" "Dit is normaal enkel nuttig voor gebruik door ontwikkelaars van\n" -"het 'builtin'-gedeelte van de server" +"het core/builtin-gedeelte van de server" #: src/settings_translation_file.cpp msgid "Instrument chatcommands on registration." @@ -4151,23 +4098,20 @@ msgid "Invert vertical mouse movement." msgstr "Vertikale muisbeweging omkeren." #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic font path" -msgstr "Vaste-breedte font pad" +msgstr "Cursief font pad" #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic monospace font path" -msgstr "Vaste-breedte font pad" +msgstr "Cursief vaste-breedte font pad" #: src/settings_translation_file.cpp msgid "Item entity TTL" msgstr "Bestaansduur van objecten" #: src/settings_translation_file.cpp -#, fuzzy msgid "Iterations" -msgstr "Per soort" +msgstr "Iteraties" #: src/settings_translation_file.cpp msgid "" @@ -4196,12 +4140,10 @@ msgid "Joystick frustum sensitivity" msgstr "Joystick frustrum gevoeligheid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick type" -msgstr "Stuurknuppel Type" +msgstr "Joystick type" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "W component of hypercomplex constant.\n" @@ -4209,60 +4151,61 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" -"Juliaverzameling: W-waarde van de 4D vorm. Heeft geen effect voor 3D-" -"fractals.\n" +"Alleen de Julia verzameling: \n" +"W-waarde van de 4D vorm. \n" +"Verandert de vorm van de fractal.\n" +"Heeft geen effect voor 3D-fractals.\n" "Bereik is ongeveer -2 tot 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "X component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Juliaverzameling: X-waarde van de vorm.\n" +"Allen de Julia verzameling: \n" +"X-waarde van de 4D vorm.\n" +"Verandert de vorm van de fractal.\n" "Bereik is ongeveer -2 tot 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "Y component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Juliaverzameling: Y-waarde van de vorm.\n" +"Alleen de Julia verzameling: \n" +"Y-waarde van de 4D vorm.\n" +"Verandert de vorm van de fractal.\n" "Bereik is ongeveer -2 tot 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "Z component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Juliaverzameling: Z-waarde van de vorm.\n" +"Alleen de Julia verzameling: \n" +"Z-waarde van de 4D vorm.\n" +"Verandert de vorm van de fractal.\n" "Bereik is ongeveer -2 tot 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "Julia w" msgstr "Julia w" #: src/settings_translation_file.cpp -#, fuzzy msgid "Julia x" msgstr "Julia x" #: src/settings_translation_file.cpp -#, fuzzy msgid "Julia y" msgstr "Julia y" #: src/settings_translation_file.cpp -#, fuzzy msgid "Julia z" msgstr "Julia z" @@ -4321,8 +4264,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Toets om het volume te verhogen.\n" -"Zie\n" -"http://irrlicht.sourceforge.net/docu/namespaceirr." +"Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp @@ -4346,7 +4288,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for moving the player backward.\n" "Will also disable autoforward, when active.\n" @@ -4354,6 +4295,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Toets om de speler achteruit te bewegen.\n" +"Zal ook het automatisch voortbewegen deactiveren, indien actief.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4408,13 +4350,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for opening the chat window to type local commands.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het chat-window te openen om commando's te typen.\n" +"Toets om het chat-window te openen om lokale commando's te typen.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4439,288 +4380,262 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 11de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 12th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 12de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 13th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 13de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 14th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 14de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 15th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 15de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 16th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 16de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 17th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 17de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 18th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 18de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 19th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 19de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 20th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 20ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 21st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 21ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 22nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 22ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 23rd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 23ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 24th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 24ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 25th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 25ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 26th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 26ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 27th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 27ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 28th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 28ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 29th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 29ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 30th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 30ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 31st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 32ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 32nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 32ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the eighth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 8ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fifth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de vijfde positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the first hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de eerste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fourth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het vorige item in de hotbar te selecteren.\n" +"Toets om de vierde positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4735,13 +4650,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the ninth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de negende positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4756,57 +4670,52 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the second hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de tweede positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the seventh hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de zevende positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the sixth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de zesde positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the tenth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 10de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the third hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de derde positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4845,7 +4754,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling autoforward.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4906,13 +4814,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling pitch move mode.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om 'noclip' modus aan/uit te schakelen.\n" +"Toets om 'pitch move' modus aan/uit te schakelen.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4928,7 +4835,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of chat.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4949,7 +4855,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of fog.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4970,13 +4875,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of the large chat console.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het tonen van chatberichten aan/uit te schakelen.\n" +"Toets om het tonen van de grote chat weergave aan/uit te schakelen.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5021,7 +4925,6 @@ msgid "Lake steepness" msgstr "Steilheid van meren" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lake threshold" msgstr "Meren-grenswaarde" @@ -5046,9 +4949,8 @@ msgid "Large cave proportion flooded" msgstr "Grote grotaandeel overstroomd" #: src/settings_translation_file.cpp -#, fuzzy msgid "Large chat console key" -msgstr "Console-toets" +msgstr "Grote chatconsole-toets" #: src/settings_translation_file.cpp msgid "Leaves style" @@ -5072,26 +4974,23 @@ msgid "Left key" msgstr "Toets voor links" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of a server tick and the interval at which objects are generally " "updated over\n" "network." msgstr "" -"Lengte van server stap, en interval waarin objecten via het netwerk ververst " -"worden." +"Lengte van server stap, en interval waarin objecten via het netwerk\n" +"ververst worden." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" -"Bewegende bladeren staan aan indien 'true'.Dit vereist dat 'shaders' ook " -"aanstaan." +"Lengte van vloeibare golven.\n" +"Dit vereist dat 'golfvloeistoffen' ook aanstaan." #: src/settings_translation_file.cpp -#, fuzzy msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" "Tijdsinterval waarmee actieve blokken wijzigers (ABMs) geactiveerd worden" @@ -5101,9 +5000,8 @@ msgid "Length of time between NodeTimer execution cycles" msgstr "Tijdsinterval waarmee node timerd geactiveerd worden" #: src/settings_translation_file.cpp -#, fuzzy msgid "Length of time between active block management cycles" -msgstr "Tijd tussen ABM cycli" +msgstr "Tijd tussen actieve blok beheer(ABM) cycli" #: src/settings_translation_file.cpp msgid "" @@ -5191,7 +5089,6 @@ msgid "Liquid queue purge time" msgstr "Inkortingstijd vloeistof-wachtrij" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" msgstr "Zinksnelheid in vloeistof" @@ -5227,18 +5124,16 @@ msgid "Lower Y limit of dungeons." msgstr "Onderste Y-limiet van kerkers." #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "Onderste Y-limiet van kerkers." +msgstr "Onderste Y-limiet van zwevende eilanden." #: src/settings_translation_file.cpp msgid "Main menu script" msgstr "Hoofdmenu script" #: src/settings_translation_file.cpp -#, fuzzy msgid "Main menu style" -msgstr "Hoofdmenu script" +msgstr "Hoofdmenu stijl" #: src/settings_translation_file.cpp msgid "" @@ -5265,29 +5160,22 @@ msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "Wereldgeneratieattributen specifiek aan Mapgen Carpathian." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" "Wereldgenerator instellingen specifiek voor generator 'flat' (vlak).\n" -"Verspreide meren en heuvels kunnen toegevoegd worden.\n" -"Vlaggen die niet in de lijst van vlaggen staan, behouden hun standaard-" -"waarde.\n" -"Zet \"no\" voor een vlag om hem expliciet uit te zetten." +"Verspreide meren en heuvels kunnen toegevoegd worden." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Fractal.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Wereldgenerator instellingen specifiek voor generator 'flat' (vlak).\n" -"Verspreide meren en heuvels kunnen toegevoegd worden.\n" -"Vlaggen die niet in de lijst van vlaggen staan, behouden hun standaard-" -"waarde.\n" -"Zet \"no\" voor een vlag om hem expliciet uit te zetten." +"Wereldgenerator instellingen specifiek voor generator 'fractal'.\n" +"\"terrein\" activeert de generatie van niet-fractale terreinen:\n" +"oceanen, eilanden en ondergrondse ruimtes." #: src/settings_translation_file.cpp msgid "" @@ -5310,7 +5198,6 @@ msgid "Map generation attributes specific to Mapgen v5." msgstr "Wereldgenerator instellingen specifiek voor Mapgen V5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" @@ -5318,23 +5205,22 @@ msgid "" "the 'jungles' flag is ignored." msgstr "" "Wereldgenerator instellingen specifiek voor generator v6.\n" +"De sneeuwgebieden optie, activeert de nieuwe 5 vegetaties systeem.\n" "Indien sneeuwgebieden aanstaan, dan worden oerwouden ook aangezet, en wordt\n" -"de \"jungles\" vlag genegeerd.\n" -"Vlaggen die niet in de lijst van vlaggen staan, behouden hun standaard-" -"waarde.\n" -"Zet \"no\" voor een vlag om hem expliciet uit te zetten." +"de \"jungles\" optie genegeerd." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" -"Kenmerken voor het genereren van kaarten die specifiek zijn voor Mapgen " -"v7. \n" -"'richels' maakt de rivieren mogelijk." +"Wereldgenerator instellingen specifiek voor generator v7.\n" +"'ridges': dit zijn uithollingen in het landschap die rivieren mogelijk maken." +"\n" +"'floatlands': dit zijn zwevende landmassa's in de atmosfeer.\n" +"'caverns': grote grotten diep onder de grond." #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5349,12 +5235,10 @@ msgid "Mapblock limit" msgstr "Max aantal wereldblokken" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapblock mesh generation delay" -msgstr "Wereld-grens" +msgstr "Mapblock maas generatie vertraging" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapblock mesh generator's MapBlock cache size in MB" msgstr "Mapblock maas generator's MapBlock cache grootte in MB" @@ -5363,73 +5247,60 @@ msgid "Mapblock unload timeout" msgstr "Wereldblok vergeet-tijd" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian" -msgstr "Fractal wereldgenerator" +msgstr "wereldgenerator Karpaten" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian specific flags" -msgstr "Vlaggen" +msgstr "Wereldgenerator Karpaten specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat" -msgstr "Vlakke Wereldgenerator" +msgstr "Wereldgenerator vlak terrein" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat specific flags" -msgstr "Vlaggen" +msgstr "Wereldgenerator vlak terrein specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal" -msgstr "Fractal wereldgenerator" +msgstr "Wereldgenerator Fractal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Vlaggen" +msgstr "Wereldgenerator Fractal specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5" msgstr "Wereldgenerator v5" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5 specific flags" -msgstr "Vlaggen" +msgstr "Wereldgenerator v5 specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6" msgstr "Wereldgenerator v6" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6 specific flags" -msgstr "Mapgen v6 Vlaggen" +msgstr "Wereldgenerator v6 specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7" msgstr "Wereldgenerator v7" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7 specific flags" -msgstr "Mapgen v7 vlaggen" +msgstr "Wereldgenerator v7 specifieke opties" #: src/settings_translation_file.cpp msgid "Mapgen Valleys" msgstr "Valleien Wereldgenerator" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Valleys specific flags" -msgstr "Vlaggen" +msgstr "Weredgenerator valleien specifieke opties" #: src/settings_translation_file.cpp msgid "Mapgen debug" @@ -5450,8 +5321,8 @@ msgstr "Maximale afstand voor te versturen blokken" #: src/settings_translation_file.cpp msgid "Max liquids processed per step." msgstr "" -"Maximaal aantal vloeistof-nodes te verwerken (dwz verspreiden)\n" -"per server-stap." +"Maximaal aantal vloeistof-nodes te verwerken (dwz verspreiden) per server-" +"stap." #: src/settings_translation_file.cpp msgid "Max. clearobjects extra blocks" @@ -5509,22 +5380,21 @@ msgid "Maximum number of blocks that can be queued for loading." msgstr "Maximaal aantal blokken in de wachtrij voor laden/genereren." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" "Maximaal aantal blokken in de wachtrij om gegenereerd te worden.\n" -"Laat leeg om een geschikt aantal automatisch te laten berekenen." +"Deze limiet is opgelegd per speler." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" -"Maximaal aantal blokken in de wachtrij om van disk geladen te worden.\n" -"Laat leeg om een geschikt aantal automatisch te laten berekenen." +"Maximaal aantal blokken in de wachtrij om van een bestand/harde schijf " +"geladen te worden.\n" +"Deze limiet is opgelegd per speler." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5650,9 +5520,8 @@ msgid "Minimum limit of random number of small caves per mapchunk." msgstr "Minimale limiet van willekeurig aantal kleine grotten per mapchunk." #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum texture size" -msgstr "Minimale textuur-grootte voor filters" +msgstr "Minimale textuur-grootte" #: src/settings_translation_file.cpp msgid "Mipmapping" @@ -5675,18 +5544,16 @@ msgid "Monospace font size" msgstr "Vaste-breedte font grootte" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mountain height noise" -msgstr "Heuvel-hoogte ruisparameters" +msgstr "Berg-hoogte ruis" #: src/settings_translation_file.cpp msgid "Mountain noise" msgstr "Bergen ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mountain variation noise" -msgstr "Heuvel-hoogte ruisparameters" +msgstr "Berg-hoogte ruisvariatie" #: src/settings_translation_file.cpp msgid "Mountain zero level" @@ -5807,7 +5674,6 @@ msgid "Number of emerge threads" msgstr "Aantal 'emerge' threads" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "Value 0:\n" @@ -5912,7 +5778,6 @@ msgid "Parallax occlusion mode" msgstr "Parallax occlusie modus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Parallax occlusion scale" msgstr "Parallax occlusie schaal" @@ -5992,18 +5857,16 @@ msgid "Per-player limit of queued blocks load from disk" msgstr "Per speler limiet van gevraagde blokken om te laden van de harde schijf" #: src/settings_translation_file.cpp -#, fuzzy msgid "Per-player limit of queued blocks to generate" -msgstr "Emerge-wachtrij voor genereren" +msgstr "Per speler limiet van de \"te genereren blokken\"-wachtrij" #: src/settings_translation_file.cpp msgid "Physics" msgstr "Fysica" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "Vliegen toets" +msgstr "Vrij vliegen toets" #: src/settings_translation_file.cpp msgid "Pitch move mode" @@ -6026,9 +5889,8 @@ msgid "Player transfer distance" msgstr "Speler verplaatsingsafstand" #: src/settings_translation_file.cpp -#, fuzzy msgid "Player versus player" -msgstr "Speler-gevechten" +msgstr "Speler tegen speler" #: src/settings_translation_file.cpp msgid "" @@ -6053,13 +5915,12 @@ msgstr "" "Voorkom dat mods onveilige commando's uitvoeren, zoals shell commando's." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." msgstr "" -"Interval waarmee profiler-gegevens geprint worden. 0 = uitzetten. Dit is " -"nuttig voor ontwikkelaars." +"Interval waarmee profiler-gegevens geprint worden. \n" +"0 = uitzetten. Dit is nuttig voor ontwikkelaars." #: src/settings_translation_file.cpp msgid "Privileges that players with basic_privs can grant" @@ -6123,9 +5984,8 @@ msgid "Recent Chat Messages" msgstr "Recente chatberichten" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" -msgstr "Rapport pad" +msgstr "Standaard lettertype pad" #: src/settings_translation_file.cpp msgid "Remote media" @@ -6179,23 +6039,20 @@ msgstr "" "READ_PLAYERINFO: 32 (deactiveer get_player_names call client-side)" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridge mountain spread noise" -msgstr "Onderwater richel ruis" +msgstr "\"Berg richel verspreiding\" ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridge noise" -msgstr "Rivier ruis parameters" +msgstr "Bergtoppen ruis" #: src/settings_translation_file.cpp msgid "Ridge underwater noise" msgstr "Onderwater richel ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridged mountain size noise" -msgstr "Onderwater richel ruis" +msgstr "Bergtoppen grootte ruis" #: src/settings_translation_file.cpp msgid "Right key" @@ -6206,7 +6063,6 @@ msgid "Rightclick repetition interval" msgstr "Rechts-klik herhalingsinterval" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" msgstr "Diepte van rivieren" @@ -6215,24 +6071,20 @@ msgid "River channel width" msgstr "Breedte van rivieren" #: src/settings_translation_file.cpp -#, fuzzy msgid "River depth" msgstr "Diepte van rivieren" #: src/settings_translation_file.cpp -#, fuzzy msgid "River noise" -msgstr "Rivier ruis parameters" +msgstr "Rivier ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "River size" msgstr "Grootte van rivieren" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Diepte van rivieren" +msgstr "Breedte van vallei waar een rivier stroomt" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -6271,7 +6123,6 @@ msgid "Saving map received from server" msgstr "Lokaal bewaren van de server-wereld" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Scale GUI by a user specified value.\n" "Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" @@ -6279,7 +6130,7 @@ msgid "" "pixels when scaling down, at the cost of blurring some\n" "edge pixels when images are scaled by non-integer sizes." msgstr "" -"Schaal de GUI met een bepaalde factor.\n" +"Schaal de GUI met een door de gebruiker bepaalde factor.\n" "Er wordt een dichtste-buur-anti-alias filter gebruikt om de GUI te schalen.\n" "Bij verkleinen worden sommige randen minder duidelijk, en worden\n" "pixels samengevoegd. Pixels bij randen kunnen vager worden als\n" @@ -6320,21 +6171,19 @@ msgid "Seabed noise" msgstr "Zeebodem ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "Tweede van 2 3d geluiden voor tunnels." +msgstr "" +"Tweede van vier 2D geluiden die samen een heuvel/bergketen grootte bepalen." #: src/settings_translation_file.cpp -#, fuzzy msgid "Second of two 3D noises that together define tunnels." -msgstr "Tweede van 2 3d geluiden voor tunnels." +msgstr "Tweede van twee 3D geluiden die samen tunnels definiëren." #: src/settings_translation_file.cpp msgid "Security" msgstr "Veiligheid" #: src/settings_translation_file.cpp -#, fuzzy msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "Zie http://www.sqlite.org/pragma.html#pragma_synchronous" @@ -6351,7 +6200,6 @@ msgid "Selection box width" msgstr "Breedte van selectie-randen" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Selects one of 18 fractal types.\n" "1 = 4D \"Roundy\" Mandelbrot set.\n" @@ -6373,7 +6221,7 @@ msgid "" "17 = 4D \"Mandelbulb\" Mandelbrot set.\n" "18 = 4D \"Mandelbulb\" Julia set." msgstr "" -"Keuze uit 18 fractals op basis van 9 formules.\n" +"Selecteert één van de 18 fractaal types:\n" "1 = 4D \"Roundy\" mandelbrot verzameling.\n" "2 = 4D \"Roundy\" julia verzameling.\n" "3 = 4D \"Squarry\" mandelbrot verzameling.\n" @@ -6442,37 +6290,34 @@ msgid "Set the maximum character length of a chat message sent by clients." msgstr "Maximaal aantal tekens voor chatberichten van gebruikers instellen." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." msgstr "" -"Bewegende bladeren staan aan indien 'true'.Dit vereist dat 'shaders' ook " -"aanstaan." +"Bewegende bladeren staan aan indien 'true'.\n" +"Dit vereist dat 'shaders' ook aanstaan." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" -"Golvend water staat aan indien 'true'Dit vereist dat 'shaders' ook aanstaan." +"Golvend water staat aan indien 'true'.\n" +"Dit vereist dat 'shaders' ook aanstaan." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." msgstr "" -"Bewegende planten staan aan indien 'true'Dit vereist dat 'shaders' ook " -"aanstaan." +"Bewegende planten staan aan indien 'true'.\n" +"Dit vereist dat 'shaders' ook aanstaan." #: src/settings_translation_file.cpp msgid "Shader path" msgstr "Shader pad" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shaders allow advanced visual effects and may increase performance on some " "video\n" @@ -6484,18 +6329,20 @@ msgstr "" "Alleen mogelijk met OpenGL." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." -msgstr "Fontschaduw afstand. Indien 0, dan wordt geen schaduw getekend." +msgstr "" +"Fontschaduw afstand (in beeldpunten). Indien 0, dan wordt geen schaduw " +"getekend." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." -msgstr "Fontschaduw afstand. Indien 0, dan wordt geen schaduw getekend." +msgstr "" +"Fontschaduw afstand van het standaard lettertype (in beeldpunten). Indien 0, " +"dan wordt geen schaduw getekend." #: src/settings_translation_file.cpp msgid "Shape of the minimap. Enabled = round, disabled = square." @@ -6542,9 +6389,8 @@ msgstr "" "wordt gekopieerd waardoor flikkeren verminderd." #: src/settings_translation_file.cpp -#, fuzzy msgid "Slice w" -msgstr "Slice w" +msgstr "Doorsnede w" #: src/settings_translation_file.cpp msgid "Slope and fill work together to modify the heights." @@ -6605,14 +6451,12 @@ msgid "Sound" msgstr "Geluid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key" -msgstr "Sluipen toets" +msgstr "Speciaal ( Aux ) toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key for climbing/descending" -msgstr "Gebruik de 'gebruiken'-toets voor klimmen en dalen" +msgstr "Gebruik de 'speciaal'-toets voor klimmen en dalen" #: src/settings_translation_file.cpp msgid "" @@ -6656,19 +6500,16 @@ msgid "Steepness noise" msgstr "Steilte ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain size noise" -msgstr "Bergen ruis" +msgstr "Trap-Bergen grootte ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain spread noise" -msgstr "Bergen ruis" +msgstr "Trap-Bergen verspreiding ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." -msgstr "Sterkte van de parallax." +msgstr "Sterkte van de 3D modus parallax." #: src/settings_translation_file.cpp msgid "Strength of generated normalmaps." @@ -6731,29 +6572,24 @@ msgid "Temperature variation for biomes." msgstr "Temperatuurvariatie voor biomen." #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain alternative noise" -msgstr "Terrain_alt ruis" +msgstr "Terrein alteratieve ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain base noise" -msgstr "Terrein hoogte" +msgstr "Terrein basis ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain height" msgstr "Terrein hoogte" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain higher noise" -msgstr "Terrein hoogte" +msgstr "Terrein hoger ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain noise" -msgstr "Terrein hoogte" +msgstr "Terrein ruis" #: src/settings_translation_file.cpp msgid "" @@ -6863,7 +6699,6 @@ msgstr "" "van beschikbare voorrechten op de server." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6879,7 +6714,7 @@ msgstr "" "In actieve blokken worden objecten geladen en ABM's uitgevoerd. \n" "Dit is ook het minimumbereik waarin actieve objecten (mobs) worden " "onderhouden. \n" -"Dit moet samen met active_object_range worden geconfigureerd." +"Dit moet samen met active_object_send_range_blocks worden geconfigureerd." #: src/settings_translation_file.cpp msgid "" @@ -6933,11 +6768,10 @@ msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" -"De tijd in seconden tussen herhaalde klikken als de joystick-knop ingedrukt " -"gehouden wordt." +"De tijd in seconden tussen herhaalde klikken als de joystick-knop\n" +" ingedrukt gehouden wordt." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated right clicks when holding the " "right\n" @@ -6963,9 +6797,10 @@ msgstr "" "'altitude_dry' is ingeschakeld." #: src/settings_translation_file.cpp -#, fuzzy msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "Eerste van 2 3D geluiden voor tunnels." +msgstr "" +"Derde van vier 2D geluiden die samen voor heuvel/bergketens hoogte " +"definiëren." #: src/settings_translation_file.cpp msgid "" @@ -7015,9 +6850,8 @@ msgid "Tooltip delay" msgstr "Tooltip tijdsduur" #: src/settings_translation_file.cpp -#, fuzzy msgid "Touch screen threshold" -msgstr "Strand geluid grenswaarde" +msgstr "Gevoeligheid van het aanraakscherm" #: src/settings_translation_file.cpp msgid "Trees noise" @@ -7028,14 +6862,13 @@ msgid "Trilinear filtering" msgstr "Tri-Lineare Filtering" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" "Usable to make minimap smoother on slower machines." msgstr "" -"Aan = 256\n" -"Uit = 128\n" +"True = 256\n" +"False = 128\n" "Gebruik dit om de mini-kaart sneller te maken op langzamere machines." #: src/settings_translation_file.cpp @@ -7051,7 +6884,6 @@ msgid "Undersampling" msgstr "Rendering" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -7062,8 +6894,9 @@ msgstr "" "Onderbemonstering is gelijkaardig aan het gebruik van een lagere " "schermresolutie,\n" "maar het behelst enkel de spel wereld. De GUI resolutie blijft intact.\n" -"Dit zou een gewichtige prestatie verbetering moeten geven ten koste van een " -"verminderde detailweergave." +"Dit zou een duidelijke prestatie verbetering moeten geven ten koste van een " +"verminderde detailweergave.\n" +"Hogere waarden resulteren in een minder gedetailleerd beeld." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -7078,9 +6911,8 @@ msgid "Upper Y limit of dungeons." msgstr "Bovenste Y-limiet van kerkers." #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "Bovenste Y-limiet van kerkers." +msgstr "Bovenste Y-limiet van zwevende eilanden." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." @@ -7118,27 +6950,22 @@ msgid "VBO" msgstr "VBO" #: src/settings_translation_file.cpp -#, fuzzy msgid "VSync" -msgstr "V-Sync" +msgstr "Vertikale synchronisatie (VSync)" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley depth" msgstr "Vallei-diepte" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley fill" msgstr "Vallei-vulling" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley profile" msgstr "Vallei-profiel" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley slope" msgstr "Vallei-helling" @@ -7175,9 +7002,8 @@ msgstr "" "Definieert de 'persistence' waarde voor terrain_base en terrain_alt ruis." #: src/settings_translation_file.cpp -#, fuzzy msgid "Varies steepness of cliffs." -msgstr "Bepaalt steilheid/hoogte van heuvels." +msgstr "Bepaalt steilheid/hoogte van kliffen." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." @@ -7192,9 +7018,8 @@ msgid "Video driver" msgstr "Video driver" #: src/settings_translation_file.cpp -#, fuzzy msgid "View bobbing factor" -msgstr "Loopbeweging" +msgstr "Loopbeweging factor" #: src/settings_translation_file.cpp msgid "View distance in nodes." @@ -7225,16 +7050,14 @@ msgid "Volume" msgstr "Geluidsniveau" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" -"Schakelt parallax occlusie mappen in.\n" -"Dit vereist dat shaders ook aanstaan." +"Volume van alle geluiden.\n" +"Dit vereist dat het geluidssysteem aanstaat." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "W coordinate of the generated 3D slice of a 4D fractal.\n" "Determines which 3D slice of the 4D shape is generated.\n" @@ -7244,6 +7067,7 @@ msgid "" msgstr "" "W-coördinaat van de 3D doorsnede van de 4D vorm.\n" "Bepaalt welke 3D-doorsnelde van de 4D-vorm gegenereerd wordt.\n" +"Verandert de vorm van de fractal.\n" "Heeft geen effect voor 3D-fractals.\n" "Bereik is ongeveer -2 tot 2." @@ -7276,24 +7100,20 @@ msgid "Waving leaves" msgstr "Bewegende bladeren" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "Bewegende nodes" +msgstr "Bewegende vloeistoffen" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "Golfhoogte van water" +msgstr "Golfhoogte van water/vloeistoffen" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" -msgstr "Golfsnelheid van water" +msgstr "Golfsnelheid van water/vloeistoffen" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "Golflengte van water" +msgstr "Golflengte van water/vloeistoffen" #: src/settings_translation_file.cpp msgid "Waving plants" @@ -7324,7 +7144,6 @@ msgstr "" "terug naar het werkgeheugen." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" "can be blurred, so automatically upscale them with nearest-neighbor\n" @@ -7346,15 +7165,21 @@ msgstr "" "machten van 2 te gebruiken. Een waarde groter dan 1 heeft wellicht geen " "zichtbaar\n" "effect indien bi-lineaire, tri-lineaire of anisotropische filtering niet aan " -"staan." +"staan.\n" +"Dit wordt ook gebruikt als basis node textuurgrootte voor wereld-" +"gealigneerde\n" +"automatische textuurschaling." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." -msgstr "Gebruik freetype fonts. Dit vereist dat freetype ingecompileerd is." +msgstr "" +"Gebruik freetype lettertypes, dit vereist dat freetype lettertype " +"ondersteuning ingecompileerd is.\n" +"Indien uitgeschakeld, zullen bitmap en XML verctor lettertypes gebruikt " +"worden." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7386,19 +7211,18 @@ msgstr "" "Maak het einde van het zichtbereik mistig, zodat het einde niet opvalt." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether to mute sounds. You can unmute sounds at any time, unless the\n" "sound system is disabled (enable_sound=false).\n" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" -"Of geluiden moeten worden gedempt. U kunt het dempen van geluiden op elk " -"moment opheffen, tenzij de \n" +"Of geluiden moeten worden gedempt. Je kan het dempen van geluiden op elk " +"moment opheffen, tenzij het \n" "geluidssysteem is uitgeschakeld (enable_sound = false). \n" -"In de game kun je de mute-status wijzigen met de mute-toets of door de te " -"gebruiken \n" -"pauzemenu." +"Tijdens het spel kan je de mute-status wijzigen met de mute-toets of door " +"het pauzemenu \n" +"te gebruiken." #: src/settings_translation_file.cpp msgid "" @@ -7412,9 +7236,10 @@ msgid "Width component of the initial window size." msgstr "Aanvangsbreedte van het venster." #: src/settings_translation_file.cpp -#, fuzzy msgid "Width of the selection box lines around nodes." -msgstr "Breedte van de lijnen om een geselecteerde node." +msgstr "" +"Breedte van de selectie-lijnen die getekend worden rond een geselecteerde " +"node." #: src/settings_translation_file.cpp msgid "" @@ -7436,9 +7261,8 @@ msgstr "" "gestart." #: src/settings_translation_file.cpp -#, fuzzy msgid "World start time" -msgstr "Wereld naam" +msgstr "Wereld starttijd" #: src/settings_translation_file.cpp msgid "" @@ -7475,9 +7299,8 @@ msgstr "" "bergen verticaal te verschuiven." #: src/settings_translation_file.cpp -#, fuzzy msgid "Y of upper limit of large caves." -msgstr "Minimale diepte van grote semi-willekeurige grotten." +msgstr "bovenste limiet Y-waarde van grote grotten." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." @@ -7507,14 +7330,12 @@ msgid "Y-level of cavern upper limit." msgstr "Y-niveau van hoogste limiet voor grotten." #: src/settings_translation_file.cpp -#, fuzzy msgid "Y-level of higher terrain that creates cliffs." -msgstr "Y-niveau van lager terrein en vijver bodems." +msgstr "Y-niveau van hoger terrein dat kliffen genereert." #: src/settings_translation_file.cpp -#, fuzzy msgid "Y-level of lower terrain and seabed." -msgstr "Y-niveau van lager terrein en vijver bodems." +msgstr "Y-niveau van lager terrein en vijver/zee bodems." #: src/settings_translation_file.cpp msgid "Y-level of seabed." From 237d4a948ad34558e66e8861967841293fbb7ee2 Mon Sep 17 00:00:00 2001 From: Benjamin Alan Jamie Date: Tue, 26 Jan 2021 16:37:44 +0100 Subject: [PATCH 484/624] Deleted translation using Weblate (Filipino) --- po/fil/minetest.po | 6324 -------------------------------------------- 1 file changed, 6324 deletions(-) delete mode 100644 po/fil/minetest.po diff --git a/po/fil/minetest.po b/po/fil/minetest.po deleted file mode 100644 index c78b043ed..000000000 --- a/po/fil/minetest.po +++ /dev/null @@ -1,6324 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Filipino (Minetest)\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy \n" -"Language-Team: Filipino \n" -"Language: fil\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 " -"|| n % 10 == 6 || n % 10 == 9);\n" -"X-Generator: Weblate 3.10.1\n" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "Respawn" -msgstr "" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "" - -#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp -msgid "OK" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No (optional) dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No hard dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No optional dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp -msgid "Save" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Games" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Mods" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Humid rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Increases humidity around rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mud flow" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "" -"Structures appearing on the terrain (no effect on trees and jungle grass " -"created by v6)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "World name" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "Are you sure you want to delete \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua -#: src/client/keycode.cpp -msgid "Delete" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: invalid path \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_world.lua -msgid "Delete World \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Accept" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "" -"This modpack has an explicit name given in its modpack.conf which will " -"override any renaming here." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Octaves" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Persistance" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "" - -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#. ~ "defaults" is a noise parameter flag. -#. It describes the default processing options -#. for noise settings in main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "defaults" -msgstr "" - -#. ~ "eased" is a noise parameter flag. -#. It is used to make the map smoother and -#. can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "eased" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 (Enabled)" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Failed to install $1 to $2" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Browse online content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No package description available" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Rename" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Uninstall Package" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Start Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Join Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/client/game.cpp -msgid "Change Keys" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: src/client/client.cpp -msgid "Connection timed out." -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Loading textures..." -msgstr "" - -#: src/client/client.cpp -msgid "Rebuilding shaders..." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string. Put either "no" or "yes" -#. into the translation field (literally). -#. Choose "yes" if the language requires use of the fallback -#. font, "no" otherwise. -#. The fallback font is (normally) required for languages with -#. non-Latin script, like Chinese. -#. When in doubt, test your translation. -#: src/client/fontengine.cpp -msgid "needs_fallback_font" -msgstr "yes" - -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " -msgstr "" - -#: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Damage: " -msgstr "" - -#: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Port: " -msgstr "" - -#: src/client/game.cpp -msgid "- Public: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " -msgstr "" - -#: src/client/game.cpp -msgid "- Server Name: " -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Connecting to server..." -msgstr "" - -#: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" - -#: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to Menu" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to OS" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Game info:" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Hosting server" -msgstr "" - -#: src/client/game.cpp -msgid "Item definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Node definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "Off" -msgstr "" - -#: src/client/game.cpp -msgid "On" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Shutting down..." -msgstr "" - -#: src/client/game.cpp -msgid "Singleplayer" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" - -#: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" -msgstr "" - -#: src/client/keycode.cpp -msgid "Backspace" -msgstr "" - -#: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#: src/client/keycode.cpp -msgid "End" -msgstr "" - -#: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Convert" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Escape" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#. ~ Key name, common on Windows keyboards -#: src/client/keycode.cpp -msgid "Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Num Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad *" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad +" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad -" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad ." -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad /" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 0" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 2" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 3" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 4" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 5" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 6" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 7" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 8" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 9" -msgstr "" - -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page down" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page up" -msgstr "" - -#: src/client/keycode.cpp -msgid "Pause" -msgstr "" - -#: src/client/keycode.cpp -msgid "Play" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Sleep" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Space" -msgstr "" - -#: src/client/keycode.cpp -msgid "Tab" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Zoom" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -#, c-format -msgid "" -"You are about to join this server with the name \"%s\" for the first time.\n" -"If you proceed, a new account using your credentials will be created on this " -"server.\n" -"Please retype your password and click 'Register and Join' to confirm account " -"creation, or click 'Cancel' to abort." -msgstr "" - -#: src/gui/guiFormSpecMenu.cpp -msgid "Proceed" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "\"Special\" = climb down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Automatic jumping" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Confirm Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Exit" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Muted" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "" - -#. ~ Imperative, as in "Enter/type in text". -#. Don't forget the space. -#: src/gui/modalMenu.cpp -msgid "Enter " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string which needs to contain the translation's -#. language code (e.g. "de" for German). -#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp -msgid "LANG_CODE" -msgstr "fil" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Use virtual joystick to trigger \"aux\" button.\n" -"If enabled, virtual joystick will also tap \"aux\" button when out of main " -"circle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- crossview: Cross-eyed 3d\n" -"- pageflip: quadbuffer based 3d.\n" -"Note that the interlaced mode requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to\n" -"clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible\n" -"rendering glitches (some blocks will not be rendered under water and in " -"caves,\n" -"as well as sometimes on land).\n" -"Setting this to a value greater than max_block_send_distance disables this\n" -"optimization.\n" -"Stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FreeType fonts" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain variation noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Restricts the access of certain client-side functions on servers.\n" -"Combine the byteflags below to restrict client-side features, or set to 0\n" -"for no restrictions:\n" -"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" -"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" -"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" -"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" -"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" -"csm_restriction_noderange)\n" -"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Selects one of 18 fractal types.\n" -"1 = 4D \"Roundy\" Mandelbrot set.\n" -"2 = 4D \"Roundy\" Julia set.\n" -"3 = 4D \"Squarry\" Mandelbrot set.\n" -"4 = 4D \"Squarry\" Julia set.\n" -"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" -"6 = 4D \"Mandy Cousin\" Julia set.\n" -"7 = 4D \"Variation\" Mandelbrot set.\n" -"8 = 4D \"Variation\" Julia set.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" -"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" -"12 = 3D \"Christmas Tree\" Julia set.\n" -"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" -"14 = 3D \"Mandelbulb\" Julia set.\n" -"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" -"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" -"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" -"18 = 4D \"Mandelbulb\" Julia set." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" -"WARNING!: There is no benefit, and there are several dangers, in\n" -"increasing this value above 5.\n" -"Reducing this value increases cave and dungeon density.\n" -"Altering this value is for special usage, leaving it unchanged is\n" -"recommended." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The URL for the content repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" From 00e735ee9b2b17dd44a6b3ed4c936f713a665be1 Mon Sep 17 00:00:00 2001 From: Benjamin Alan Jamie Date: Tue, 26 Jan 2021 16:37:51 +0100 Subject: [PATCH 485/624] Deleted translation using Weblate (Japanese (Kansai)) --- po/ja_KS/minetest.po | 6323 ------------------------------------------ 1 file changed, 6323 deletions(-) delete mode 100644 po/ja_KS/minetest.po diff --git a/po/ja_KS/minetest.po b/po/ja_KS/minetest.po deleted file mode 100644 index 2bb9891ae..000000000 --- a/po/ja_KS/minetest.po +++ /dev/null @@ -1,6323 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Japanese (Kansai) (Minetest)\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy \n" -"Language-Team: Japanese (Kansai) \n" -"Language: ja_KS\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10.1\n" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "Respawn" -msgstr "" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "" - -#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp -msgid "OK" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No (optional) dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No hard dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No optional dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp -msgid "Save" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Games" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Mods" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Humid rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Increases humidity around rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mud flow" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "" -"Structures appearing on the terrain (no effect on trees and jungle grass " -"created by v6)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "World name" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "Are you sure you want to delete \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua -#: src/client/keycode.cpp -msgid "Delete" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: invalid path \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_world.lua -msgid "Delete World \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Accept" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "" -"This modpack has an explicit name given in its modpack.conf which will " -"override any renaming here." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Octaves" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Persistance" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "" - -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#. ~ "defaults" is a noise parameter flag. -#. It describes the default processing options -#. for noise settings in main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "defaults" -msgstr "" - -#. ~ "eased" is a noise parameter flag. -#. It is used to make the map smoother and -#. can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "eased" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 (Enabled)" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Failed to install $1 to $2" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Browse online content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No package description available" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Rename" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Uninstall Package" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Start Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Join Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/client/game.cpp -msgid "Change Keys" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: src/client/client.cpp -msgid "Connection timed out." -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Loading textures..." -msgstr "" - -#: src/client/client.cpp -msgid "Rebuilding shaders..." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string. Put either "no" or "yes" -#. into the translation field (literally). -#. Choose "yes" if the language requires use of the fallback -#. font, "no" otherwise. -#. The fallback font is (normally) required for languages with -#. non-Latin script, like Chinese. -#. When in doubt, test your translation. -#: src/client/fontengine.cpp -msgid "needs_fallback_font" -msgstr "yes" - -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " -msgstr "" - -#: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Damage: " -msgstr "" - -#: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Port: " -msgstr "" - -#: src/client/game.cpp -msgid "- Public: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " -msgstr "" - -#: src/client/game.cpp -msgid "- Server Name: " -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Connecting to server..." -msgstr "" - -#: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" - -#: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to Menu" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to OS" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Game info:" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Hosting server" -msgstr "" - -#: src/client/game.cpp -msgid "Item definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Node definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "Off" -msgstr "" - -#: src/client/game.cpp -msgid "On" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Shutting down..." -msgstr "" - -#: src/client/game.cpp -msgid "Singleplayer" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" - -#: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" -msgstr "" - -#: src/client/keycode.cpp -msgid "Backspace" -msgstr "" - -#: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#: src/client/keycode.cpp -msgid "End" -msgstr "" - -#: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Convert" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Escape" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#. ~ Key name, common on Windows keyboards -#: src/client/keycode.cpp -msgid "Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Num Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad *" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad +" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad -" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad ." -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad /" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 0" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 2" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 3" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 4" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 5" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 6" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 7" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 8" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 9" -msgstr "" - -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page down" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page up" -msgstr "" - -#: src/client/keycode.cpp -msgid "Pause" -msgstr "" - -#: src/client/keycode.cpp -msgid "Play" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Sleep" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Space" -msgstr "" - -#: src/client/keycode.cpp -msgid "Tab" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Zoom" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -#, c-format -msgid "" -"You are about to join this server with the name \"%s\" for the first time.\n" -"If you proceed, a new account using your credentials will be created on this " -"server.\n" -"Please retype your password and click 'Register and Join' to confirm account " -"creation, or click 'Cancel' to abort." -msgstr "" - -#: src/gui/guiFormSpecMenu.cpp -msgid "Proceed" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "\"Special\" = climb down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Automatic jumping" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Confirm Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Exit" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Muted" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "" - -#. ~ Imperative, as in "Enter/type in text". -#. Don't forget the space. -#: src/gui/modalMenu.cpp -msgid "Enter " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string which needs to contain the translation's -#. language code (e.g. "de" for German). -#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp -msgid "LANG_CODE" -msgstr "ja_KS" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Use virtual joystick to trigger \"aux\" button.\n" -"If enabled, virtual joystick will also tap \"aux\" button when out of main " -"circle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- crossview: Cross-eyed 3d\n" -"- pageflip: quadbuffer based 3d.\n" -"Note that the interlaced mode requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to\n" -"clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible\n" -"rendering glitches (some blocks will not be rendered under water and in " -"caves,\n" -"as well as sometimes on land).\n" -"Setting this to a value greater than max_block_send_distance disables this\n" -"optimization.\n" -"Stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FreeType fonts" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain variation noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Restricts the access of certain client-side functions on servers.\n" -"Combine the byteflags below to restrict client-side features, or set to 0\n" -"for no restrictions:\n" -"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" -"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" -"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" -"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" -"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" -"csm_restriction_noderange)\n" -"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Selects one of 18 fractal types.\n" -"1 = 4D \"Roundy\" Mandelbrot set.\n" -"2 = 4D \"Roundy\" Julia set.\n" -"3 = 4D \"Squarry\" Mandelbrot set.\n" -"4 = 4D \"Squarry\" Julia set.\n" -"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" -"6 = 4D \"Mandy Cousin\" Julia set.\n" -"7 = 4D \"Variation\" Mandelbrot set.\n" -"8 = 4D \"Variation\" Julia set.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" -"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" -"12 = 3D \"Christmas Tree\" Julia set.\n" -"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" -"14 = 3D \"Mandelbulb\" Julia set.\n" -"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" -"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" -"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" -"18 = 4D \"Mandelbulb\" Julia set." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" -"WARNING!: There is no benefit, and there are several dangers, in\n" -"increasing this value above 5.\n" -"Reducing this value increases cave and dungeon density.\n" -"Altering this value is for special usage, leaving it unchanged is\n" -"recommended." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The URL for the content repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" From d4e5b0f2b7e7f5b81596fa23e9fd5ab4118f89b1 Mon Sep 17 00:00:00 2001 From: Benjamin Alan Jamie Date: Tue, 26 Jan 2021 16:37:57 +0100 Subject: [PATCH 486/624] Deleted translation using Weblate (Burmese) --- po/my/minetest.po | 6323 --------------------------------------------- 1 file changed, 6323 deletions(-) delete mode 100644 po/my/minetest.po diff --git a/po/my/minetest.po b/po/my/minetest.po deleted file mode 100644 index 549653ac5..000000000 --- a/po/my/minetest.po +++ /dev/null @@ -1,6323 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Burmese (Minetest)\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy \n" -"Language-Team: Burmese \n" -"Language: my\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10.1\n" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "Respawn" -msgstr "" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "" - -#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp -msgid "OK" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No (optional) dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No hard dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No optional dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp -msgid "Save" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Games" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Mods" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Humid rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Increases humidity around rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mud flow" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "" -"Structures appearing on the terrain (no effect on trees and jungle grass " -"created by v6)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "World name" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "Are you sure you want to delete \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua -#: src/client/keycode.cpp -msgid "Delete" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: invalid path \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_world.lua -msgid "Delete World \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Accept" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "" -"This modpack has an explicit name given in its modpack.conf which will " -"override any renaming here." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Octaves" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Persistance" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "" - -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#. ~ "defaults" is a noise parameter flag. -#. It describes the default processing options -#. for noise settings in main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "defaults" -msgstr "" - -#. ~ "eased" is a noise parameter flag. -#. It is used to make the map smoother and -#. can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "eased" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 (Enabled)" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Failed to install $1 to $2" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Browse online content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No package description available" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Rename" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Uninstall Package" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Start Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Join Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/client/game.cpp -msgid "Change Keys" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: src/client/client.cpp -msgid "Connection timed out." -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Loading textures..." -msgstr "" - -#: src/client/client.cpp -msgid "Rebuilding shaders..." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string. Put either "no" or "yes" -#. into the translation field (literally). -#. Choose "yes" if the language requires use of the fallback -#. font, "no" otherwise. -#. The fallback font is (normally) required for languages with -#. non-Latin script, like Chinese. -#. When in doubt, test your translation. -#: src/client/fontengine.cpp -msgid "needs_fallback_font" -msgstr "yes" - -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " -msgstr "" - -#: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Damage: " -msgstr "" - -#: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Port: " -msgstr "" - -#: src/client/game.cpp -msgid "- Public: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " -msgstr "" - -#: src/client/game.cpp -msgid "- Server Name: " -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Connecting to server..." -msgstr "" - -#: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" - -#: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to Menu" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to OS" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Game info:" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Hosting server" -msgstr "" - -#: src/client/game.cpp -msgid "Item definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Node definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "Off" -msgstr "" - -#: src/client/game.cpp -msgid "On" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Shutting down..." -msgstr "" - -#: src/client/game.cpp -msgid "Singleplayer" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" - -#: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" -msgstr "" - -#: src/client/keycode.cpp -msgid "Backspace" -msgstr "" - -#: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#: src/client/keycode.cpp -msgid "End" -msgstr "" - -#: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Convert" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Escape" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#. ~ Key name, common on Windows keyboards -#: src/client/keycode.cpp -msgid "Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Num Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad *" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad +" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad -" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad ." -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad /" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 0" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 2" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 3" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 4" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 5" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 6" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 7" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 8" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 9" -msgstr "" - -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page down" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page up" -msgstr "" - -#: src/client/keycode.cpp -msgid "Pause" -msgstr "" - -#: src/client/keycode.cpp -msgid "Play" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Sleep" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Space" -msgstr "" - -#: src/client/keycode.cpp -msgid "Tab" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Zoom" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -#, c-format -msgid "" -"You are about to join this server with the name \"%s\" for the first time.\n" -"If you proceed, a new account using your credentials will be created on this " -"server.\n" -"Please retype your password and click 'Register and Join' to confirm account " -"creation, or click 'Cancel' to abort." -msgstr "" - -#: src/gui/guiFormSpecMenu.cpp -msgid "Proceed" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "\"Special\" = climb down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Automatic jumping" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Confirm Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Exit" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Muted" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "" - -#. ~ Imperative, as in "Enter/type in text". -#. Don't forget the space. -#: src/gui/modalMenu.cpp -msgid "Enter " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string which needs to contain the translation's -#. language code (e.g. "de" for German). -#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp -msgid "LANG_CODE" -msgstr "my" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Use virtual joystick to trigger \"aux\" button.\n" -"If enabled, virtual joystick will also tap \"aux\" button when out of main " -"circle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- crossview: Cross-eyed 3d\n" -"- pageflip: quadbuffer based 3d.\n" -"Note that the interlaced mode requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to\n" -"clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible\n" -"rendering glitches (some blocks will not be rendered under water and in " -"caves,\n" -"as well as sometimes on land).\n" -"Setting this to a value greater than max_block_send_distance disables this\n" -"optimization.\n" -"Stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FreeType fonts" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain variation noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Restricts the access of certain client-side functions on servers.\n" -"Combine the byteflags below to restrict client-side features, or set to 0\n" -"for no restrictions:\n" -"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" -"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" -"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" -"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" -"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" -"csm_restriction_noderange)\n" -"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Selects one of 18 fractal types.\n" -"1 = 4D \"Roundy\" Mandelbrot set.\n" -"2 = 4D \"Roundy\" Julia set.\n" -"3 = 4D \"Squarry\" Mandelbrot set.\n" -"4 = 4D \"Squarry\" Julia set.\n" -"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" -"6 = 4D \"Mandy Cousin\" Julia set.\n" -"7 = 4D \"Variation\" Mandelbrot set.\n" -"8 = 4D \"Variation\" Julia set.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" -"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" -"12 = 3D \"Christmas Tree\" Julia set.\n" -"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" -"14 = 3D \"Mandelbulb\" Julia set.\n" -"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" -"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" -"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" -"18 = 4D \"Mandelbulb\" Julia set." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" -"WARNING!: There is no benefit, and there are several dangers, in\n" -"increasing this value above 5.\n" -"Reducing this value increases cave and dungeon density.\n" -"Altering this value is for special usage, leaving it unchanged is\n" -"recommended." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The URL for the content repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" From d39c0310da518d14d04410020827f069ed3d53ce Mon Sep 17 00:00:00 2001 From: Benjamin Alan Jamie Date: Tue, 26 Jan 2021 16:40:31 +0100 Subject: [PATCH 487/624] Deleted translation using Weblate (Lao) --- po/lo/minetest.po | 6323 --------------------------------------------- 1 file changed, 6323 deletions(-) delete mode 100644 po/lo/minetest.po diff --git a/po/lo/minetest.po b/po/lo/minetest.po deleted file mode 100644 index 731a7957d..000000000 --- a/po/lo/minetest.po +++ /dev/null @@ -1,6323 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Lao (Minetest)\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy \n" -"Language-Team: Lao \n" -"Language: lo\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10.1\n" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "Respawn" -msgstr "" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "" - -#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp -msgid "OK" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No (optional) dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No hard dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No optional dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp -msgid "Save" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Games" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Mods" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Humid rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Increases humidity around rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mud flow" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "" -"Structures appearing on the terrain (no effect on trees and jungle grass " -"created by v6)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "World name" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "Are you sure you want to delete \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua -#: src/client/keycode.cpp -msgid "Delete" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: invalid path \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_world.lua -msgid "Delete World \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Accept" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "" -"This modpack has an explicit name given in its modpack.conf which will " -"override any renaming here." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Octaves" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Persistance" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "" - -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#. ~ "defaults" is a noise parameter flag. -#. It describes the default processing options -#. for noise settings in main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "defaults" -msgstr "" - -#. ~ "eased" is a noise parameter flag. -#. It is used to make the map smoother and -#. can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "eased" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 (Enabled)" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Failed to install $1 to $2" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Browse online content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No package description available" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Rename" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Uninstall Package" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Start Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Join Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/client/game.cpp -msgid "Change Keys" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: src/client/client.cpp -msgid "Connection timed out." -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Loading textures..." -msgstr "" - -#: src/client/client.cpp -msgid "Rebuilding shaders..." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string. Put either "no" or "yes" -#. into the translation field (literally). -#. Choose "yes" if the language requires use of the fallback -#. font, "no" otherwise. -#. The fallback font is (normally) required for languages with -#. non-Latin script, like Chinese. -#. When in doubt, test your translation. -#: src/client/fontengine.cpp -msgid "needs_fallback_font" -msgstr "yes" - -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " -msgstr "" - -#: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Damage: " -msgstr "" - -#: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Port: " -msgstr "" - -#: src/client/game.cpp -msgid "- Public: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " -msgstr "" - -#: src/client/game.cpp -msgid "- Server Name: " -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Connecting to server..." -msgstr "" - -#: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" - -#: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to Menu" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to OS" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Game info:" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Hosting server" -msgstr "" - -#: src/client/game.cpp -msgid "Item definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Node definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "Off" -msgstr "" - -#: src/client/game.cpp -msgid "On" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Shutting down..." -msgstr "" - -#: src/client/game.cpp -msgid "Singleplayer" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" - -#: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" -msgstr "" - -#: src/client/keycode.cpp -msgid "Backspace" -msgstr "" - -#: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#: src/client/keycode.cpp -msgid "End" -msgstr "" - -#: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Convert" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Escape" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#. ~ Key name, common on Windows keyboards -#: src/client/keycode.cpp -msgid "Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Num Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad *" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad +" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad -" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad ." -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad /" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 0" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 2" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 3" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 4" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 5" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 6" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 7" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 8" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 9" -msgstr "" - -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page down" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page up" -msgstr "" - -#: src/client/keycode.cpp -msgid "Pause" -msgstr "" - -#: src/client/keycode.cpp -msgid "Play" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Sleep" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Space" -msgstr "" - -#: src/client/keycode.cpp -msgid "Tab" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Zoom" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -#, c-format -msgid "" -"You are about to join this server with the name \"%s\" for the first time.\n" -"If you proceed, a new account using your credentials will be created on this " -"server.\n" -"Please retype your password and click 'Register and Join' to confirm account " -"creation, or click 'Cancel' to abort." -msgstr "" - -#: src/gui/guiFormSpecMenu.cpp -msgid "Proceed" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "\"Special\" = climb down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Automatic jumping" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Confirm Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Exit" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Muted" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "" - -#. ~ Imperative, as in "Enter/type in text". -#. Don't forget the space. -#: src/gui/modalMenu.cpp -msgid "Enter " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string which needs to contain the translation's -#. language code (e.g. "de" for German). -#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp -msgid "LANG_CODE" -msgstr "lo" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Use virtual joystick to trigger \"aux\" button.\n" -"If enabled, virtual joystick will also tap \"aux\" button when out of main " -"circle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- crossview: Cross-eyed 3d\n" -"- pageflip: quadbuffer based 3d.\n" -"Note that the interlaced mode requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to\n" -"clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible\n" -"rendering glitches (some blocks will not be rendered under water and in " -"caves,\n" -"as well as sometimes on land).\n" -"Setting this to a value greater than max_block_send_distance disables this\n" -"optimization.\n" -"Stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FreeType fonts" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain variation noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Restricts the access of certain client-side functions on servers.\n" -"Combine the byteflags below to restrict client-side features, or set to 0\n" -"for no restrictions:\n" -"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" -"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" -"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" -"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" -"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" -"csm_restriction_noderange)\n" -"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Selects one of 18 fractal types.\n" -"1 = 4D \"Roundy\" Mandelbrot set.\n" -"2 = 4D \"Roundy\" Julia set.\n" -"3 = 4D \"Squarry\" Mandelbrot set.\n" -"4 = 4D \"Squarry\" Julia set.\n" -"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" -"6 = 4D \"Mandy Cousin\" Julia set.\n" -"7 = 4D \"Variation\" Mandelbrot set.\n" -"8 = 4D \"Variation\" Julia set.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" -"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" -"12 = 3D \"Christmas Tree\" Julia set.\n" -"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" -"14 = 3D \"Mandelbulb\" Julia set.\n" -"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" -"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" -"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" -"18 = 4D \"Mandelbulb\" Julia set." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" -"WARNING!: There is no benefit, and there are several dangers, in\n" -"increasing this value above 5.\n" -"Reducing this value increases cave and dungeon density.\n" -"Altering this value is for special usage, leaving it unchanged is\n" -"recommended." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The URL for the content repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" From cb807b26e27f8a235df805f901311711deae5de1 Mon Sep 17 00:00:00 2001 From: "updatepo.sh" Date: Sat, 30 Jan 2021 21:12:16 +0100 Subject: [PATCH 488/624] Update minetest.conf.example and dummy translation file --- minetest.conf.example | 160 ++++++++++++++++++------------ src/settings_translation_file.cpp | 58 ++++++----- 2 files changed, 128 insertions(+), 90 deletions(-) diff --git a/minetest.conf.example b/minetest.conf.example index 3bb357813..f5f608adf 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -75,10 +75,10 @@ # type: bool # always_fly_fast = true -# The time in seconds it takes between repeated right clicks when holding the right -# mouse button. +# The time in seconds it takes between repeated node placements when holding +# the place button. # type: float min: 0.001 -# repeat_rightclick_time = 0.25 +# repeat_place_time = 0.25 # Automatically jump up single-node obstacles. # type: bool @@ -130,6 +130,7 @@ # repeat_joystick_button_time = 0.17 # The deadzone of the joystick +# type: int # joystick_deadzone = 2048 # The sensitivity of the joystick axes for moving the @@ -169,6 +170,16 @@ # type: key # keymap_sneak = KEY_LSHIFT +# Key for digging. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_dig = KEY_LBUTTON + +# Key for placing. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_place = KEY_RBUTTON + # Key for opening the inventory. # See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 # type: key @@ -572,8 +583,13 @@ # type: int # texture_min_size = 64 -# Experimental option, might cause visible spaces between blocks -# when set to higher number than 0. +# Use multi-sample antialiasing (MSAA) to smooth out block edges. +# This algorithm smooths out the 3D viewport while keeping the image sharp, +# but it doesn't affect the insides of textures +# (which is especially noticeable with transparent textures). +# Visible spaces appear between nodes when shaders are disabled. +# If set to 0, MSAA is disabled. +# A restart is required after changing this option. # type: enum values: 0, 1, 2, 4, 8, 16 # fsaa = 0 @@ -605,37 +621,6 @@ # type: bool # tone_mapping = false -#### Bumpmapping - -# Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack. -# Requires shaders to be enabled. -# type: bool -# enable_bumpmapping = false - -#### Parallax Occlusion - -# Enables parallax occlusion mapping. -# Requires shaders to be enabled. -# type: bool -# enable_parallax_occlusion = false - -# 0 = parallax occlusion with slope information (faster). -# 1 = relief mapping (slower, more accurate). -# type: int min: 0 max: 1 -# parallax_occlusion_mode = 1 - -# Number of parallax occlusion iterations. -# type: int -# parallax_occlusion_iterations = 4 - -# Overall scale of parallax occlusion effect. -# type: float -# parallax_occlusion_scale = 0.08 - -# Overall bias of parallax occlusion effect, usually scale/2. -# type: float -# parallax_occlusion_bias = 0.04 - #### Waving Nodes # Set to true to enable waving liquids (like water). @@ -684,9 +669,9 @@ # type: int min: 1 # fps_max = 60 -# Maximum FPS when game is paused. +# Maximum FPS when the window is not focused, or when the game is paused. # type: int min: 1 -# pause_fps_max = 20 +# fps_max_unfocused = 20 # Open the pause menu when the window's focus is lost. Does not pause if a formspec is # open. @@ -695,7 +680,7 @@ # View distance in nodes. # type: int min: 20 max: 4000 -# viewing_range = 100 +# viewing_range = 190 # Camera 'near clipping plane' distance in nodes, between 0 and 0.25 # Only works on GLES platforms. Most users will not need to change this. @@ -774,8 +759,8 @@ # The rendering back-end for Irrlicht. # A restart is required after changing this. # Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise. -# On other platforms, OpenGL is recommended, and it’s the only driver with -# shader support currently. +# On other platforms, OpenGL is recommended. +# Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental) # type: enum values: null, software, burningsvideo, direct3d8, direct3d9, opengl, ogles1, ogles2 # video_driver = opengl @@ -848,10 +833,12 @@ # selectionbox_width = 2 # Crosshair color (R,G,B). +# Also controls the object crosshair color # type: string # crosshair_color = (255,255,255) # Crosshair alpha (opaqueness, between 0 and 255). +# Also controls the object crosshair color # type: int min: 0 max: 255 # crosshair_alpha = 255 @@ -1181,7 +1168,7 @@ # Maximum number of mapblocks for client to be kept in memory. # Set to -1 for unlimited amount. # type: int -# client_mapblock_limit = 5000 +# client_mapblock_limit = 7500 # Whether to show the client debug info (has the same effect as hitting F5). # type: bool @@ -1269,6 +1256,14 @@ # type: int # max_packets_per_iteration = 1024 +# ZLib compression level to use when sending mapblocks to the client. +# -1 - Zlib's default compression level +# 0 - no compresson, fastest +# 9 - best compression, slowest +# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method) +# type: int min: -1 max: 9 +# map_compression_level_net = -1 + ## Game # Default game when creating a new world. @@ -1383,7 +1378,7 @@ # to maintain active objects up to this distance in the direction the # player is looking. (This can avoid mobs suddenly disappearing from view) # type: int -# active_object_send_range_blocks = 4 +# active_object_send_range_blocks = 8 # The radius of the volume of blocks around every player that is subject to the # active block stuff, stated in mapblocks (16 nodes). @@ -1391,11 +1386,11 @@ # This is also the minimum range in which active objects (mobs) are maintained. # This should be configured together with active_object_send_range_blocks. # type: int -# active_block_range = 3 +# active_block_range = 4 # From how far blocks are sent to clients, stated in mapblocks (16 nodes). # type: int -# max_block_send_distance = 10 +# max_block_send_distance = 12 # Maximum number of forceloaded mapblocks. # type: int @@ -1488,11 +1483,11 @@ ### Advanced # Handling for deprecated Lua API calls: -# - legacy: (try to) mimic old behaviour (default for release). -# - log: mimic and log backtrace of deprecated call (default for debug). +# - none: Do not log deprecated calls +# - log: mimic and log backtrace of deprecated call (default). # - error: abort on usage of deprecated call (suggested for mod developers). -# type: enum values: legacy, log, error -# deprecated_lua_api_handling = legacy +# type: enum values: none, log, error +# deprecated_lua_api_handling = log # Number of extra blocks that can be loaded by /clearobjects at once. # This is a trade-off between sqlite transaction overhead and @@ -1513,6 +1508,14 @@ # type: enum values: 0, 1, 2 # sqlite_synchronous = 2 +# ZLib compression level to use when saving mapblocks to disk. +# -1 - Zlib's default compression level +# 0 - no compresson, fastest +# 9 - best compression, slowest +# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method) +# type: int min: -1 max: 9 +# map_compression_level_disk = 3 + # Length of a server tick and the interval at which objects are generally updated over # network. # type: float @@ -1526,6 +1529,11 @@ # type: float # abm_interval = 1.0 +# The time budget allowed for ABMs to execute on each step +# (as a fraction of the ABM Interval) +# type: float min: 0.1 max: 0.9 +# abm_time_budget = 0.2 + # Length of time between NodeTimer execution cycles # type: float # nodetimer_interval = 0.2 @@ -1722,13 +1730,6 @@ # type: bool # high_precision_fpu = true -# Changes the main menu UI: -# - Full: Multiple singleplayer worlds, game choice, texture pack chooser, etc. -# - Simple: One singleplayer world, no game or texture pack choosers. May be -# necessary for smaller screens. -# type: enum values: full, simple -# main_menu_style = full - # Replaces the default main menu with a custom one. # type: string # main_menu_script = @@ -1755,7 +1756,7 @@ # From how far blocks are generated for clients, stated in mapblocks (16 nodes). # type: int -# max_block_generate_distance = 8 +# max_block_generate_distance = 10 # Limit of map generation, in nodes, in all 6 directions from (0, 0, 0). # Only mapchunks completely within the mapgen limit are generated. @@ -1766,8 +1767,8 @@ # Global map generation attributes. # In Mapgen v6 the 'decorations' flag controls all decorations except trees # and junglegrass, in all other mapgens this flag controls all decorations. -# type: flags possible values: caves, dungeons, light, decorations, biomes, nocaves, nodungeons, nolight, nodecorations, nobiomes -# mg_flags = caves,dungeons,light,decorations,biomes +# type: flags possible values: caves, dungeons, light, decorations, biomes, ores, nocaves, nodungeons, nolight, nodecorations, nobiomes, noores +# mg_flags = caves,dungeons,light,decorations,biomes,ores ## Biome API temperature and humidity noise parameters @@ -2753,8 +2754,8 @@ # Map generation attributes specific to Mapgen Flat. # Occasional lakes and hills can be added to the flat world. -# type: flags possible values: lakes, hills, nolakes, nohills -# mgflat_spflags = nolakes,nohills +# type: flags possible values: lakes, hills, caverns, nolakes, nohills, nocaverns +# mgflat_spflags = nolakes,nohills,nocaverns # Y of flat ground. # type: int @@ -2810,6 +2811,18 @@ # type: float # mgflat_hill_steepness = 64.0 +# Y-level of cavern upper limit. +# type: int +# mgflat_cavern_limit = -256 + +# Y-distance over which caverns expand to full size. +# type: int +# mgflat_cavern_taper = 256 + +# Defines full size of caverns, smaller values create larger caverns. +# type: float +# mgflat_cavern_threshold = 0.7 + # Lower Y limit of dungeons. # type: int # mgflat_dungeon_ymin = -31000 @@ -2872,6 +2885,19 @@ # flags = # } +# 3D noise defining giant caverns. +# type: noise_params_3d +# mgflat_np_cavern = { +# offset = 0, +# scale = 1, +# spread = (384, 128, 384), +# seed = 723, +# octaves = 5, +# persistence = 0.63, +# lacunarity = 2.0, +# flags = +# } + # 3D noise that determines number of dungeons per mapchunk. # type: noise_params_3d # mgflat_np_dungeons = { @@ -3322,17 +3348,17 @@ # Maximum number of blocks that can be queued for loading. # type: int -# emergequeue_limit_total = 512 +# emergequeue_limit_total = 1024 # Maximum number of blocks to be queued that are to be loaded from file. # This limit is enforced per player. # type: int -# emergequeue_limit_diskonly = 64 +# emergequeue_limit_diskonly = 128 # Maximum number of blocks to be queued that are to be generated. # This limit is enforced per player. # type: int -# emergequeue_limit_generate = 64 +# emergequeue_limit_generate = 128 # Number of emerge threads to use. # Value 0: @@ -3363,3 +3389,9 @@ # so see a full list at https://content.minetest.net/help/content_flags/ # type: string # contentdb_flag_blacklist = nonfree, desktop_default + +# Maximum number of concurrent downloads. Downloads exceeding this limit will be queued. +# This should be lower than curl_parallel_limit. +# type: int +# contentdb_max_concurrent_downloads = 3 + diff --git a/src/settings_translation_file.cpp b/src/settings_translation_file.cpp index 0cd772337..8ce323ff6 100644 --- a/src/settings_translation_file.cpp +++ b/src/settings_translation_file.cpp @@ -30,8 +30,8 @@ fake_function() { gettext("Double-tapping the jump key toggles fly mode."); gettext("Always fly and fast"); gettext("If disabled, \"special\" key is used to fly fast if both fly and fast mode are\nenabled."); - gettext("Rightclick repetition interval"); - gettext("The time in seconds it takes between repeated right clicks when holding the right\nmouse button."); + gettext("Place repetition interval"); + gettext("The time in seconds it takes between repeated node placements when holding\nthe place button."); gettext("Automatic jumping"); gettext("Automatically jump up single-node obstacles."); gettext("Safe digging and placing"); @@ -54,6 +54,8 @@ fake_function() { gettext("The type of joystick"); gettext("Joystick button repetition interval"); gettext("The time in seconds it takes between repeated events\nwhen holding down a joystick button combination."); + gettext("Joystick deadzone"); + gettext("The deadzone of the joystick"); gettext("Joystick frustum sensitivity"); gettext("The sensitivity of the joystick axes for moving the\ningame view frustum around."); gettext("Forward key"); @@ -68,6 +70,10 @@ fake_function() { gettext("Key for jumping.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); gettext("Sneak key"); gettext("Key for sneaking.\nAlso used for climbing down and descending in water if aux1_descends is disabled.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); + gettext("Dig key"); + gettext("Key for digging.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); + gettext("Place key"); + gettext("Key for placing.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); gettext("Inventory key"); gettext("Key for opening the inventory.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); gettext("Special key"); @@ -229,7 +235,7 @@ fake_function() { gettext("Minimum texture size"); gettext("When using bilinear/trilinear/anisotropic filters, low-resolution textures\ncan be blurred, so automatically upscale them with nearest-neighbor\ninterpolation to preserve crisp pixels. This sets the minimum texture size\nfor the upscaled textures; higher values look sharper, but require more\nmemory. Powers of 2 are recommended. Setting this higher than 1 may not\nhave a visible effect unless bilinear/trilinear/anisotropic filtering is\nenabled.\nThis is also used as the base node texture size for world-aligned\ntexture autoscaling."); gettext("FSAA"); - gettext("Experimental option, might cause visible spaces between blocks\nwhen set to higher number than 0."); + gettext("Use multi-sample antialiasing (MSAA) to smooth out block edges.\nThis algorithm smooths out the 3D viewport while keeping the image sharp,\nbut it doesn't affect the insides of textures\n(which is especially noticeable with transparent textures).\nVisible spaces appear between nodes when shaders are disabled.\nIf set to 0, MSAA is disabled.\nA restart is required after changing this option."); gettext("Undersampling"); gettext("Undersampling is similar to using a lower screen resolution, but it applies\nto the game world only, keeping the GUI intact.\nIt should give a significant performance boost at the cost of less detailed image.\nHigher values result in a less detailed image."); gettext("Shaders"); @@ -240,20 +246,6 @@ fake_function() { gettext("Tone Mapping"); gettext("Filmic tone mapping"); gettext("Enables Hable's 'Uncharted 2' filmic tone mapping.\nSimulates the tone curve of photographic film and how this approximates the\nappearance of high dynamic range images. Mid-range contrast is slightly\nenhanced, highlights and shadows are gradually compressed."); - gettext("Bumpmapping"); - gettext("Bumpmapping"); - gettext("Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack.\nRequires shaders to be enabled."); - gettext("Parallax Occlusion"); - gettext("Parallax occlusion"); - gettext("Enables parallax occlusion mapping.\nRequires shaders to be enabled."); - gettext("Parallax occlusion mode"); - gettext("0 = parallax occlusion with slope information (faster).\n1 = relief mapping (slower, more accurate)."); - gettext("Parallax occlusion iterations"); - gettext("Number of parallax occlusion iterations."); - gettext("Parallax occlusion scale"); - gettext("Overall scale of parallax occlusion effect."); - gettext("Parallax occlusion bias"); - gettext("Overall bias of parallax occlusion effect, usually scale/2."); gettext("Waving Nodes"); gettext("Waving liquids"); gettext("Set to true to enable waving liquids (like water).\nRequires shaders to be enabled."); @@ -272,8 +264,8 @@ fake_function() { gettext("Arm inertia, gives a more realistic movement of\nthe arm when the camera moves."); gettext("Maximum FPS"); gettext("If FPS would go higher than this, limit it by sleeping\nto not waste CPU power for no benefit."); - gettext("FPS in pause menu"); - gettext("Maximum FPS when game is paused."); + gettext("FPS when unfocused or paused"); + gettext("Maximum FPS when the window is not focused, or when the game is paused."); gettext("Pause on lost window focus"); gettext("Open the pause menu when the window's focus is lost. Does not pause if a formspec is\nopen."); gettext("Viewing range"); @@ -309,7 +301,7 @@ fake_function() { gettext("Texture path"); gettext("Path to texture directory. All textures are first searched from here."); gettext("Video driver"); - gettext("The rendering back-end for Irrlicht.\nA restart is required after changing this.\nNote: On Android, stick with OGLES1 if unsure! App may fail to start otherwise.\nOn other platforms, OpenGL is recommended, and it’s the only driver with\nshader support currently."); + gettext("The rendering back-end for Irrlicht.\nA restart is required after changing this.\nNote: On Android, stick with OGLES1 if unsure! App may fail to start otherwise.\nOn other platforms, OpenGL is recommended.\nShaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"); gettext("Cloud radius"); gettext("Radius of cloud area stated in number of 64 node cloud squares.\nValues larger than 26 will start to produce sharp cutoffs at cloud area corners."); gettext("View bobbing factor"); @@ -339,9 +331,9 @@ fake_function() { gettext("Selection box width"); gettext("Width of the selection box lines around nodes."); gettext("Crosshair color"); - gettext("Crosshair color (R,G,B)."); + gettext("Crosshair color (R,G,B).\nAlso controls the object crosshair color"); gettext("Crosshair alpha"); - gettext("Crosshair alpha (opaqueness, between 0 and 255)."); + gettext("Crosshair alpha (opaqueness, between 0 and 255).\nAlso controls the object crosshair color"); gettext("Recent Chat Messages"); gettext("Maximum number of recent chat messages to show"); gettext("Desynchronize block animation"); @@ -377,7 +369,7 @@ fake_function() { gettext("Autoscaling mode"); gettext("World-aligned textures may be scaled to span several nodes. However,\nthe server may not send the scale you want, especially if you use\na specially-designed texture pack; with this option, the client tries\nto determine the scale automatically basing on the texture size.\nSee also texture_min_size.\nWarning: This option is EXPERIMENTAL!"); gettext("Show entity selection boxes"); - gettext("Show entity selection boxes"); + gettext("Show entity selection boxes\nA restart is required after changing this."); gettext("Menus"); gettext("Clouds in menu"); gettext("Use a cloud animation for the main menu background."); @@ -503,6 +495,8 @@ fake_function() { gettext("To reduce lag, block transfers are slowed down when a player is building something.\nThis determines how long they are slowed down after placing or removing a node."); gettext("Max. packets per iteration"); gettext("Maximum number of packets sent per send step, if you have a slow connection\ntry reducing it, but don't reduce it to a number below double of targeted\nclient number."); + gettext("Map Compression Level for Network Transfer"); + gettext("ZLib compression level to use when sending mapblocks to the client.\n-1 - Zlib's default compression level\n0 - no compresson, fastest\n9 - best compression, slowest\n(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"); gettext("Game"); gettext("Default game"); gettext("Default game when creating a new world.\nThis will be overridden when creating a world from the main menu."); @@ -601,7 +595,7 @@ fake_function() { gettext("Acceleration of gravity, in nodes per second per second."); gettext("Advanced"); gettext("Deprecated Lua API handling"); - gettext("Handling for deprecated Lua API calls:\n- legacy: (try to) mimic old behaviour (default for release).\n- log: mimic and log backtrace of deprecated call (default for debug).\n- error: abort on usage of deprecated call (suggested for mod developers)."); + gettext("Handling for deprecated Lua API calls:\n- none: Do not log deprecated calls\n- log: mimic and log backtrace of deprecated call (default).\n- error: abort on usage of deprecated call (suggested for mod developers)."); gettext("Max. clearobjects extra blocks"); gettext("Number of extra blocks that can be loaded by /clearobjects at once.\nThis is a trade-off between sqlite transaction overhead and\nmemory consumption (4096=100MB, as a rule of thumb)."); gettext("Unload unused server data"); @@ -610,12 +604,16 @@ fake_function() { gettext("Maximum number of statically stored objects in a block."); gettext("Synchronous SQLite"); gettext("See https://www.sqlite.org/pragma.html#pragma_synchronous"); + gettext("Map Compression Level for Disk Storage"); + gettext("ZLib compression level to use when saving mapblocks to disk.\n-1 - Zlib's default compression level\n0 - no compresson, fastest\n9 - best compression, slowest\n(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"); gettext("Dedicated server step"); gettext("Length of a server tick and the interval at which objects are generally updated over\nnetwork."); gettext("Active block management interval"); gettext("Length of time between active block management cycles"); gettext("ABM interval"); gettext("Length of time between Active Block Modifier (ABM) execution cycles"); + gettext("ABM time budget"); + gettext("The time budget allowed for ABMs to execute on each step\n(as a fraction of the ABM Interval)"); gettext("NodeTimer interval"); gettext("Length of time between NodeTimer execution cycles"); gettext("Ignore world errors"); @@ -687,8 +685,6 @@ fake_function() { gettext("Maximum time in ms a file download (e.g. a mod download) may take."); gettext("High-precision FPU"); gettext("Makes DirectX work with LuaJIT. Disable if it causes troubles."); - gettext("Main menu style"); - gettext("Changes the main menu UI:\n- Full: Multiple singleplayer worlds, game choice, texture pack chooser, etc.\n- Simple: One singleplayer world, no game or texture pack choosers. May be\nnecessary for smaller screens."); gettext("Main menu script"); gettext("Replaces the default main menu with a custom one."); gettext("Engine profiling data print interval"); @@ -958,6 +954,12 @@ fake_function() { gettext("Terrain noise threshold for hills.\nControls proportion of world area covered by hills.\nAdjust towards 0.0 for a larger proportion."); gettext("Hill steepness"); gettext("Controls steepness/height of hills."); + gettext("Cavern limit"); + gettext("Y-level of cavern upper limit."); + gettext("Cavern taper"); + gettext("Y-distance over which caverns expand to full size."); + gettext("Cavern threshold"); + gettext("Defines full size of caverns, smaller values create larger caverns."); gettext("Dungeon minimum Y"); gettext("Lower Y limit of dungeons."); gettext("Dungeon maximum Y"); @@ -971,6 +973,8 @@ fake_function() { gettext("First of two 3D noises that together define tunnels."); gettext("Cave2 noise"); gettext("Second of two 3D noises that together define tunnels."); + gettext("Cavern noise"); + gettext("3D noise defining giant caverns."); gettext("Dungeon noise"); gettext("3D noise that determines number of dungeons per mapchunk."); gettext("Mapgen Fractal"); @@ -1097,4 +1101,6 @@ fake_function() { gettext("The URL for the content repository"); gettext("ContentDB Flag Blacklist"); gettext("Comma-separated list of flags to hide in the content repository.\n\"nonfree\" can be used to hide packages which do not qualify as 'free software',\nas defined by the Free Software Foundation.\nYou can also specify content ratings.\nThese flags are independent from Minetest versions,\nso see a full list at https://content.minetest.net/help/content_flags/"); + gettext("ContentDB Max Concurrent Downloads"); + gettext("Maximum number of concurrent downloads. Downloads exceeding this limit will be queued.\nThis should be lower than curl_parallel_limit."); } From d1ec5117d9095c75aca26a98690e4fcc5385e98c Mon Sep 17 00:00:00 2001 From: "updatepo.sh" Date: Sat, 30 Jan 2021 21:13:51 +0100 Subject: [PATCH 489/624] Update translation files --- po/ar/minetest.po | 541 +- po/be/minetest.po | 954 +-- po/bg/minetest.po | 10138 ++++++++++++++++---------------- po/ca/minetest.po | 594 +- po/cs/minetest.po | 761 ++- po/da/minetest.po | 712 ++- po/de/minetest.po | 937 +-- po/dv/minetest.po | 503 +- po/el/minetest.po | 475 +- po/eo/minetest.po | 912 +-- po/es/minetest.po | 841 +-- po/et/minetest.po | 575 +- po/eu/minetest.po | 504 +- po/fi/minetest.po | 10075 ++++++++++++++++---------------- po/fr/minetest.po | 962 +-- po/gd/minetest.po | 10358 +++++++++++++++++---------------- po/gl/minetest.po | 10070 ++++++++++++++++---------------- po/he/minetest.po | 508 +- po/hi/minetest.po | 544 +- po/hu/minetest.po | 820 +-- po/id/minetest.po | 922 +-- po/it/minetest.po | 993 ++-- po/ja/minetest.po | 884 +-- po/jbo/minetest.po | 534 +- po/kk/minetest.po | 485 +- po/kn/minetest.po | 498 +- po/ko/minetest.po | 997 ++-- po/ky/minetest.po | 547 +- po/lt/minetest.po | 557 +- po/lv/minetest.po | 542 +- po/minetest.pot | 458 +- po/ms/minetest.po | 952 +-- po/ms_Arab/minetest.po | 11385 ++++++++++++++++++------------------ po/nb/minetest.po | 625 +- po/nl/minetest.po | 921 +-- po/nn/minetest.po | 555 +- po/pl/minetest.po | 926 +-- po/pt/minetest.po | 956 +-- po/pt_BR/minetest.po | 935 +-- po/ro/minetest.po | 613 +- po/ru/minetest.po | 939 +-- po/sk/minetest.po | 12265 ++++++++++++++++++++------------------- po/sl/minetest.po | 623 +- po/sr_Cyrl/minetest.po | 586 +- po/sr_Latn/minetest.po | 10166 ++++++++++++++++---------------- po/sv/minetest.po | 614 +- po/sw/minetest.po | 775 ++- po/th/minetest.po | 779 ++- po/tr/minetest.po | 946 +-- po/uk/minetest.po | 618 +- po/vi/minetest.po | 476 +- po/zh_CN/minetest.po | 840 ++- po/zh_TW/minetest.po | 877 +-- 53 files changed, 57256 insertions(+), 50317 deletions(-) diff --git a/po/ar/minetest.po b/po/ar/minetest.po index 851888bc8..530715a6d 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-10-29 16:26+0000\n" "Last-Translator: abidin toumi \n" "Language-Team: Arabic \n" "Language-Team: Belarusian 0." +#~ msgstr "" +#~ "Вызначае вобласці гладкага рэльефу лятучых астравоў.\n" +#~ "Гладкая паверхня з'яўляецца, калі шум больш нуля." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Вызначае крок дыскрэтызацыі тэкстуры.\n" +#~ "Больш высокае значэнне прыводзіць да больш гладкіх мапаў нармаляў." + +#~ msgid "" +#~ "Deprecated, define and locate cave liquids using biome definitions " +#~ "instead.\n" +#~ "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Састарэлы. Вызначае і размяшчае пячорныя вадкасці з выкарыстаннем " +#~ "азначэнняў біёму.\n" +#~ "Y верхняй мяжы лавы ў вялікіх пячорах." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Спампоўванне і ўсталёўка $1. Калі ласка, пачакайце…" + +#~ msgid "Enable VBO" +#~ msgstr "Уключыць VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Уключае рэльефнае тэкстураванне. Мапы нармаляў мусяць быць пакункам " +#~ "тэкстур ці створанымі аўтаматычна.\n" +#~ "Патрабуюцца ўключаныя шэйдэры." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Уключае кінематаграфічнае танальнае адлюстраванне" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Уключае генерацыю мапаў нармаляў лётма (эфект Emboss).\n" +#~ "Патрабуецца рэльефнае тэкстураванне." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Уключае паралакснае аклюзіўнае тэкстураванне.\n" +#~ "Патрабуюцца ўключаныя шэйдэры." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Эксперыментальны параметр, які можа прывесці да візуальных прагалаў\n" +#~ "паміж блокамі пры значэнні большым за 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS у меню паўзы" + +#~ msgid "Floatland base height noise" +#~ msgstr "Шум базавай вышыні лятучых астравоў" + +#~ msgid "Floatland mountain height" +#~ msgstr "Вышыня гор на лятучых астравоў" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Празрыстасць цені шрыфту (ад 0 да 255)." + +#~ msgid "Gamma" +#~ msgstr "Гама" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Генерацыя мапы нармаляў" + +#~ msgid "Generate normalmaps" +#~ msgstr "Генерацыя мапы нармаляў" + +#~ msgid "IPv6 support." +#~ msgstr "Падтрымка IPv6." + +#~ msgid "" +#~ "If enabled together with fly mode, makes move directions relative to the " +#~ "player's pitch." +#~ msgstr "" +#~ "Калі ўключана адначасова з рэжымам палёту, то вызначае напрамак руху " +#~ "адносна кроку гульца." + +#~ msgid "Lava depth" +#~ msgstr "Глыбіня лавы" + +#~ msgid "Lightness sharpness" +#~ msgstr "Рэзкасць паваротлівасці" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Абмежаванне чэргаў на дыску" + +#~ msgid "Main" +#~ msgstr "Галоўнае меню" + +#~ msgid "Main menu style" +#~ msgstr "Стыль галоўнага меню" #~ msgid "" #~ "Map generation attributes specific to Mapgen Carpathian.\n" @@ -7220,20 +7438,14 @@ msgstr "Таймаўт cURL" #~ "Нявызначаныя атрыбуты прадвызначана не змяняюцца.\n" #~ "Атрыбуты, што пачынаюцца з \"no\", выкарыстоўваюцца для іх выключэння." -#~ msgid "Content Store" -#~ msgstr "Крама дадаткаў" - -#~ msgid "Select Package File:" -#~ msgstr "Абраць файл пакунка:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y верхняга ліміту лавы ў шырокіх пячорах." - -#~ msgid "Waving Water" -#~ msgstr "Хваляванне вады" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Выступ падзямелляў па-над рэльефам." +#~ msgid "" +#~ "Map generation attributes specific to Mapgen v5.\n" +#~ "Flags that are not enabled are not modified from the default.\n" +#~ "Flags starting with 'no' are used to explicitly disable them." +#~ msgstr "" +#~ "Атрыбуты генерацыі мапы для генератара мапы 5.\n" +#~ "Нявызначаныя атрыбуты прадвызначана не змяняюцца.\n" +#~ "Атрыбуты, што пачынаюцца з 'no' выкарыстоўваюцца для іх выключэння." #~ msgid "" #~ "Map generation attributes specific to Mapgen v7.\n" @@ -7246,29 +7458,95 @@ msgstr "Таймаўт cURL" #~ "Нявызначаныя параметры прадвызначана не змяняюцца.\n" #~ "Параметры, што пачынаюцца з \"no\", выкарыстоўваюцца для выключэння." +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Мінімапа ў рэжыме радару, павелічэнне х2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Мінімапа ў рэжыме радару, павелічэнне х4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Мінімапа ў рэжыме паверхні, павелічэнне х2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Мінімапа ў рэжыме паверхні, павелічэнне х4" + +#~ msgid "Name/Password" +#~ msgstr "Імя/Пароль" + +#~ msgid "No" +#~ msgstr "Не" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Дыскрэтызацыя мапы нармаляў" + +#~ msgid "Normalmaps strength" +#~ msgstr "Моц мапы нармаляў" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Колькасць ітэрацый паралакснай аклюзіі." + +#~ msgid "Ok" +#~ msgstr "Добра" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Агульны зрух эфекту паралакснай аклюзіі. Звычайна маштаб/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Агульны маштаб эфекту паралакснай аклюзіі." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Паралаксная аклюзія" + +#~ msgid "Parallax occlusion" +#~ msgstr "Паралаксная аклюзія" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Зрух паралакснай аклюзіі" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Ітэрацыі паралакснай аклюзіі" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Рэжым паралакснай аклюзіі" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Маштаб паралакснай аклюзіі" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Інтэнсіўнасць паралакснай аклюзіі" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Шлях да TrueTypeFont ці растравага шрыфту." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Каталог для захоўвання здымкаў экрана." + #~ msgid "Projecting dungeons" #~ msgstr "Праектаванне падзямелляў" -#~ msgid "" -#~ "If enabled together with fly mode, makes move directions relative to the " -#~ "player's pitch." -#~ msgstr "" -#~ "Калі ўключана адначасова з рэжымам палёту, то вызначае напрамак руху " -#~ "адносна кроку гульца." +#~ msgid "Reset singleplayer world" +#~ msgstr "Скінуць свет адзіночнай гульні" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-узровень, да якога распаўсюджваюцца цені лятучых астравоў." +#~ msgid "Select Package File:" +#~ msgstr "Абраць файл пакунка:" -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Y-узровень сярэдняй кропкі і паверхні азёр лятучых астравоў." +#~ msgid "Shadow limit" +#~ msgstr "Ліміт ценяў" -#~ msgid "Waving water" -#~ msgstr "Хваляванне вады" +#~ msgid "Start Singleplayer" +#~ msgstr "Пачаць адзіночную гульню" -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Варыяцыя вышыні пагоркаў і глыбінь азёр на гладкай мясцовасці лятучых " -#~ "астравоў." +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Моц згенераваных мапаў нармаляў." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Моц сярэдняга ўздыму крывой святла." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Гэты шрыфт будзе выкарыстоўваецца для некаторых моў." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Кінематаграфічнасць" #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." @@ -7276,104 +7554,28 @@ msgstr "Таймаўт cURL" #~ "Тыповая максімальная вышыня, вышэй і ніжэй сярэдняй кропкі гор лятучых " #~ "астравоў." -#~ msgid "This font will be used for certain languages." -#~ msgstr "Гэты шрыфт будзе выкарыстоўваецца для некаторых моў." - -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Моц сярэдняга ўздыму крывой святла." - -#~ msgid "Shadow limit" -#~ msgstr "Ліміт ценяў" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Шлях да TrueTypeFont ці растравага шрыфту." - -#~ msgid "Lightness sharpness" -#~ msgstr "Рэзкасць паваротлівасці" - -#~ msgid "Lava depth" -#~ msgstr "Глыбіня лавы" - -#~ msgid "IPv6 support." -#~ msgstr "Падтрымка IPv6." - -#~ msgid "Gamma" -#~ msgstr "Гама" - -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Празрыстасць цені шрыфту (ад 0 да 255)." - -#~ msgid "Floatland mountain height" -#~ msgstr "Вышыня гор на лятучых астравоў" - -#~ msgid "Floatland base height noise" -#~ msgstr "Шум базавай вышыні лятучых астравоў" - -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Уключае кінематаграфічнае танальнае адлюстраванне" - -#~ msgid "Enable VBO" -#~ msgstr "Уключыць VBO" - -#~ msgid "" -#~ "Deprecated, define and locate cave liquids using biome definitions " -#~ "instead.\n" -#~ "Y of upper limit of lava in large caves." +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." #~ msgstr "" -#~ "Састарэлы. Вызначае і размяшчае пячорныя вадкасці з выкарыстаннем " -#~ "азначэнняў біёму.\n" -#~ "Y верхняй мяжы лавы ў вялікіх пячорах." +#~ "Варыяцыя вышыні пагоркаў і глыбінь азёр на гладкай мясцовасці лятучых " +#~ "астравоў." -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "Вызначае вобласці гладкага рэльефу лятучых астравоў.\n" -#~ "Гладкая паверхня з'яўляецца, калі шум больш нуля." +#~ msgid "Waving Water" +#~ msgstr "Хваляванне вады" -#~ msgid "Darkness sharpness" -#~ msgstr "Рэзкасць цемры" +#~ msgid "Waving water" +#~ msgstr "Хваляванне вады" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Кіруе шырынёй тунэляў. Меншае значэнне стварае больш шырокія тунэлі." +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Выступ падзямелляў па-над рэльефам." -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Кіруе шчыльнасцю горнага рэльефу лятучых астравоў.\n" -#~ "Гэты зрух дадаецца да значэння 'np_mountain'." +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y верхняга ліміту лавы ў шырокіх пячорах." -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Цэнтр сярэдняга ўздыму крывой святла." +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Y-узровень сярэдняй кропкі і паверхні азёр лятучых астравоў." -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "Кіруе звужэннем астравоў горнага тыпу ніжэй сярэдняй кропкі." +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-узровень, да якога распаўсюджваюцца цені лятучых астравоў." -#~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." -#~ msgstr "" -#~ "Наладка гама-кадавання для светлавых табліц. Высокія значэнні — больш " -#~ "ярчэйшыя.\n" -#~ "Гэты параметр прызначаны толькі для кліента і ігнаруецца серверам." - -#~ msgid "Path to save screenshots at." -#~ msgstr "Каталог для захоўвання здымкаў экрана." - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Інтэнсіўнасць паралакснай аклюзіі" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Абмежаванне чэргаў на дыску" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Спампоўванне і ўсталёўка $1. Калі ласка, пачакайце…" - -#~ msgid "Back" -#~ msgstr "Назад" - -#~ msgid "Ok" -#~ msgstr "Добра" +#~ msgid "Yes" +#~ msgstr "Так" diff --git a/po/bg/minetest.po b/po/bg/minetest.po index d3ad1c9ec..d6f284757 100644 --- a/po/bg/minetest.po +++ b/po/bg/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-08-04 04:41+0000\n" "Last-Translator: atomicbeef \n" "Language-Team: Bulgarian "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Octaves" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Persistance" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" +msgid "absvalue" msgstr "" #. ~ "defaults" is a noise parameter flag. @@ -528,76 +657,12 @@ msgstr "" msgid "eased" msgstr "" -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" +msgid "$1 mods" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -605,11 +670,7 @@ msgid "Failed to install $1 to $2" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" +msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -617,15 +678,7 @@ msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -633,11 +686,49 @@ msgid "Install: file: \"$1\"" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" +msgid "Unable to find a valid mod or modpack" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Зарежда..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Опитай да включиш публичния списък на сървъри отново и си провай интернет " +"връзката." + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" msgstr "" #: builtin/mainmenu/tab_content.lua @@ -645,7 +736,7 @@ msgid "Installed Packages:" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Browse online content" +msgid "No dependencies." msgstr "" #: builtin/mainmenu/tab_content.lua @@ -656,36 +747,12 @@ msgstr "" msgid "Rename" msgstr "" -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" +msgid "Use Texture Pack" msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -693,63 +760,73 @@ msgid "Active Contributors" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Port" +msgid "Creative Mode" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -757,7 +834,19 @@ msgid "Play Game" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -768,95 +857,51 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Favorite" msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua +msgid "PvP enabled" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "2x" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "4x" msgstr "" @@ -866,63 +911,19 @@ msgid "8x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" +msgid "All Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" +msgid "Bilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp @@ -930,15 +931,88 @@ msgid "Change Keys" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" +msgid "Connected Glass" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" +msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Земни маси в небето (експериментално)" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp @@ -946,49 +1020,41 @@ msgid "Tone Mapping" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" +msgid "Touchthreshold: (px)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" +msgid "Trilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + #: src/client/client.cpp msgid "Loading textures..." msgstr "" @@ -997,46 +1063,10 @@ msgstr "" msgid "Rebuilding shaders..." msgstr "" -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "" -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" msgstr "" @@ -1045,6 +1075,30 @@ msgstr "" msgid "Invalid gamespec." msgstr "" +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" #. into the translation field (literally). @@ -1058,128 +1112,42 @@ msgid "needs_fallback_font" msgstr "" #: src/client/game.cpp -msgid "Shutting down..." +msgid "" +"\n" +"Check debug.txt for details." msgstr "" #: src/client/game.cpp -msgid "Creating server..." +msgid "- Address: " msgstr "" #: src/client/game.cpp -msgid "Creating client..." +msgid "- Creative Mode: " msgstr "" #: src/client/game.cpp -msgid "Resolving address..." +msgid "- Damage: " msgstr "" #: src/client/game.cpp -msgid "Connecting to server..." +msgid "- Mode: " msgstr "" #: src/client/game.cpp -msgid "Item definitions..." +msgid "- Port: " msgstr "" #: src/client/game.cpp -msgid "Node definitions..." +msgid "- Public: " +msgstr "" + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +msgid "- PvP: " msgstr "" #: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" +msgid "- Server Name: " msgstr "" #: src/client/game.cpp @@ -1187,63 +1155,7 @@ msgid "Automatic forward disabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" +msgid "Automatic forward enabled" msgstr "" #: src/client/game.cpp @@ -1255,30 +1167,66 @@ msgid "Camera update enabled" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" +msgid "Change Password" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/client/game.cpp +msgid "Continue" msgstr "" #: src/client/game.cpp #, c-format -msgid "Viewing range changed to %d" +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" +msgid "Creating client..." msgstr "" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" +msgid "Creating server..." msgstr "" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" +msgid "Debug info and profiler graph hidden" msgstr "" #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" msgstr "" #: src/client/game.cpp @@ -1298,38 +1246,11 @@ msgid "" msgstr "" #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" +msgid "Disabled unlimited viewing range" msgstr "" #: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" +msgid "Enabled unlimited viewing range" msgstr "" #: src/client/game.cpp @@ -1340,20 +1261,44 @@ msgstr "" msgid "Exit to OS" msgstr "" +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + #: src/client/game.cpp msgid "Game info:" msgstr "" #: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " +msgid "Game paused" msgstr "" #: src/client/game.cpp @@ -1361,15 +1306,39 @@ msgid "Hosting server" msgstr "" #: src/client/game.cpp -msgid "- Port: " +msgid "Item definitions..." msgstr "" #: src/client/game.cpp -msgid "Singleplayer" +msgid "KiB/s" msgstr "" #: src/client/game.cpp -msgid "On" +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Node definitions..." msgstr "" #: src/client/game.cpp @@ -1377,34 +1346,87 @@ msgid "Off" msgstr "" #: src/client/game.cpp -msgid "- Damage: " +msgid "On" msgstr "" #: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " +msgid "Pitch move mode disabled" msgstr "" #: src/client/game.cpp -msgid "- Public: " +msgid "Pitch move mode enabled" msgstr "" #: src/client/game.cpp -msgid "- Server Name: " +msgid "Profiler graph shown" msgstr "" #: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." +msgid "Remote server" msgstr "" -#: src/client/gameui.cpp -msgid "Chat shown" +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "ok" msgstr "" #: src/client/gameui.cpp @@ -1412,7 +1434,7 @@ msgid "Chat hidden" msgstr "" #: src/client/gameui.cpp -msgid "HUD shown" +msgid "Chat shown" msgstr "" #: src/client/gameui.cpp @@ -1420,32 +1442,20 @@ msgid "HUD hidden" msgstr "" #: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" +msgid "HUD shown" msgstr "" #: src/client/gameui.cpp msgid "Profiler hidden" msgstr "" -#: src/client/keycode.cpp -msgid "Left Button" +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" msgstr "" #: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" +msgid "Apps" msgstr "" #: src/client/keycode.cpp @@ -1453,106 +1463,120 @@ msgid "Backspace" msgstr "" #: src/client/keycode.cpp -msgid "Tab" +msgid "Caps Lock" msgstr "" #: src/client/keycode.cpp msgid "Clear" msgstr "" -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - #: src/client/keycode.cpp msgid "Control" msgstr "" +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" msgstr "" #: src/client/keycode.cpp -msgid "Pause" +msgid "Middle Button" msgstr "" #: src/client/keycode.cpp -msgid "Caps Lock" +msgid "Num Lock" msgstr "" #: src/client/keycode.cpp -msgid "Space" +msgid "Numpad *" msgstr "" #: src/client/keycode.cpp -msgid "Page up" +msgid "Numpad +" msgstr "" #: src/client/keycode.cpp -msgid "Page down" +msgid "Numpad -" msgstr "" #: src/client/keycode.cpp -msgid "End" +msgid "Numpad ." msgstr "" #: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" +msgid "Numpad /" msgstr "" #: src/client/keycode.cpp @@ -1596,79 +1620,69 @@ msgid "Numpad 9" msgstr "" #: src/client/keycode.cpp -msgid "Numpad *" +msgid "OEM Clear" msgstr "" #: src/client/keycode.cpp -msgid "Numpad +" +msgid "Page down" msgstr "" #: src/client/keycode.cpp -msgid "Numpad ." +msgid "Page up" msgstr "" #: src/client/keycode.cpp -msgid "Numpad -" +msgid "Pause" msgstr "" #: src/client/keycode.cpp -msgid "Numpad /" +msgid "Play" +msgstr "" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" msgstr "" #: src/client/keycode.cpp -msgid "Num Lock" +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" msgstr "" #: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" +msgid "Right Button" msgstr "" #: src/client/keycode.cpp msgid "Right Control" msgstr "" -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - #: src/client/keycode.cpp msgid "Right Menu" msgstr "" #: src/client/keycode.cpp -msgid "IME Escape" +msgid "Right Shift" msgstr "" #: src/client/keycode.cpp -msgid "IME Convert" +msgid "Right Windows" msgstr "" #: src/client/keycode.cpp -msgid "IME Nonconvert" +msgid "Scroll Lock" +msgstr "" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" msgstr "" #: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" +msgid "Shift" msgstr "" #: src/client/keycode.cpp @@ -1676,19 +1690,57 @@ msgid "Sleep" msgstr "" #: src/client/keycode.cpp -msgid "Erase EOF" +msgid "Snapshot" msgstr "" #: src/client/keycode.cpp -msgid "Play" +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "" -#: src/client/keycode.cpp -msgid "OEM Clear" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" msgstr "" #: src/gui/guiConfirmRegistration.cpp @@ -1701,150 +1753,118 @@ msgid "" "creation, or click 'Cancel' to abort." msgstr "" -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" +msgid "Autoforward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" @@ -1853,16 +1873,36 @@ msgstr "" msgid "Toggle chat log" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" msgstr "" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "New Password" +msgid "Change" msgstr "" #: src/gui/guiPasswordChange.cpp @@ -1870,11 +1910,11 @@ msgid "Confirm Password" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "Change" +msgid "New Password" msgstr "" -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" msgstr "" #: src/gui/guiVolumeChange.cpp @@ -1885,6 +1925,10 @@ msgstr "" msgid "Muted" msgstr "" +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1898,199 +1942,12 @@ msgstr "" msgid "LANG_CODE" msgstr "" -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" @@ -2098,1406 +1955,103 @@ msgid "" "circle." msgstr "" -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." msgstr "" #: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." +msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "Leaves style" +msgid "2D noise that controls the shape/size of rolling hills." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" +msgid "2D noise that controls the shape/size of step mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." +msgid "2D noise that controls the size/occurrence of rolling hills." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds" +msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." +msgid "2D noise that locates the river valleys and channels." msgstr "" #: src/settings_translation_file.cpp msgid "3D clouds" msgstr "" -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - #: src/settings_translation_file.cpp msgid "3D mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "3D mode parallax strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + #: src/settings_translation_file.cpp msgid "" "3D support.\n" @@ -3513,198 +2067,97 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "3D mode parallax strength" +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." msgstr "" #: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." +msgid "A message to be displayed to all clients when the server crashes." msgstr "" #: src/settings_translation_file.cpp -msgid "Console height" +msgid "A message to be displayed to all clients when the server shuts down." msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgid "ABM interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Console color" +msgid "ABM time budget" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." +msgid "Absolute limit of queued blocks to emerge" msgstr "" #: src/settings_translation_file.cpp -msgid "Console alpha" +msgid "Acceleration in air" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgid "Acceleration of gravity, in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" +msgid "Active Block Modifiers" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." +msgid "Active block management interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" +msgid "Active block range" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" +msgid "Active object send range" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." msgstr "" #: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" +msgid "Adds particles when digging a node." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" +#, c-format +msgid "" +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." msgstr "" #: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgid "Always fly and fast" msgstr "" #: src/settings_translation_file.cpp @@ -3712,123 +2165,23 @@ msgid "Ambient occlusion gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." +msgid "Amount of messages a player may send per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Inventory items animations" +msgid "Amplifies the valleys." msgstr "" #: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." +msgid "Anisotropic filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "Fog start" +msgid "Announce server" msgstr "" #: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." +msgid "Announce to this serverlist." msgstr "" #: src/settings_translation_file.cpp @@ -3840,1074 +2193,23 @@ msgid "Append item name to tooltip." msgstr "" #: src/settings_translation_file.cpp -msgid "FreeType fonts" +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." msgstr "" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "At this distance the server will aggressively optimize which blocks are sent " @@ -4924,7 +2226,1378 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default stack size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS when unfocused or paused" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font bold by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font italic by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the default font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the fallback font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the monospace font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." msgstr "" #: src/settings_translation_file.cpp @@ -4937,7 +3610,1653 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost center" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost spread" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve high gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve low gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path of the fallback font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to save screenshots at. Can be an absolute or relative path.\n" +"The folder will be created if it doesn't already exist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prometheus listener address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Proportion of large caves that contain liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Regular font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" msgstr "" #: src/settings_translation_file.cpp @@ -4955,812 +5274,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." +msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp @@ -5768,127 +5282,7 @@ msgid "Ridge noise" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." +msgid "Ridge underwater noise" msgstr "" #: src/settings_translation_file.cpp @@ -5896,15 +5290,19 @@ msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." +msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Step mountain size noise" +msgid "River channel depth" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." +msgid "River channel width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River depth" msgstr "" #: src/settings_translation_file.cpp @@ -5912,102 +5310,115 @@ msgid "River noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." +msgid "River size" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain variation noise" +msgid "River valley width" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgid "Rollback recording" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" +msgid "Rolling hill size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." msgstr "" #: src/settings_translation_file.cpp -msgid "Ground level" +msgid "Screen height" msgstr "" #: src/settings_translation_file.cpp -msgid "Y of flat ground." +msgid "Screen width" msgstr "" #: src/settings_translation_file.cpp -msgid "Lake threshold" +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." msgstr "" #: src/settings_translation_file.cpp -msgid "Lake steepness" +msgid "Seabed noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." +msgid "Second of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Hill threshold" +msgid "Second of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." +msgid "Security" msgstr "" #: src/settings_translation_file.cpp -msgid "Hill steepness" +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." +msgid "Selection box border color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain noise" +msgid "Selection box color" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" +msgid "Selection box width" msgstr "" #: src/settings_translation_file.cpp @@ -6034,217 +5445,113 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Iterations" +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." msgstr "" #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia x" +msgid "Shader path" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia w" +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Show entity selection boxes\n" +"A restart is required after changing this." msgstr "" #: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" +msgid "Shutdown message" msgstr "" #: src/settings_translation_file.cpp @@ -6258,65 +5565,207 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen debug" +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." msgstr "" #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." +msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" +msgid "Slope and fill work together to modify the heights." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." +msgid "Small cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +msgid "Small cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." msgstr "" #: src/settings_translation_file.cpp -msgid "Online Content Repository" +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB URL" +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Surface level of optional water placed on a solid floatland layer.\n" +"Water is disabled by default and will only be placed if this value is set\n" +"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" +"upper tapering).\n" +"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" +"When enabling water placement the floatlands must be configured and tested\n" +"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" +"required value depending on 'mgv7_np_floatland'), to avoid\n" +"server-intensive extreme water flow and to avoid vast flooding of the\n" +"world surface below." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." msgstr "" #: src/settings_translation_file.cpp @@ -6324,16 +5773,607 @@ msgid "The URL for the content repository" msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" +msgid "The deadzone of the joystick" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "" + +#~ msgid "View" +#~ msgstr "Гледане" diff --git a/po/ca/minetest.po b/po/ca/minetest.po index 5ce219f7f..c0f126b83 100644 --- a/po/ca/minetest.po +++ b/po/ca/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Catalan (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: Catalan \n" "Language-Team: Czech 0." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Určuje oblasti létajících ostrovů s rovinný terénem.\n" -#~ "Terén bude rovný v místech, kde hodnota šumu bude větší než 0." - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "Ovládá šířku tunelů, menší hodnota vytváří širší tunely." - -#, fuzzy -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Stanovuje hustotu horského terénu na létajících ostrovech.\n" -#~ "Jedná se o posun přidaný k hodnotě šumu 'np_mountain'." +#~ "0 = parallax occlusion s informacemi o sklonu (rychlejší).\n" +#~ "1 = mapování reliéfu (pomalejší, ale přesnější)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -6990,11 +6982,188 @@ msgstr "cURL timeout" #~ "hodnoty.\n" #~ "Toto nastavení ovlivňuje pouze klienta a serverem není použito." -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Stahuji a instaluji $1, prosím čekejte..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Jste si jisti, že chcete resetovat místní svět?" #~ msgid "Back" #~ msgstr "Zpět" +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapování" + +#~ msgid "Config mods" +#~ msgstr "Nastavení modů" + +#~ msgid "Configure" +#~ msgstr "Nastavit" + +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Stanovuje hustotu horského terénu na létajících ostrovech.\n" +#~ "Jedná se o posun přidaný k hodnotě šumu 'np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "Ovládá šířku tunelů, menší hodnota vytváří širší tunely." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Barva zaměřovače (R,G,B)." + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Určuje oblasti létajících ostrovů s rovinný terénem.\n" +#~ "Terén bude rovný v místech, kde hodnota šumu bude větší než 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Určuje vyhlazovací krok textur.\n" +#~ "Vyšší hodnota znamená vyhlazenější normálové mapy." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Stahuji a instaluji $1, prosím čekejte..." + +#~ msgid "Enable VBO" +#~ msgstr "Zapnout VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Povolí bump mapping textur. Balík textur buď poskytne normálové mapy,\n" +#~ "nebo musí být automaticky vytvořeny.\n" +#~ "Nastavení vyžaduje zapnuté shadery." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Zapne filmový tone mapping" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Zapne generování normálových map za běhu (efekt protlačení).\n" +#~ "Nastavení vyžaduje zapnutý bump mapping." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Zapne parallax occlusion mapping.\n" +#~ "Nastavení vyžaduje zapnuté shadery." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentální nastavení, může zapříčinit viditelné mezery mezi bloky,\n" +#~ "je-li nastaveno na vyšší číslo než 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS v menu pauzy" + +#~ msgid "Floatland base height noise" +#~ msgstr "Šum základní výšky létajících ostrovů" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Neprůhlednost stínu písma (od 0 do 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Generovat Normální Mapy" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generovat normálové mapy" + +#~ msgid "IPv6 support." +#~ msgstr "" +#~ "Nastavuje reálnou délku dne.\n" +#~ "Např.: 72 = 20 minut, 360 = 4 minuty, 1 = 24 hodin, 0 = čas zůstává stále " +#~ "stejný." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "Hloubka velké jeskyně" + +#~ msgid "Main" +#~ msgstr "Hlavní nabídka" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Skript hlavní nabídky" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa v režimu radar, Přiblížení x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa v režimu radar, Přiblížení x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa v režimu povrch, Přiblížení x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa v režimu povrch, Přiblížení x4" + +#~ msgid "Name/Password" +#~ msgstr "Jméno/Heslo" + +#~ msgid "No" +#~ msgstr "Ne" + #~ msgid "Ok" #~ msgstr "OK" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Náklon parallax occlusion" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Počet iterací parallax occlusion" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Režim parallax occlusion" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Škála parallax occlusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reset místního světa" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "Vybrat soubor s modem:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Start místní hry" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Síla vygenerovaných normálových map." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Plynulá kamera" + +#~ msgid "Waving Water" +#~ msgstr "Vlnění vody" + +#~ msgid "Waving water" +#~ msgstr "Vlnění vody" + +#~ msgid "Yes" +#~ msgstr "Ano" diff --git a/po/da/minetest.po b/po/da/minetest.po index 931e3dbbf..efa336141 100644 --- a/po/da/minetest.po +++ b/po/da/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Danish (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-03-31 10:14+0000\n" "Last-Translator: sfan5 \n" "Language-Team: Danish \n" "Language-Team: German 0 ist." -#~ msgid "Darkness sharpness" -#~ msgstr "Dunkelheits-Steilheit" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." #~ msgstr "" -#~ "Legt die Breite von Tunneln fest; ein kleinerer Wert erzeugt breitere " -#~ "Tunnel." +#~ "Definiert die Sampling-Schrittgröße der Textur.\n" +#~ "Ein höherer Wert resultiert in weichere Normal-Maps." #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Deprecated, define and locate cave liquids using biome definitions " +#~ "instead.\n" +#~ "Y of upper limit of lava in large caves." #~ msgstr "" -#~ "Legt die Dichte von Gebirgen in den Schwebeländern fest.\n" -#~ "Dies ist ein Versatz, der zum Rauschwert „mgv7_np_mountain“ addiert wird." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Mitte der Lichtkurven-Mittenverstärkung." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Verändert, wie Schwebeländer des Bergtyps sich über und unter dem " -#~ "Mittelpunkt zuspitzen." - -#~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." -#~ msgstr "" -#~ "Ändert die Gammakodierung der Lichttabellen. Kleinere Werte sind heller.\n" -#~ "Diese Einstellung ist rein clientseitig und wird vom Server ignoriert." - -#~ msgid "Path to save screenshots at." -#~ msgstr "Pfad, in dem Bildschirmfotos abgespeichert werden." - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Parallax-Occlusion-Stärke" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Erzeugungswarteschlangengrenze auf Festspeicher" +#~ "Misbilligte Einstellung. Definieren/Finden Sie statdessen " +#~ "Höhlenflüssigkeiten in Biomdefinitionen.\n" +#~ "Y der Obergrenze von Lava in großen Höhlen." #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "$1 wird heruntergeladen und installiert, bitte warten …" -#~ msgid "Back" -#~ msgstr "Rücktaste" +#~ msgid "Enable VBO" +#~ msgstr "VBO aktivieren" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktiviert das Bump-Mapping für Texturen. Normal-Maps müssen im " +#~ "Texturenpaket\n" +#~ "vorhanden sein oder müssen automatisch erzeugt werden.\n" +#~ "Shader müssen aktiviert werden, bevor diese Einstellung aktiviert werden " +#~ "kann." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Aktiviert filmisches Tone-Mapping" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Aktiviert die spontane Normalmap-Erzeugung (Prägungseffekt).\n" +#~ "Für diese Einstellung muss außerdem Bump-Mapping aktiviert sein." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktiviert Parralax-Occlusion-Mapping.\n" +#~ "Hierfür müssen Shader aktiviert sein." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentelle Einstellung, könnte sichtbare Leerräume zwischen\n" +#~ "Blöcken verursachen, wenn auf einen Wert größer 0 gesetzt." + +#~ msgid "FPS in pause menu" +#~ msgstr "Bildwiederholrate im Pausenmenü" + +#~ msgid "Floatland base height noise" +#~ msgstr "Schwebeland-Basishöhenrauschen" + +#~ msgid "Floatland mountain height" +#~ msgstr "Schwebelandberghöhe" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "" +#~ "Undurchsichtigkeit des Schattens der Schrift (Wert zwischen 0 und 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Normalmaps generieren" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normalmaps generieren" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6-Unterstützung." + +#~ msgid "Lava depth" +#~ msgstr "Lavatiefe" + +#~ msgid "Lightness sharpness" +#~ msgstr "Helligkeitsschärfe" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Erzeugungswarteschlangengrenze auf Festspeicher" + +#~ msgid "Main" +#~ msgstr "Hauptmenü" + +#~ msgid "Main menu style" +#~ msgstr "Hauptmenü-Stil" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Übersichtskarte im Radarmodus, Zoom ×2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Übersichtskarte im Radarmodus, Zoom ×4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Übersichtskarte im Bodenmodus, Zoom ×2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Übersichtskarte im Bodenmodus, Zoom ×4" + +#~ msgid "Name/Password" +#~ msgstr "Name/Passwort" + +#~ msgid "No" +#~ msgstr "Nein" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normalmaps-Sampling" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normalmap-Stärke" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Anzahl der Parallax-Occlusion-Iterationen." #~ msgid "Ok" #~ msgstr "OK" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Startwert des Parallax-Occlusion-Effektes, üblicherweise Skalierung " +#~ "geteilt durch 2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Gesamtskalierung des Parallax-Occlusion-Effektes." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax-Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax-Occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Parallax-Occlusion-Startwert" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Parallax-Occlusion-Iterationen" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Parallax-Occlusion-Modus" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax-Occlusion-Skalierung" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Parallax-Occlusion-Stärke" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Pfad zu einer TrueType- oder Bitmap-Schrift." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Pfad, in dem Bildschirmfotos abgespeichert werden." + +#~ msgid "Projecting dungeons" +#~ msgstr "Herausragende Verliese" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Einzelspielerwelt zurücksetzen" + +#~ msgid "Select Package File:" +#~ msgstr "Paket-Datei auswählen:" + +#~ msgid "Shadow limit" +#~ msgstr "Schattenbegrenzung" + +#~ msgid "Start Singleplayer" +#~ msgstr "Einzelspieler starten" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Stärke der generierten Normalmaps." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Stärke der Lichtkurven-Mittenverstärkung." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Diese Schrift wird von bestimmten Sprachen benutzt." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Filmmodus umschalten" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Typische Maximalhöhe, über und unter dem Mittelpunkt von Gebirgen in den\n" +#~ "Schwebeländern." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variierung der Hügelhöhe und Seetiefe in den ruhig verlaufenden\n" +#~ "Regionen der Schwebeländer." + +#~ msgid "View" +#~ msgstr "Ansehen" + +#~ msgid "Waving Water" +#~ msgstr "Wasserwellen" + +#~ msgid "Waving water" +#~ msgstr "Wasserwellen" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Ob Verliese manchmal aus dem Gelände herausragen." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y-Wert der Obergrenze von Lava in großen Höhlen." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "Y-Höhe vom Mittelpunkt der Schwebeländer sowie\n" +#~ "des Wasserspiegels von Seen." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-Höhe, bis zu der sich die Schatten der Schwebeländer ausbreiten." + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/dv/minetest.po b/po/dv/minetest.po index c5d325108..6182c0de3 100644 --- a/po/dv/minetest.po +++ b/po/dv/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Dhivehi (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2019-11-10 15:04+0000\n" "Last-Translator: Krock \n" "Language-Team: Dhivehi \n" "Language-Team: Greek \n" "Language-Team: Esperanto 0." -#~ msgstr "" -#~ "Difinas zonojn de glata tereno sur fluginsuloj.\n" -#~ "Glataj fluginsuloj okazas kiam bruo superas nulon." - -#~ msgid "Darkness sharpness" -#~ msgstr "Akreco de mallumo" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Regas larĝecon de tuneloj; pli malgranda valoro kreas pri larĝajn " -#~ "tunelojn." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Regas densecon de montecaj fluginsuloj.\n" -#~ "Temas pri deŝovo de la brua valoro «np_mountain»." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Ŝanĝas kiel montecaj fluginsuloj maldikiĝas super kaj sub la mezpunkto." +#~ "0 = paralaksa ombrigo kun klinaj informoj (pli rapida).\n" +#~ "1 = reliefa mapado (pli preciza)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7289,20 +7242,273 @@ msgstr "cURL tempolimo" #~ "helaj.\n" #~ "Ĉi tiu agordo estas klientflanka, kaj serviloj ĝin malatentos." -#~ msgid "Path to save screenshots at." -#~ msgstr "Dosierindiko por konservi ekrankopiojn." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Ŝanĝas kiel montecaj fluginsuloj maldikiĝas super kaj sub la mezpunkto." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Potenco de paralaksa ombrigo" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limo de viceroj enlegotaj de disko" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Elŝutante kaj instalante $1, bonvolu atendi…" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Ĉu vi certas, ke vi volas rekomenci vian mondon por unu ludanto?" #~ msgid "Back" #~ msgstr "Reeniri" +#~ msgid "Bump Mapping" +#~ msgstr "Tubera mapado" + +#~ msgid "Bumpmapping" +#~ msgstr "Mapado de elstaraĵoj" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Ŝanĝoj al fasado de la ĉefmenuo:\n" +#~ "- full (plena): Pluraj mondoj por unu ludanto, elektilo de ludo, " +#~ "teksturaro, ktp.\n" +#~ "- simple (simpla): Unu mondo por unu ludanto, neniuj elektiloj de ludo " +#~ "aŭ teksturaro.\n" +#~ "Povus esti bezona por malgrandaj ekranoj." + +#~ msgid "Config mods" +#~ msgstr "Agordi modifaĵojn" + +#~ msgid "Configure" +#~ msgstr "Agordi" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Regas densecon de montecaj fluginsuloj.\n" +#~ "Temas pri deŝovo de la brua valoro «np_mountain»." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Regas larĝecon de tuneloj; pli malgranda valoro kreas pri larĝajn " +#~ "tunelojn." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Koloro de celilo (R,V,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Akreco de mallumo" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Difinas zonojn de glata tereno sur fluginsuloj.\n" +#~ "Glataj fluginsuloj okazas kiam bruo superas nulon." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Difinas glatigan paŝon de teksturoj.\n" +#~ "Pli alta valoro signifas pli glatajn normalmapojn." + +#~ msgid "" +#~ "Deprecated, define and locate cave liquids using biome definitions " +#~ "instead.\n" +#~ "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Evitinda, difini kaj trovi kavernajn fluaĵojn anstataŭe per klimataj " +#~ "difinoj\n" +#~ "Y de supra limo de lafo en grandaj kavernoj." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Elŝutante kaj instalante $1, bonvolu atendi…" + +#~ msgid "Enable VBO" +#~ msgstr "Ŝalti VBO(Vertex Buffer Object)" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ŝaltas mapadon de elstaraĵoj por teksturoj. Normalmapoj devas veni kun la " +#~ "teksturaro,\n" +#~ "aŭ estiĝi memage.\n" +#~ "Bezonas ŝaltitajn ombrigilojn." + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Ŝaltas dumludan estigadon de normalmapoj (Reliefiga efekto).\n" +#~ "Bezonas ŝaltitan mapadon de elstaraĵoj." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ŝaltas mapadon de paralaksa ombrigo.\n" +#~ "Bezonas ŝaltitajn ombrigilojn." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Prova elekteblo; povas estigi videblajn spacojn inter monderoj\n" +#~ "je nombro super 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "Kadroj sekunde en paŭza menuo" + +#~ msgid "Floatland base height noise" +#~ msgstr "Bruo de baza alteco de fluginsuloj" + +#~ msgid "Floatland mountain height" +#~ msgstr "Alteco de fluginsulaj montoj" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Maltravidebleco de tipara ombro (inter 0 kaj 255)." + +#~ msgid "Gamma" +#~ msgstr "Helĝustigo" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Estigi Normalmapojn" + +#~ msgid "Generate normalmaps" +#~ msgstr "Estigi normalmapojn" + +#~ msgid "IPv6 support." +#~ msgstr "Subteno de IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Lafo-profundeco" + +#~ msgid "Lightness sharpness" +#~ msgstr "Akreco de heleco" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limo de viceroj enlegotaj de disko" + +#~ msgid "Main" +#~ msgstr "Ĉefmenuo" + +#~ msgid "Main menu style" +#~ msgstr "Stilo de ĉefmenuo" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Mapeto en radara reĝimo, zomo ×2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Mapeto en radara reĝimo, zomo ×4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Mapeto en supraĵa reĝimo, zomo ×2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Mapeto en supraĵa reĝimo, zomo ×4" + +#~ msgid "Name/Password" +#~ msgstr "Nomo/Pasvorto" + +#~ msgid "No" +#~ msgstr "Ne" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normalmapa specimenado" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normalmapa potenco" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Nombro da iteracioj de paralaksa ombrigo." + #~ msgid "Ok" #~ msgstr "Bone" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Entuta ekarto de la efiko de paralaksa ombrigo, kutime skalo/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Entuta vasteco de paralaksa ombrigo." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Paralaksa ombrigo" + +#~ msgid "Parallax occlusion" +#~ msgstr "Paralaksa ombrigo" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Ekarto de paralaksa okludo" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iteracioj de paralaksa ombrigo" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Reĝimo de paralaksa ombrigo" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skalo de paralaksa ombrigo" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Potenco de paralaksa ombrigo" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Dosierindiko al tiparo «TrueType» aŭ bitbildo." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Dosierindiko por konservi ekrankopiojn." + +#~ msgid "Projecting dungeons" +#~ msgstr "Planante forgeskelojn" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Rekomenci mondon por unu ludanto" + +#~ msgid "Select Package File:" +#~ msgstr "Elekti pakaĵan dosieron:" + +#~ msgid "Shadow limit" +#~ msgstr "Limo por ombroj" + +#~ msgid "Start Singleplayer" +#~ msgstr "Komenci ludon por unu" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Forteco de estigitaj normalmapoj." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Tiu ĉi tiparo uziĝos por iuj lingvoj." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Baskuligi glitan vidpunkton" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Ordinara plejalto, super kaj sub la mezpunkto, de fluginsulaj montoj." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variaĵo de alteco de montetoj kaj profundeco de lagoj sur glata tereno de " +#~ "fluginsuloj." + +#~ msgid "View" +#~ msgstr "Vido" + +#~ msgid "Waving Water" +#~ msgstr "Ondanta akvo" + +#~ msgid "Waving water" +#~ msgstr "Ondanta akvo" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y de supera limo de grandaj kvazaŭ-hazardaj kavernoj." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-nivelo kien etendiĝas ombroj de fluginsuloj." + +#~ msgid "Yes" +#~ msgstr "Jes" diff --git a/po/es/minetest.po b/po/es/minetest.po index 6b4d4c8cd..61d444026 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-12-24 05:29+0000\n" "Last-Translator: cypMon \n" "Language-Team: Spanish 0." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Define áreas de terreno liso flotante.\n" -#~ "Las zonas flotantes lisas se producen cuando el ruido > 0." - -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "Agudeza de la obscuridad" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Controla el ancho de los túneles, un valor menor crea túneles más anchos." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Controla la densidad del terreno montañoso flotante.\n" -#~ "Se agrega un desplazamiento al valor de ruido 'mgv7_np_mountain'." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Modifica cómo las tierras flotantes del tipo montaña aparecen arriba y " -#~ "abajo del punto medio." +#~ "0 = oclusión de paralaje con información de inclinación (más rápido).\n" +#~ "1 = mapa de relieve (más lento, más preciso)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7147,14 +7127,221 @@ msgstr "Tiempo de espera de cURL" #~ "mayores son mas brillantes.\n" #~ "Este ajuste es solo para cliente y es ignorado por el servidor." -#~ msgid "Path to save screenshots at." -#~ msgstr "Ruta para guardar las capturas de pantalla." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Modifica cómo las tierras flotantes del tipo montaña aparecen arriba y " +#~ "abajo del punto medio." -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Descargando e instalando $1, por favor espere..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "¿Estás seguro de querer reiniciar el mundo de un jugador?" #~ msgid "Back" #~ msgstr "Atrás" +#~ msgid "Bump Mapping" +#~ msgstr "Mapeado de relieve" + +#~ msgid "Bumpmapping" +#~ msgstr "Mapeado de relieve" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Cambia la UI del menú principal:\n" +#~ "- Completo: Múltiples mundos, elección de juegos y texturas, etc.\n" +#~ "- Simple: Un solo mundo, sin elección de juegos o texturas.\n" +#~ "Puede ser necesario en pantallas pequeñas." + +#~ msgid "Config mods" +#~ msgstr "Configurar mods" + +#~ msgid "Configure" +#~ msgstr "Configurar" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Controla la densidad del terreno montañoso flotante.\n" +#~ "Se agrega un desplazamiento al valor de ruido 'mgv7_np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Controla el ancho de los túneles, un valor menor crea túneles más anchos." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Color de la cruz (R,G,B)." + +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "Agudeza de la obscuridad" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Define áreas de terreno liso flotante.\n" +#~ "Las zonas flotantes lisas se producen cuando el ruido > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Define el intervalo de muestreo de las texturas.\n" +#~ "Un valor más alto causa mapas de relieve más suaves." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Descargando e instalando $1, por favor espere..." + +#~ msgid "Enable VBO" +#~ msgstr "Activar VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Habilita mapeado de relieves para las texturas. El mapeado de normales " +#~ "necesita ser\n" +#~ "suministrados por el paquete de texturas, o será generado " +#~ "automaticamente.\n" +#~ "Requiere habilitar sombreadores." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Habilita el mapeado de tonos fílmico" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Habilita la generación de mapas de normales (efecto realzado) en el " +#~ "momento.\n" +#~ "Requiere habilitar mapeado de relieve." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Habilita mapeado de oclusión de paralaje.\n" +#~ "Requiere habilitar sombreadores." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Opción experimental, puede causar espacios visibles entre los\n" +#~ "bloques si se le da un valor mayor a 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS (cuadros/s) en el menú de pausa" + +#~ msgid "Floatland base height noise" +#~ msgstr "Ruido de altura base para tierra flotante" + +#~ msgid "Floatland mountain height" +#~ msgstr "Altura de las montañas en tierras flotantes" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Alfa de sombra de fuentes (opacidad, entre 0 y 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Generar mapas normales" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generar mapas normales" + +#~ msgid "IPv6 support." +#~ msgstr "soporte IPv6." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "Características de la Lava" + +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Estilo del menú principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa en modo radar, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa en modo radar, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa en modo superficie, Zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa en modo superficie, Zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Nombre / contraseña" + +#~ msgid "No" +#~ msgstr "No" + #~ msgid "Ok" #~ msgstr "Aceptar" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion bias" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion mode" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Oclusión de paralaje" + +#~ msgid "Path to save screenshots at." +#~ msgstr "Ruta para guardar las capturas de pantalla." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reiniciar mundo de un jugador" + +#~ msgid "Select Package File:" +#~ msgstr "Seleccionar el archivo del paquete:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Comenzar un jugador" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Fuerza de los mapas normales generados." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Activar cinemático" + +#~ msgid "View" +#~ msgstr "Ver" + +#~ msgid "Waving Water" +#~ msgstr "Oleaje" + +#~ msgid "Waving water" +#~ msgstr "Oleaje en el agua" + +#~ msgid "Yes" +#~ msgstr "Sí" diff --git a/po/et/minetest.po b/po/et/minetest.po index 23fa62808..bfb8fbcd5 100644 --- a/po/et/minetest.po +++ b/po/et/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Estonian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-12-05 15:29+0000\n" "Last-Translator: Janar Leas \n" "Language-Team: Estonian \n" "Language-Team: Basque \n" "Language-Team: Finnish "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" msgstr "" #. ~ "defaults" is a noise parameter flag. @@ -517,76 +645,12 @@ msgstr "" msgid "eased" msgstr "" -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" +msgid "$1 mods" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -594,11 +658,7 @@ msgid "Failed to install $1 to $2" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" +msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -606,15 +666,7 @@ msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -622,11 +674,47 @@ msgid "Install: file: \"$1\"" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" +msgid "Unable to find a valid mod or modpack" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Ladataan..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" msgstr "" #: builtin/mainmenu/tab_content.lua @@ -634,7 +722,7 @@ msgid "Installed Packages:" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Browse online content" +msgid "No dependencies." msgstr "" #: builtin/mainmenu/tab_content.lua @@ -645,36 +733,12 @@ msgstr "" msgid "Rename" msgstr "" -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" +msgid "Use Texture Pack" msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -682,63 +746,73 @@ msgid "Active Contributors" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Port" +msgid "Creative Mode" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -746,7 +820,19 @@ msgid "Play Game" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -757,95 +843,51 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Favorite" msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua +msgid "PvP enabled" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "2x" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "4x" msgstr "" @@ -855,63 +897,19 @@ msgid "8x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" +msgid "All Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" +msgid "Bilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp @@ -919,15 +917,87 @@ msgid "Change Keys" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" +msgid "Connected Glass" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" +msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp @@ -935,49 +1005,41 @@ msgid "Tone Mapping" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" +msgid "Touchthreshold: (px)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" +msgid "Trilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + #: src/client/client.cpp msgid "Loading textures..." msgstr "" @@ -986,46 +1048,10 @@ msgstr "" msgid "Rebuilding shaders..." msgstr "" -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "" -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" msgstr "" @@ -1034,6 +1060,30 @@ msgstr "" msgid "Invalid gamespec." msgstr "" +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" #. into the translation field (literally). @@ -1047,128 +1097,42 @@ msgid "needs_fallback_font" msgstr "" #: src/client/game.cpp -msgid "Shutting down..." +msgid "" +"\n" +"Check debug.txt for details." msgstr "" #: src/client/game.cpp -msgid "Creating server..." +msgid "- Address: " msgstr "" #: src/client/game.cpp -msgid "Creating client..." +msgid "- Creative Mode: " msgstr "" #: src/client/game.cpp -msgid "Resolving address..." +msgid "- Damage: " msgstr "" #: src/client/game.cpp -msgid "Connecting to server..." +msgid "- Mode: " msgstr "" #: src/client/game.cpp -msgid "Item definitions..." +msgid "- Port: " msgstr "" #: src/client/game.cpp -msgid "Node definitions..." +msgid "- Public: " +msgstr "" + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +msgid "- PvP: " msgstr "" #: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" +msgid "- Server Name: " msgstr "" #: src/client/game.cpp @@ -1176,63 +1140,7 @@ msgid "Automatic forward disabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" +msgid "Automatic forward enabled" msgstr "" #: src/client/game.cpp @@ -1244,30 +1152,66 @@ msgid "Camera update enabled" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" +msgid "Change Password" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/client/game.cpp +msgid "Continue" msgstr "" #: src/client/game.cpp #, c-format -msgid "Viewing range changed to %d" +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" +msgid "Creating client..." msgstr "" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" +msgid "Creating server..." msgstr "" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" +msgid "Debug info and profiler graph hidden" msgstr "" #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" msgstr "" #: src/client/game.cpp @@ -1287,38 +1231,11 @@ msgid "" msgstr "" #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" +msgid "Disabled unlimited viewing range" msgstr "" #: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" +msgid "Enabled unlimited viewing range" msgstr "" #: src/client/game.cpp @@ -1329,20 +1246,44 @@ msgstr "" msgid "Exit to OS" msgstr "" +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + #: src/client/game.cpp msgid "Game info:" msgstr "" #: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " +msgid "Game paused" msgstr "" #: src/client/game.cpp @@ -1350,15 +1291,39 @@ msgid "Hosting server" msgstr "" #: src/client/game.cpp -msgid "- Port: " +msgid "Item definitions..." msgstr "" #: src/client/game.cpp -msgid "Singleplayer" +msgid "KiB/s" msgstr "" #: src/client/game.cpp -msgid "On" +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Node definitions..." msgstr "" #: src/client/game.cpp @@ -1366,34 +1331,87 @@ msgid "Off" msgstr "" #: src/client/game.cpp -msgid "- Damage: " +msgid "On" msgstr "" #: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " +msgid "Pitch move mode disabled" msgstr "" #: src/client/game.cpp -msgid "- Public: " +msgid "Pitch move mode enabled" msgstr "" #: src/client/game.cpp -msgid "- Server Name: " +msgid "Profiler graph shown" msgstr "" #: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." +msgid "Remote server" msgstr "" -#: src/client/gameui.cpp -msgid "Chat shown" +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "ok" msgstr "" #: src/client/gameui.cpp @@ -1401,7 +1419,7 @@ msgid "Chat hidden" msgstr "" #: src/client/gameui.cpp -msgid "HUD shown" +msgid "Chat shown" msgstr "" #: src/client/gameui.cpp @@ -1409,32 +1427,20 @@ msgid "HUD hidden" msgstr "" #: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" +msgid "HUD shown" msgstr "" #: src/client/gameui.cpp msgid "Profiler hidden" msgstr "" -#: src/client/keycode.cpp -msgid "Left Button" +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" msgstr "" #: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" +msgid "Apps" msgstr "" #: src/client/keycode.cpp @@ -1442,106 +1448,120 @@ msgid "Backspace" msgstr "" #: src/client/keycode.cpp -msgid "Tab" +msgid "Caps Lock" msgstr "" #: src/client/keycode.cpp msgid "Clear" msgstr "" -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - #: src/client/keycode.cpp msgid "Control" msgstr "" +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" msgstr "" #: src/client/keycode.cpp -msgid "Pause" +msgid "Middle Button" msgstr "" #: src/client/keycode.cpp -msgid "Caps Lock" +msgid "Num Lock" msgstr "" #: src/client/keycode.cpp -msgid "Space" +msgid "Numpad *" msgstr "" #: src/client/keycode.cpp -msgid "Page up" +msgid "Numpad +" msgstr "" #: src/client/keycode.cpp -msgid "Page down" +msgid "Numpad -" msgstr "" #: src/client/keycode.cpp -msgid "End" +msgid "Numpad ." msgstr "" #: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" +msgid "Numpad /" msgstr "" #: src/client/keycode.cpp @@ -1585,79 +1605,69 @@ msgid "Numpad 9" msgstr "" #: src/client/keycode.cpp -msgid "Numpad *" +msgid "OEM Clear" msgstr "" #: src/client/keycode.cpp -msgid "Numpad +" +msgid "Page down" msgstr "" #: src/client/keycode.cpp -msgid "Numpad ." +msgid "Page up" msgstr "" #: src/client/keycode.cpp -msgid "Numpad -" +msgid "Pause" msgstr "" #: src/client/keycode.cpp -msgid "Numpad /" +msgid "Play" +msgstr "" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" msgstr "" #: src/client/keycode.cpp -msgid "Num Lock" +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" msgstr "" #: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" +msgid "Right Button" msgstr "" #: src/client/keycode.cpp msgid "Right Control" msgstr "" -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - #: src/client/keycode.cpp msgid "Right Menu" msgstr "" #: src/client/keycode.cpp -msgid "IME Escape" +msgid "Right Shift" msgstr "" #: src/client/keycode.cpp -msgid "IME Convert" +msgid "Right Windows" msgstr "" #: src/client/keycode.cpp -msgid "IME Nonconvert" +msgid "Scroll Lock" +msgstr "" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" msgstr "" #: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" +msgid "Shift" msgstr "" #: src/client/keycode.cpp @@ -1665,19 +1675,57 @@ msgid "Sleep" msgstr "" #: src/client/keycode.cpp -msgid "Erase EOF" +msgid "Snapshot" msgstr "" #: src/client/keycode.cpp -msgid "Play" +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "" -#: src/client/keycode.cpp -msgid "OEM Clear" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" msgstr "" #: src/gui/guiConfirmRegistration.cpp @@ -1690,150 +1738,118 @@ msgid "" "creation, or click 'Cancel' to abort." msgstr "" -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" +msgid "Autoforward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" @@ -1842,16 +1858,36 @@ msgstr "" msgid "Toggle chat log" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" msgstr "" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "New Password" +msgid "Change" msgstr "" #: src/gui/guiPasswordChange.cpp @@ -1859,11 +1895,11 @@ msgid "Confirm Password" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "Change" +msgid "New Password" msgstr "" -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" msgstr "" #: src/gui/guiVolumeChange.cpp @@ -1874,6 +1910,10 @@ msgstr "" msgid "Muted" msgstr "" +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1887,199 +1927,12 @@ msgstr "" msgid "LANG_CODE" msgstr "" -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" @@ -2087,1406 +1940,103 @@ msgid "" "circle." msgstr "" -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." msgstr "" #: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." +msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "Leaves style" +msgid "2D noise that controls the shape/size of rolling hills." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" +msgid "2D noise that controls the shape/size of step mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." +msgid "2D noise that controls the size/occurrence of rolling hills." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds" +msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." +msgid "2D noise that locates the river valleys and channels." msgstr "" #: src/settings_translation_file.cpp msgid "3D clouds" msgstr "" -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - #: src/settings_translation_file.cpp msgid "3D mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "3D mode parallax strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + #: src/settings_translation_file.cpp msgid "" "3D support.\n" @@ -3502,198 +2052,97 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "3D mode parallax strength" +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." msgstr "" #: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." +msgid "A message to be displayed to all clients when the server crashes." msgstr "" #: src/settings_translation_file.cpp -msgid "Console height" +msgid "A message to be displayed to all clients when the server shuts down." msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgid "ABM interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Console color" +msgid "ABM time budget" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." +msgid "Absolute limit of queued blocks to emerge" msgstr "" #: src/settings_translation_file.cpp -msgid "Console alpha" +msgid "Acceleration in air" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgid "Acceleration of gravity, in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" +msgid "Active Block Modifiers" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." +msgid "Active block management interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" +msgid "Active block range" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" +msgid "Active object send range" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." msgstr "" #: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" +msgid "Adds particles when digging a node." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" +#, c-format +msgid "" +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." msgstr "" #: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgid "Always fly and fast" msgstr "" #: src/settings_translation_file.cpp @@ -3701,123 +2150,23 @@ msgid "Ambient occlusion gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." +msgid "Amount of messages a player may send per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Inventory items animations" +msgid "Amplifies the valleys." msgstr "" #: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." +msgid "Anisotropic filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "Fog start" +msgid "Announce server" msgstr "" #: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." +msgid "Announce to this serverlist." msgstr "" #: src/settings_translation_file.cpp @@ -3829,1074 +2178,23 @@ msgid "Append item name to tooltip." msgstr "" #: src/settings_translation_file.cpp -msgid "FreeType fonts" +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." msgstr "" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "At this distance the server will aggressively optimize which blocks are sent " @@ -4913,7 +2211,1378 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default stack size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS when unfocused or paused" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font bold by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font italic by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the default font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the fallback font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the monospace font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." msgstr "" #: src/settings_translation_file.cpp @@ -4926,7 +3595,1653 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost center" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost spread" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve high gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve low gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path of the fallback font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to save screenshots at. Can be an absolute or relative path.\n" +"The folder will be created if it doesn't already exist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prometheus listener address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Proportion of large caves that contain liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Regular font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" msgstr "" #: src/settings_translation_file.cpp @@ -4944,812 +5259,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." +msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp @@ -5757,127 +5267,7 @@ msgid "Ridge noise" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." +msgid "Ridge underwater noise" msgstr "" #: src/settings_translation_file.cpp @@ -5885,15 +5275,19 @@ msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." +msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Step mountain size noise" +msgid "River channel depth" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." +msgid "River channel width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River depth" msgstr "" #: src/settings_translation_file.cpp @@ -5901,102 +5295,115 @@ msgid "River noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." +msgid "River size" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain variation noise" +msgid "River valley width" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgid "Rollback recording" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" +msgid "Rolling hill size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." msgstr "" #: src/settings_translation_file.cpp -msgid "Ground level" +msgid "Screen height" msgstr "" #: src/settings_translation_file.cpp -msgid "Y of flat ground." +msgid "Screen width" msgstr "" #: src/settings_translation_file.cpp -msgid "Lake threshold" +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." msgstr "" #: src/settings_translation_file.cpp -msgid "Lake steepness" +msgid "Seabed noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." +msgid "Second of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Hill threshold" +msgid "Second of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." +msgid "Security" msgstr "" #: src/settings_translation_file.cpp -msgid "Hill steepness" +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." +msgid "Selection box border color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain noise" +msgid "Selection box color" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" +msgid "Selection box width" msgstr "" #: src/settings_translation_file.cpp @@ -6023,217 +5430,113 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Iterations" +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." msgstr "" #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia x" +msgid "Shader path" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia w" +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Show entity selection boxes\n" +"A restart is required after changing this." msgstr "" #: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" +msgid "Shutdown message" msgstr "" #: src/settings_translation_file.cpp @@ -6247,65 +5550,207 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen debug" +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." msgstr "" #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." +msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" +msgid "Slope and fill work together to modify the heights." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." +msgid "Small cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +msgid "Small cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." msgstr "" #: src/settings_translation_file.cpp -msgid "Online Content Repository" +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB URL" +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Surface level of optional water placed on a solid floatland layer.\n" +"Water is disabled by default and will only be placed if this value is set\n" +"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" +"upper tapering).\n" +"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" +"When enabling water placement the floatlands must be configured and tested\n" +"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" +"required value depending on 'mgv7_np_floatland'), to avoid\n" +"server-intensive extreme water flow and to avoid vast flooding of the\n" +"world surface below." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." msgstr "" #: src/settings_translation_file.cpp @@ -6313,16 +5758,604 @@ msgid "The URL for the content repository" msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" +msgid "The deadzone of the joystick" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" msgstr "" diff --git a/po/fr/minetest.po b/po/fr/minetest.po index dc58ddd3c..a6201c240 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-10-25 19:26+0000\n" "Last-Translator: William Desportes \n" "Language-Team: French 0." -#~ msgstr "" -#~ "Défini les zones de terrain plat flottant.\n" -#~ "Des terrains plats flottants apparaissent lorsque le bruit > 0." - -#~ msgid "Darkness sharpness" -#~ msgstr "Démarcation de l'obscurité" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Contrôle la largeur des tunnels, une valeur plus petite crée des tunnels " -#~ "plus larges." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Contrôle la densité des terrains montagneux sur les terres flottantes.\n" -#~ "C'est un décalage ajouté à la valeur du bruit 'mgv7_np_mountain'." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Milieu de la courbe de lumière mi-boost." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Modifie la façon dont les terres flottantes montagneuses s’effilent au-" -#~ "dessus et au-dessous du point médian." +#~ "0 = occlusion parallaxe avec des informations de pente (plus rapide).\n" +#~ "1 = cartographie en relief (plus lent, plus précis)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7460,20 +7403,283 @@ msgstr "Délais d'interruption de cURL" #~ "Ajuster la correction gamma. Les valeurs plus basses sont plus claires.\n" #~ "Ce paramètre s'applique au client seulement et est ignoré par le serveur." -#~ msgid "Path to save screenshots at." -#~ msgstr "Chemin où les captures d'écran sont sauvegardées." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Modifie la façon dont les terres flottantes montagneuses s’effilent au-" +#~ "dessus et au-dessous du point médian." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Force de l'occlusion parallaxe" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limite des files émergentes sur le disque" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Téléchargement et installation de $1, veuillez patienter..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Êtes-vous sûr de vouloir réinitialiser votre monde ?" #~ msgid "Back" #~ msgstr "Retour" +#~ msgid "Bump Mapping" +#~ msgstr "Placage de relief" + +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapping" + +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Milieu de la courbe de lumière mi-boost." + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Change l’interface du menu principal :\n" +#~ "- Complet : Mondes solo, choix du jeu, sélecteur du pack de textures, " +#~ "etc.\n" +#~ "- Simple : un monde solo, pas de sélecteurs de jeu ou de pack de " +#~ "textures. Peut être\n" +#~ "nécessaire pour les plus petits écrans." + +#~ msgid "Config mods" +#~ msgstr "Configurer les mods" + +#~ msgid "Configure" +#~ msgstr "Configurer" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Contrôle la densité des terrains montagneux sur les terres flottantes.\n" +#~ "C'est un décalage ajouté à la valeur du bruit 'mgv7_np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Contrôle la largeur des tunnels, une valeur plus petite crée des tunnels " +#~ "plus larges." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Couleur du réticule (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Démarcation de l'obscurité" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Défini les zones de terrain plat flottant.\n" +#~ "Des terrains plats flottants apparaissent lorsque le bruit > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Niveau de lissage des normal maps.\n" +#~ "Une valeur plus grande lisse davantage les normal maps." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Téléchargement et installation de $1, veuillez patienter..." + +#~ msgid "Enable VBO" +#~ msgstr "Activer Vertex Buffer Object: objet tampon de vertex" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Active le bumpmapping pour les textures.\n" +#~ "Les normalmaps peuvent être fournies par un pack de textures pour un " +#~ "meilleur effet de relief,\n" +#~ "ou bien celui-ci est auto-généré.\n" +#~ "Nécessite les shaders pour être activé." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Autorise le mappage tonal cinématographique" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Active la génération à la volée des normalmaps.\n" +#~ "Nécessite le bumpmapping pour être activé." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Active l'occlusion parallaxe.\n" +#~ "Nécessite les shaders pour être activé." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Option expérimentale, peut causer un espace vide visible entre les blocs\n" +#~ "quand paramétré avec un nombre supérieur à 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS maximum sur le menu pause" + +#~ msgid "Floatland base height noise" +#~ msgstr "Le bruit de hauteur de base des terres flottantes" + +#~ msgid "Floatland mountain height" +#~ msgstr "Hauteur des montagnes flottantes" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Niveau d'opacité de l'ombre de la police (entre 0 et 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Génération de Normal Maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normal mapping" + +#~ msgid "IPv6 support." +#~ msgstr "Support IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Profondeur de lave" + +#~ msgid "Lightness sharpness" +#~ msgstr "Démarcation de la luminosité" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limite des files émergentes sur le disque" + +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Style du menu principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Mini-carte en mode radar, zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Mini-carte en mode radar, zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Mini-carte en mode surface, zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Mini-carte en mode surface, zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Nom / Mot de passe" + +#~ msgid "No" +#~ msgstr "Non" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Échantillonnage de normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Force des normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Nombre d'itérations sur l'occlusion parallaxe." + #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Bias général de l'occlusion parallaxe, habituellement échelle/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Echelle générale de l'effet de l'occlusion parallaxe." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Occlusion parallaxe" + +#~ msgid "Parallax occlusion" +#~ msgstr "Occlusion parallaxe" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Bias de l'occlusion parallaxe" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Nombre d'itérations sur l'occlusion parallaxe" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Mode occlusion parallaxe" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Echelle de l'occlusion parallaxe" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Force de l'occlusion parallaxe" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Chemin vers police TrueType ou Bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Chemin où les captures d'écran sont sauvegardées." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projection des donjons" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Réinitialiser le monde" + +#~ msgid "Select Package File:" +#~ msgstr "Sélectionner le fichier du mod :" + +#~ msgid "Shadow limit" +#~ msgstr "Limite des ombres" + +#~ msgid "Start Singleplayer" +#~ msgstr "Démarrer une partie solo" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Force des normalmaps autogénérés." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Force de la courbe de lumière mi-boost." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Cette police sera utilisée pour certaines langues." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Mode cinématique" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Hauteur maximum typique, au-dessus et au-dessous du point médian, du " +#~ "terrain de montagne flottantes." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variation de la hauteur des collines et de la profondeur des lacs sur les " +#~ "terrains plats flottants." + +#~ msgid "View" +#~ msgstr "Voir" + +#~ msgid "Waving Water" +#~ msgstr "Eau ondulante" + +#~ msgid "Waving water" +#~ msgstr "Vagues" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Si les donjons font parfois saillie du terrain." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Coordonnée Y de la limite supérieure des grandes grottes pseudo-" +#~ "aléatoires." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Hauteur (Y) du point de flottaison et de la surface des lacs." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Hauteur (Y) auquel les ombres portées s’étendent." + +#~ msgid "Yes" +#~ msgstr "Oui" diff --git a/po/gd/minetest.po b/po/gd/minetest.po index c3347ecda..5d1d6d534 100644 --- a/po/gd/minetest.po +++ b/po/gd/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-06-22 17:56+0000\n" "Last-Translator: GunChleoc \n" "Language-Team: Gaelic "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" msgstr "" #. ~ "defaults" is a noise parameter flag. @@ -521,108 +648,24 @@ msgstr "" msgid "eased" msgstr "" -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" +msgid "$1 mods" msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" msgstr "" -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" +msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -631,7 +674,51 @@ msgstr "" "Stàladh: Faidhle dhen t-seòrsa “$1” ris nach eil taic no tasglann bhriste" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" +msgid "Install: file: \"$1\"" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to find a valid mod or modpack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" msgstr "" #: builtin/mainmenu/tab_content.lua @@ -639,7 +726,7 @@ msgid "Installed Packages:" msgstr "Pacaidean air an stàladh:" #: builtin/mainmenu/tab_content.lua -msgid "Browse online content" +msgid "No dependencies." msgstr "" #: builtin/mainmenu/tab_content.lua @@ -650,36 +737,12 @@ msgstr "" msgid "Rename" msgstr "" -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" +msgid "Use Texture Pack" msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -687,63 +750,73 @@ msgid "Active Contributors" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "Stàlaich geamannan o ContentDB" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Port" +msgid "Creative Mode" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "Stàlaich geamannan o ContentDB" + +#: builtin/mainmenu/tab_local.lua +msgid "Name" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -751,7 +824,19 @@ msgid "Play Game" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -762,95 +847,51 @@ msgstr "" msgid "Address / Port" msgstr "Seòladh / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Favorite" msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua +msgid "PvP enabled" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "2x" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "4x" msgstr "" @@ -860,63 +901,19 @@ msgid "8x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" +msgid "All Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "Sgrìn:" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" +msgid "Bilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp @@ -924,39 +921,83 @@ msgid "Change Keys" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" +msgid "Connected Glass" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" +msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "Sgrìn:" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" +msgid "Shaders" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" +msgid "Shaders (experimental)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" +msgid "Shaders (unavailable)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" +msgid "Simple Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" msgstr "" #: builtin/mainmenu/tab_settings.lua @@ -965,26 +1006,46 @@ msgstr "" "Airson sgàileadairean a chur an comas, feumaidh tu draibhear OpenGL a " "chleachdadh." +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Tone Mapping" +msgstr "" + #: builtin/mainmenu/tab_settings.lua -msgid "Settings" +msgid "Touchthreshold: (px)" msgstr "" -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" +#: builtin/mainmenu/tab_settings.lua +msgid "Trilinear Filter" msgstr "" -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Leaves" msgstr "" -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Plants" msgstr "" #: src/client/client.cpp msgid "Connection timed out." msgstr "" +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + #: src/client/client.cpp msgid "Loading textures..." msgstr "" @@ -993,48 +1054,10 @@ msgstr "" msgid "Rebuilding shaders..." msgstr "" -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "" -#: src/client/clientlauncher.cpp -#, fuzzy -msgid "Provided password file failed to open: " -msgstr " " - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -#, fuzzy -msgid "Provided world path doesn't exist: " -msgstr " " - #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" msgstr "" @@ -1043,6 +1066,32 @@ msgstr "" msgid "Invalid gamespec." msgstr "" +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +#, fuzzy +msgid "Provided password file failed to open: " +msgstr " " + +#: src/client/clientlauncher.cpp +#, fuzzy +msgid "Provided world path doesn't exist: " +msgstr " " + #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" #. into the translation field (literally). @@ -1056,192 +1105,57 @@ msgid "needs_fallback_font" msgstr "no" #: src/client/game.cpp -msgid "Shutting down..." +msgid "" +"\n" +"Check debug.txt for details." msgstr "" #: src/client/game.cpp -msgid "Creating server..." -msgstr "" +#, fuzzy +msgid "- Address: " +msgstr " " #: src/client/game.cpp -msgid "Creating client..." -msgstr "" +#, fuzzy +msgid "- Creative Mode: " +msgstr " " #: src/client/game.cpp -msgid "Resolving address..." -msgstr "" +msgid "- Damage: " +msgstr "– Dochann: " #: src/client/game.cpp -msgid "Connecting to server..." -msgstr "" +#, fuzzy +msgid "- Mode: " +msgstr " " #: src/client/game.cpp -msgid "Item definitions..." -msgstr "" +#, fuzzy +msgid "- Port: " +msgstr " " #: src/client/game.cpp -msgid "Node definitions..." -msgstr "" +#, fuzzy +msgid "- Public: " +msgstr " " + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +#, fuzzy +msgid "- PvP: " +msgstr " " #: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "Tha am modh sgiathaidh an comas" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Tha am modh sgiathaidh an comas (an aire: gun sochair “fly”)" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "Tha am modh sgiathaidh à comas" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Tha am modh luath an comas (an aire: gun sochair “fast”)" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "Tha am modh gun bhearradh an comas" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Tha am modh gun bhearradh an comas (an aire: gun sochair “noclip”)" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "Tha am modh gun bhearradh à comas" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "Tha am modh film an comas" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "" +#, fuzzy +msgid "- Server Name: " +msgstr " " #: src/client/game.cpp msgid "Automatic forward disabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" +msgid "Automatic forward enabled" msgstr "" #: src/client/game.cpp @@ -1253,63 +1167,44 @@ msgid "Camera update enabled" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "Tha astar na faicsinn cho mòr sa ghabhas: %d" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" +msgid "Change Password" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" +msgid "Cinematic mode disabled" msgstr "" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" +msgid "Cinematic mode enabled" +msgstr "Tha am modh film an comas" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" msgstr "" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" +msgid "Connecting to server..." msgstr "" #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" +msgid "Continue" msgstr "" #: src/client/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" - -#: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1329,19 +1224,47 @@ msgstr "" "- %s: cabadaich\n" #: src/client/game.cpp -msgid "Continue" +msgid "Creating client..." msgstr "" #: src/client/game.cpp -msgid "Change Password" +msgid "Creating server..." msgstr "" #: src/client/game.cpp -msgid "Game paused" +msgid "Debug info and profiler graph hidden" msgstr "" #: src/client/game.cpp -msgid "Sound Volume" +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "" + +#: src/client/game.cpp +msgid "" +"Default Controls:\n" +"No menu visible:\n" +"- single tap: button activate\n" +"- double tap: place/use\n" +"- slide finger: look around\n" +"Menu/Inventory visible:\n" +"- double tap (outside):\n" +" -->close\n" +"- touch stack, touch slot:\n" +" --> move stack\n" +"- touch&drag, tap 2nd finger\n" +" --> place single item to slot\n" +msgstr "" + +#: src/client/game.cpp +msgid "Disabled unlimited viewing range" +msgstr "" + +#: src/client/game.cpp +msgid "Enabled unlimited viewing range" msgstr "" #: src/client/game.cpp @@ -1352,39 +1275,84 @@ msgstr "" msgid "Exit to OS" msgstr "" +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "Tha am modh luath an comas (an aire: gun sochair “fast”)" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "Tha am modh sgiathaidh à comas" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "Tha am modh sgiathaidh an comas" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "Tha am modh sgiathaidh an comas (an aire: gun sochair “fly”)" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + #: src/client/game.cpp msgid "Game info:" msgstr "Fiosrachadh mun gheama:" #: src/client/game.cpp -#, fuzzy -msgid "- Mode: " -msgstr " " - -#: src/client/game.cpp -msgid "Remote server" +msgid "Game paused" msgstr "" -#: src/client/game.cpp -#, fuzzy -msgid "- Address: " -msgstr " " - #: src/client/game.cpp msgid "Hosting server" msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "- Port: " -msgstr " " - -#: src/client/game.cpp -msgid "Singleplayer" +msgid "Item definitions..." msgstr "" #: src/client/game.cpp -msgid "On" +msgid "KiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "Tha am modh gun bhearradh à comas" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "Tha am modh gun bhearradh an comas" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "Tha am modh gun bhearradh an comas (an aire: gun sochair “noclip”)" + +#: src/client/game.cpp +msgid "Node definitions..." msgstr "" #: src/client/game.cpp @@ -1392,34 +1360,91 @@ msgid "Off" msgstr "" #: src/client/game.cpp -msgid "- Damage: " -msgstr "– Dochann: " +msgid "On" +msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "- Creative Mode: " -msgstr " " - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -#, fuzzy -msgid "- PvP: " -msgstr " " +msgid "Pitch move mode disabled" +msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "- Public: " -msgstr " " +msgid "Pitch move mode enabled" +msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "- Server Name: " -msgstr " " +msgid "Profiler graph shown" +msgstr "" #: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." +msgid "Remote server" +msgstr "" + +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "Tha astar na faicsinn cho mòr sa ghabhas: %d" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "ok" +msgstr "" + +#: src/client/gameui.cpp +msgid "Chat hidden" msgstr "" #: src/client/gameui.cpp @@ -1427,7 +1452,7 @@ msgid "Chat shown" msgstr "Tha a’ chabadaich ’ga shealltainn" #: src/client/gameui.cpp -msgid "Chat hidden" +msgid "HUD hidden" msgstr "" #: src/client/gameui.cpp @@ -1435,7 +1460,7 @@ msgid "HUD shown" msgstr "" #: src/client/gameui.cpp -msgid "HUD hidden" +msgid "Profiler hidden" msgstr "" #: src/client/gameui.cpp @@ -1443,28 +1468,8 @@ msgstr "" msgid "Profiler shown (page %d of %d)" msgstr "" -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" - #: src/client/keycode.cpp -msgid "Left Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" +msgid "Apps" msgstr "" #: src/client/keycode.cpp @@ -1472,106 +1477,120 @@ msgid "Backspace" msgstr "Backspace" #: src/client/keycode.cpp -msgid "Tab" +msgid "Caps Lock" msgstr "" #: src/client/keycode.cpp msgid "Clear" msgstr "" -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - #: src/client/keycode.cpp msgid "Control" msgstr "" +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "Control clì" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" msgstr "" #: src/client/keycode.cpp -msgid "Pause" +msgid "Middle Button" msgstr "" #: src/client/keycode.cpp -msgid "Caps Lock" +msgid "Num Lock" msgstr "" #: src/client/keycode.cpp -msgid "Space" +msgid "Numpad *" msgstr "" #: src/client/keycode.cpp -msgid "Page up" +msgid "Numpad +" msgstr "" #: src/client/keycode.cpp -msgid "Page down" +msgid "Numpad -" msgstr "" #: src/client/keycode.cpp -msgid "End" +msgid "Numpad ." msgstr "" #: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" +msgid "Numpad /" msgstr "" #: src/client/keycode.cpp @@ -1615,79 +1634,69 @@ msgid "Numpad 9" msgstr "" #: src/client/keycode.cpp -msgid "Numpad *" +msgid "OEM Clear" msgstr "" #: src/client/keycode.cpp -msgid "Numpad +" +msgid "Page down" msgstr "" #: src/client/keycode.cpp -msgid "Numpad ." +msgid "Page up" msgstr "" #: src/client/keycode.cpp -msgid "Numpad -" +msgid "Pause" msgstr "" #: src/client/keycode.cpp -msgid "Numpad /" +msgid "Play" +msgstr "" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" msgstr "" #: src/client/keycode.cpp -msgid "Num Lock" +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" msgstr "" #: src/client/keycode.cpp -msgid "Scroll Lock" +msgid "Right Button" msgstr "" -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" -msgstr "Control clì" - #: src/client/keycode.cpp msgid "Right Control" msgstr "" -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - #: src/client/keycode.cpp msgid "Right Menu" msgstr "" #: src/client/keycode.cpp -msgid "IME Escape" +msgid "Right Shift" msgstr "" #: src/client/keycode.cpp -msgid "IME Convert" +msgid "Right Windows" msgstr "" #: src/client/keycode.cpp -msgid "IME Nonconvert" +msgid "Scroll Lock" +msgstr "" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" msgstr "" #: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" +msgid "Shift" msgstr "" #: src/client/keycode.cpp @@ -1695,19 +1704,57 @@ msgid "Sleep" msgstr "" #: src/client/keycode.cpp -msgid "Erase EOF" +msgid "Snapshot" msgstr "" #: src/client/keycode.cpp -msgid "Play" +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "" -#: src/client/keycode.cpp -msgid "OEM Clear" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" msgstr "" #: src/gui/guiConfirmRegistration.cpp @@ -1720,150 +1767,118 @@ msgid "" "creation, or click 'Cancel' to abort." msgstr "" -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "Thoir gnogag dhùbailte air “leum” airson sgiathadh a thoglachadh" +msgid "Autoforward" +msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "brùth air iuchair" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "Tàislich" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "Toglaich sgiathadh" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "Toglaich am modh gun bhearradh" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "Meudaich an t-astar" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "Thoir gnogag dhùbailte air “leum” airson sgiathadh a thoglachadh" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "Meudaich an t-astar" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "Tàislich" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" @@ -1872,16 +1887,36 @@ msgstr "" msgid "Toggle chat log" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "Toglaich sgiathadh" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" msgstr "" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "Toglaich am modh gun bhearradh" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "brùth air iuchair" + #: src/gui/guiPasswordChange.cpp -msgid "New Password" +msgid "Change" msgstr "" #: src/gui/guiPasswordChange.cpp @@ -1889,13 +1924,12 @@ msgid "Confirm Password" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "Change" +msgid "New Password" msgstr "" -#: src/gui/guiVolumeChange.cpp -#, fuzzy -msgid "Sound Volume: " -msgstr " " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "" #: src/gui/guiVolumeChange.cpp msgid "Exit" @@ -1905,6 +1939,11 @@ msgstr "" msgid "Muted" msgstr "" +#: src/gui/guiVolumeChange.cpp +#, fuzzy +msgid "Sound Volume: " +msgstr " " + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1918,218 +1957,12 @@ msgstr "Cuir a-steach " msgid "LANG_CODE" msgstr "gd" -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" -"Ma tha seo an comas, ’s urrainn dhut blocaichean a chur ann far a bheil thu ’" -"nad sheasamh (co chois + àirde do shùil).\n" -"Bidh seo feumail nuair a bhios tu ag obair le bogsaichean nòd ann an " -"raointean beaga." - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "Sgiathadh" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" -"’S urrainn dhan chluicheadair sgiathadh gun bhuaidh na iom-tharraing air.\n" -"Bidh feum air sochair “fly” air an fhrithealaiche." - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" -"Ma tha seo an comas, bidh an gluasad a-rèir pids a’ chluicheadair rè " -"sgiathaidh no snàimh." - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" -"Gluasad luath (leis an iuchair “shònraichte”).\n" -"Bidh feum air sochair “fast” air an fhrithealaiche." - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "Gun bhearradh" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" -"Ma tha seo an comas còmhla ris a’ mhodh sgiathaidh, ’s urrainn dhan " -"chluicheadair sgiathadh tro nòdan soladach.\n" -"Bidh feum air sochair “noclip” on fhrithealaiche." - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" -"Ma tha seo an comas, thèid iuchair “shònraichte” seach “tàisleachaidh” a " -"chleachdadh\n" -"airson dìreadh." - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "Thoir gnogag dhùbailte airson leum no sgiathadh" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "Toglaichidh gnogag dhùbailte air iuchair an leuma am modh sgiathaidh." - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "Sgiathaich an-còmhnaidh ’s gu luath" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" -"Ma tha seo à comas, thèid iuchair “shònraichte” a chleachdadh airson " -"sgiathadh\n" -"ma tha an dà chuid am modh sgiathaidh ’s am modh luadh an comas." - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" @@ -2137,1414 +1970,206 @@ msgid "" "circle." msgstr "" -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - #: src/settings_translation_file.cpp msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." msgstr "" -"An iuchair a ghluaiseas an cluicheadair dhan taobh chlì.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Right key" +msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a ghluaiseas an cluicheadair dhan taobh deas.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the shape/size of rolling hills." +msgstr "Riasladh 2D a stiùiricheas cruth/meud nan cnoc." #: src/settings_translation_file.cpp -msgid "Jump key" +msgid "2D noise that controls the shape/size of step mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "Iuchair an tàisleachaidh" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair airson tàisleachadh.\n" -"Tha i ‘ga cleachdadh airson dìreadh agus dìreadh san uisge ma bhios " -"aux1_descends à comas.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the size/occurrence of rolling hills." msgstr "" -"An iuchair a ghluaiseas gu luath sa mhodh luath.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Chat key" +msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "Iuchair an sgiathaidh" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thoglaicheas an sgiathadh.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "Iuchair modha gun bhearradh" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thoglaicheas am modh gun bhearradh.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "Iuchair air adhart a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an ath-nì air a’ ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "Iuchair air ais a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an nì roimhe air a’ ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "Iuchair air slot 1 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas a’ chiad slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "Iuchair air slot 2 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an dàrna slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "Iuchair air slot 3 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an treas slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "Iuchair air slot 4 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an ceathramh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "Iuchair air slot 5 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an còigeamh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "Iuchair air slot 6 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an siathamh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "Iuchair air slot 7 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an seachdamh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "Iuchair air slot 8 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an t-ochdamh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "Iuchair air slot 9 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an naoidheamh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "Iuchair air slot 10 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an deicheamh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "Iuchair air slot 11 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an 11mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "Iuchair air slot 12 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an 12mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "Iuchair air slot 13 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an 13mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "Iuchair air slot 14 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an 14mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "Iuchair air slot 15 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an 15mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "Iuchair air slot 16 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an 16mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "Iuchair air slot 17 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an 17mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "Iuchair air slot 18 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an 18mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "Iuchair air slot 19 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas an 19mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "Iuchair air slot 20 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 20mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "Iuchair air slot 21 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 21mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "Iuchair air slot 22 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 22mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "Iuchair air slot 23 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 23mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "Iuchair air slot 24 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 24mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "Iuchair air slot 25 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 25mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "Iuchair air slot 26 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 26mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "Iuchair air slot 27 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 27mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "Iuchair air slot 28 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 28mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "Iuchair air slot 29 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 29mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "Iuchair air slot 30 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 30mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "Iuchair air slot 31 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 31mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "Iuchair air slot 32 a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"An iuchair a thaghas am 32mh slot dhen ghrad-bhàr.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "Iuchair toglachadh an fhiosrachaidh dì-bhugachaidh" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "" +msgid "2D noise that locates the river valleys and channels." +msgstr "Riasladh 2D a shuidhicheas glinn is sruthan nan aibhnean." #: src/settings_translation_file.cpp msgid "3D clouds" msgstr "" #: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." +msgid "3D mode" msgstr "" #: src/settings_translation_file.cpp -msgid "Node highlighting" +msgid "3D mode parallax strength" msgstr "" #: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." +msgid "3D noise defining giant caverns." msgstr "" #: src/settings_translation_file.cpp -msgid "Digging particles" +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" +"Riasladh 3D a mhìnicheas structar is àirde nam beanntan.\n" +"Mìnichidh e cruth-tìre nam beanntan air tìr air fhleòd cuideachd." + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" +"Riasladh 3D a mhìnicheas structar na tìre air fhleòd.\n" +"Mura cleachd thu an luach tùsail, dh’fhaoidte gum fheàirrde thu gleus a chur " +"air “scale” an riaslaidh (0.7 o thùs)\n" +", on a dh’obraicheas foincseanan cinn-chaoil as fheàrr\n" +"nuair a bhios an riasladh seo eadar mu -2.0 agus 2.0." + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "Riasladh 3D a mhìnicheas structar ballachan sgoltaidhean-aibhne." + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" +"Riasladh 3D a mhìnicheas an àireamh dhe thuill-dhubha anns gach cnap mapa." + +#: src/settings_translation_file.cpp +msgid "" +"3D support.\n" +"Currently supported:\n" +"- none: no 3d output.\n" +"- anaglyph: cyan/magenta color 3d.\n" +"- interlaced: odd/even line based polarisation screen support.\n" +"- topbottom: split screen top/bottom.\n" +"- sidebyside: split screen side by side.\n" +"- crossview: Cross-eyed 3d\n" +"- pageflip: quadbuffer based 3d.\n" +"Note that the interlaced mode requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server crashes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ABM interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Absolute limit of queued blocks to emerge" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block management interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." msgstr "" #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." msgstr "" -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." msgstr "" #: src/settings_translation_file.cpp +#, c-format msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "Mapadh tòna film" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" -"Claonadh na h-èifeachd occlusion na paraileig air fheadh, seo sgèile/2 mar " -"as àbhaist." - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "Crathadh duillich" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." msgstr "" #: src/settings_translation_file.cpp msgid "Advanced" msgstr "" -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" -"Fosgail clàr-taice a’ chuir ’na stad nuair a chailleas an uinneag am fòcas.\n" -"Cha dèid a chur ’na stad nuair a bhios formspec fosgailte." - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Alters the light curve by applying 'gamma correction' to it.\n" @@ -3560,459 +2185,31 @@ msgstr "" "agus cha mhòr nach bi buaidh air solas oidhche nàdarra idir." #: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" -"Caisead lùb an t-solais aig an ìre as fainne.\n" -"Stiùirichidh seo iomsgaradh an t-solais fhainn." - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" -"Caisead lùb an t-solais aig an ìre as soilleire.\n" -"Stiùirichidh seo iomsgaradh an t-solais shoilleir." - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" -"Meadhan rainse meudachadh lùb an t-solais.\n" -"Is 0.0 an ìre as fhainne agus 1.0 an ìre as soilleire air an solas." - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "Dràibhear video" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "Factar bogadaich an tuiteim" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- crossview: Cross-eyed 3d\n" -"- pageflip: quadbuffer based 3d.\n" -"Note that the interlaced mode requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "Leud as motha a’ ghrad-bhàr" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" -"A’ chuid as motha dhen uinneag làithreach a thèid a chleachdadh airson a’ " -"ghrad-bhàr.\n" -"Tha seo feumail ma dh’fheumas tu rudeigin a shealltainn taobh deas no clì " -"air a’ ghrad-bhàr." - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" -"True = 256\n" -"False = 128\n" -"Gabhaidh a chleachdadh airson am meanbh-mhapa a dhèanamh nas rèidhe air " -"uidheaman slaodach." - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" +msgid "Always fly and fast" +msgstr "Sgiathaich an-còmhnaidh ’s gu luath" #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." +msgid "Amount of messages a player may send per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Inventory items animations" +msgid "Amplifies the valleys." +msgstr "Meudaichidh seo na glinn." + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "" +msgid "Announce server" +msgstr "Ainmich am frithealaiche" #: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "Dèan gach lionn trìd-dhoilleir" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." +msgid "Announce to this serverlist." msgstr "" #: src/settings_translation_file.cpp @@ -4024,1083 +2221,23 @@ msgid "Append item name to tooltip." msgstr "" #: src/settings_translation_file.cpp -msgid "FreeType fonts" +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "Slighe dhan chlò aon-leud" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "Ainmich am frithealaiche" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "Sochairean tùsail" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" -"Na sochairean a gheibh cleachdaichean ùra gu fèin-obrachail.\n" -"Faic /privs sa gheama airson liosta slàn air rèiteachadh an fhrithealaiche ’" -"s nan tuilleadan agad." - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "Sochairean bunasach" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "Sochairean as urrainn do chluicheadairean le basic_privs a cheadachadh" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "Astar tar-chur nan cluicheadairean gun chuingeachadh" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" -"Mìnichidh seo an t-astar as motha airson tar-chur chluicheadairean ann am " -"bloca (0 = gun chuingeachadh)." - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" -"Co-dhiù am faod cluicheadairean càch a chèile a leòn ’s a mharbhadh gus nach " -"fhaod." - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." msgstr "" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "Luaths na coiseachd is sgiathaidh, ann an nòd gach diog." - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "Luaths an tàisleachaidh" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "Luaths an tàisleachaidh ann an nòd gach diog." - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" -"Luaths na coiseachd, sgiathaidh is sreap sa mhodh luath, ann an nòd gach " -"diog." - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "Leig seachad mearachdan an t-saoghail" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "Eadaramh nan ùrachaidhean air an lionn ann an diog." - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "At this distance the server will aggressively optimize which blocks are sent " @@ -5117,71 +2254,278 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "Àirde bhunasach a’ ghrunnda" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "Sochairean bunasach" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" msgstr "" #: src/settings_translation_file.cpp msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" +"Meadhan rainse meudachadh lùb an t-solais.\n" +"Is 0.0 an ìre as fhainne agus 1.0 an ìre as soilleire air an solas." + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "Ìre loga na cabadaich" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "Meud nan cnapan" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" msgstr "" #: src/settings_translation_file.cpp msgid "Client side modding restrictions" msgstr "Cuingeachadh tuilleadain air a’ chliant" -#: src/settings_translation_file.cpp -msgid "" -"Restricts the access of certain client-side functions on servers.\n" -"Combine the byteflags below to restrict client-side features, or set to 0\n" -"for no restrictions:\n" -"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" -"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" -"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" -"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" -"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" -"csm_restriction_noderange)\n" -"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" -msgstr "" - #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." +msgid "Climbing speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Security" +msgid "Cloud radius" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable mod security" +msgid "Clouds" msgstr "" #: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." +msgid "Clouds are a client side effect." msgstr "" #: src/settings_translation_file.cpp -msgid "Trusted mods" +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" #: src/settings_translation_file.cpp @@ -5191,41 +2535,457 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Profiling" +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." msgstr "" #: src/settings_translation_file.cpp -msgid "Load the game profiler" +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." msgstr "" +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "Iuchair toglachadh an fhiosrachaidh dì-bhugachaidh" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "Ìre an loga dì-bhugachaidh" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "Sochairean tùsail" + #: src/settings_translation_file.cpp msgid "Default report format" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" +msgid "Default stack size" msgstr "" #: src/settings_translation_file.cpp msgid "" -"The file path relative to your worldpath in which profiles will be saved to." +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." msgstr "" #: src/settings_translation_file.cpp -msgid "Instrumentation" +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "Mìnichidh seo structar sruth nan aibhnean mòra." + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "Mìnichidh seo àirde bhunasach a’ ghrunnda." + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "Mìnichidh seo doimhne sruth nan aibhnean." + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" +"Mìnichidh seo an t-astar as motha airson tar-chur chluicheadairean ann am " +"bloca (0 = gun chuingeachadh)." + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "Mìnichidh seo leud sruth nan aibhnean." + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "Mìnichidh seo leud gleanntan nan aibhnean." + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "Thoir gnogag dhùbailte airson leum no sgiathadh" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "Toglaichidh gnogag dhùbailte air iuchair an leuma am modh sgiathaidh." + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "Dumpaich fiosrachadh dì-bhugachaidh aig gineadair nam mapa." + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" msgstr "" #: src/settings_translation_file.cpp @@ -5233,33 +2993,327 @@ msgid "Entity methods" msgstr "" #: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" +"An t-easponant aig cinn-chaoil na tìre air fhleòd. Atharraichidh seo giùlnan " +"nan ceann-caol.\n" +"Cruthaichidh luach = 1.0 cinn-chaoil aon-fhillte loidhneach.\n" +"Cruthaichidh luachan > 1.0 cinn-chaoil rèidhe\n" +"a bhios freagarrach dha na cinn-chaoill sgaraichte thùsail.\n" +"Cruthaichidh luachan < 1.0 (can 0.25) uachdar nas mionaidiche le tìr-ìosal " +"nas rèidhe a bhios freagarrach\n" +"do bhreath tìre air fhleòd sholadach." + +#: src/settings_translation_file.cpp +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp -msgid "Active Block Modifiers" +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "Factar bogadaich an tuiteim" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument the action function of Active Block Modifiers on registration." +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" +"Gluasad luath (leis an iuchair “shònraichte”).\n" +"Bidh feum air sochair “fast” air an fhrithealaiche." + +#: src/settings_translation_file.cpp +msgid "Field of view" msgstr "" #: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" +msgid "Field of view in degrees." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument the action function of Loading Block Modifiers on registration." +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." msgstr "" #: src/settings_translation_file.cpp -msgid "Chatcommands" +msgid "Filler depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "Mapadh tòna film" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "Dùmhlachd na tìre air fhleòd" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "Riasladh na tìre air fhleòd" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "Easponant cinn-chaoil air tìr air fhleòd" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "Astar cinn-chaoil air tìr air fhleòd" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "Àirde an uisge air tìr air fhleòd" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "Iuchair an sgiathaidh" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "Sgiathadh" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font bold by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font italic by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the default font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the fallback font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the monospace font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" +"An t-astar on a thèid blocaichean a ghintinn dha na cliantan, ann am bloca " +"mapa (16 nòdan)." + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp @@ -5268,22 +3322,66 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" +"Buadhan gintinn mapa uile-choitcheann.\n" +"Ann an gineadair nam mapa v6, stiùirichidh bratach “decorations” sgeadachadh " +"seach craobhan is feur dlùth-choille\n" +"agus ann an gineadairean nam mapa eile, stiùirichidh a’ bhratach seo a h-" +"uile sgeadachadh." + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" +"Caisead lùb an t-solais aig an ìre as soilleire.\n" +"Stiùirichidh seo iomsgaradh an t-solais shoilleir." + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" +"Caisead lùb an t-solais aig an ìre as fainne.\n" +"Stiùirichidh seo iomsgaradh an t-solais fhainn." + +#: src/settings_translation_file.cpp +msgid "Graphics" msgstr "" #: src/settings_translation_file.cpp -msgid "Builtin" +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "Àirde a’ ghrunnda" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" #: src/settings_translation_file.cpp @@ -5296,18 +3394,1187 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client and Server" +msgid "Heat blend noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Player name" +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "Iuchair air adhart a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "Iuchair air ais a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "Iuchair air slot 1 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "Iuchair air slot 10 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "Iuchair air slot 11 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "Iuchair air slot 12 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "Iuchair air slot 13 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "Iuchair air slot 14 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "Iuchair air slot 15 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "Iuchair air slot 16 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "Iuchair air slot 17 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "Iuchair air slot 18 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "Iuchair air slot 19 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "Iuchair air slot 2 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "Iuchair air slot 20 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "Iuchair air slot 21 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "Iuchair air slot 22 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "Iuchair air slot 23 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "Iuchair air slot 24 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "Iuchair air slot 25 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "Iuchair air slot 26 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "Iuchair air slot 27 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "Iuchair air slot 28 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "Iuchair air slot 29 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "Iuchair air slot 3 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "Iuchair air slot 30 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "Iuchair air slot 31 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "Iuchair air slot 32 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "Iuchair air slot 4 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "Iuchair air slot 5 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "Iuchair air slot 6 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "Iuchair air slot 7 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "Iuchair air slot 8 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "Iuchair air slot 9 a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "Dè cho domhainn ’s a bhios aibhnean." + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "Dè cho leathann ’s a bhios aibhnean." + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." +msgstr "" +"Ma tha seo à comas, thèid iuchair “shònraichte” a chleachdadh airson " +"sgiathadh\n" +"ma tha an dà chuid am modh sgiathaidh ’s am modh luadh an comas." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" +"Ma tha seo an comas còmhla ris a’ mhodh sgiathaidh, ’s urrainn dhan " +"chluicheadair sgiathadh tro nòdan soladach.\n" +"Bidh feum air sochair “noclip” on fhrithealaiche." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" +"Ma tha seo an comas, thèid iuchair “shònraichte” seach “tàisleachaidh” a " +"chleachdadh\n" +"airson dìreadh." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" +"Ma tha seo an comas, bidh an gluasad a-rèir pids a’ chluicheadair rè " +"sgiathaidh no snàimh." + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" +"Ma tha seo an comas, ’s urrainn dhut blocaichean a chur ann far a bheil thu " +"’nad sheasamh (co chois + àirde do shùil).\n" +"Bidh seo feumail nuair a bhios tu ag obair le bogsaichean nòd ann an " +"raointean beaga." + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "Leig seachad mearachdan an t-saoghail" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" +"Ath-thriall an fhoincsein ath-chùrsaiche.\n" +"Ma mheudaicheas tu seo, bidh barrachd mion-chruthan air\n" +"ach bi barrachd eallaich air a’ phròiseasadh cuideachd.\n" +"Ma tha ath-thriall = 20, bidh an t-eallach aig gineadair nam mapa seo " +"coltach ri eallach gineadair nam mapa V7." + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thoglaicheas an sgiathadh.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a ghluaiseas gu luath sa mhodh luath.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a ghluaiseas an cluicheadair dhan taobh chlì.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a ghluaiseas an cluicheadair dhan taobh deas.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thoglaicheas an sgiathadh.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an 11mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an 12mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an 13mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an 14mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an 15mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an 16mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an 17mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an 18mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an 19mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 20mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 21mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 22mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 23mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 24mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 25mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 26mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 27mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 28mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 29mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 30mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 31mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas am 32mh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an t-ochdamh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an còigeamh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas a’ chiad slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an ceathramh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an ath-nì air a’ ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an naoidheamh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an nì roimhe air a’ ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an dàrna slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an seachdamh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an siathamh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an deicheamh slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thaghas an treas slot dhen ghrad-bhàr.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair airson tàisleachadh.\n" +"Tha i ‘ga cleachdadh airson dìreadh agus dìreadh san uisge ma bhios " +"aux1_descends à comas.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thoglaicheas an sgiathadh.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thoglaicheas am modh gun bhearradh.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" msgstr "" #: src/settings_translation_file.cpp @@ -5315,14 +4582,65 @@ msgid "Language" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." +msgid "Large cave depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "Ìre an loga dì-bhugachaidh" +msgid "Large cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -5345,147 +4663,29 @@ msgstr "" "- verbose" #: src/settings_translation_file.cpp -msgid "Debug log file size threshold" +msgid "Light curve boost" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." +msgid "Light curve boost center" msgstr "" #: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "Ìre loga na cabadaich" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "An ìre as lugha dhen loga a thèid a sgrìobhadh dhan chabadaich." - -#: src/settings_translation_file.cpp -msgid "IPv6" +msgid "Light curve boost spread" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." +msgid "Light curve gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "cURL timeout" +msgid "Light curve high gradient" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." +msgid "Light curve low gradient" msgstr "" -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "Ainm gineadair nam mapa" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" -"Ainm air gineadair nam mapa a thèid a chleachdadh airson saoghal ùr a " -"chruthachadh.\n" -"Tar-aithnidh cruthachadh saoghail ùir sa phrìomh chlàr-taice seo.\n" -"Seo gineadairean nam mapa a tha glè neo-sheasmhach aig an àm seo:\n" -"- floatlands roghainneil aig v7 (à comas o thùs)." - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "Àirde an uisge" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "Àirde uachdar an uisge air an t-saoghal." - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" -"An t-astar on a thèid blocaichean a ghintinn dha na cliantan, ann am bloca " -"mapa (16 nòdan)." - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "Cuingeachadh gintinn mapa" - #: src/settings_translation_file.cpp msgid "" "Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" @@ -5499,153 +4699,54 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" -"Buadhan gintinn mapa uile-choitcheann.\n" -"Ann an gineadair nam mapa v6, stiùirichidh bratach “decorations” sgeadachadh " -"seach craobhan is feur dlùth-choille\n" -"agus ann an gineadairean nam mapa eile, stiùirichidh a’ bhratach seo a h-" -"uile sgeadachadh." - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." msgstr "" #: src/settings_translation_file.cpp -msgid "Heat noise" +msgid "Liquid fluidity" msgstr "" #: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." +msgid "Liquid fluidity smoothing" msgstr "" #: src/settings_translation_file.cpp -msgid "Heat blend noise" +msgid "Liquid loop max" msgstr "" #: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." +msgid "Liquid queue purge time" msgstr "" #: src/settings_translation_file.cpp -msgid "Humidity noise" +msgid "Liquid sinking" msgstr "" #: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." +msgid "Liquid update interval in seconds." +msgstr "Eadaramh nan ùrachaidhean air an lionn ann an diog." + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" msgstr "" #: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "Gineadair nam mapa V5" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa V5" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v5." - -#: src/settings_translation_file.cpp -msgid "Cave width" +msgid "Load the game profiler" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." msgstr "" #: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" -"An àireamh as lugha de dh’uamhan beaga air thuaiream anns gach cnap mapa." - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" -"An àireamh as motha de dh’uamhan beaga air thuaiream anns gach cnap mapa." - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" -"An àireamh as lugha de dh’uamhan mòra air thuaiream anns gach cnap mapa." - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" -"An àireamh as motha de dh’uamhan mòra air thuaiream anns gach cnap mapa." - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "Àirde-Y aig crìoch àrd nan uamhan." - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" +msgid "Loading Block Modifiers" msgstr "" #: src/settings_translation_file.cpp @@ -5653,91 +4754,80 @@ msgid "Lower Y limit of dungeons." msgstr "" #: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" +msgid "Lower Y limit of floatlands." msgstr "" #: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" +msgid "Main menu script" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" #: src/settings_translation_file.cpp -msgid "Height noise" +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "Àirde-Y aig uachdar cuibheasach a’ chrutha-thìre." +msgid "Makes all liquids opaque" +msgstr "Dèan gach lionn trìd-dhoilleir" #: src/settings_translation_file.cpp -msgid "Cave1 noise" +msgid "Map Compression Level for Disk Storage" msgstr "" #: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." +msgid "Map Compression Level for Network Transfer" msgstr "" #: src/settings_translation_file.cpp -msgid "Cave2 noise" +msgid "Map directory" msgstr "" #: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." +msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Carpathian." #: src/settings_translation_file.cpp -msgid "Cavern noise" +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." msgstr "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Flat.\n" +"’S urrainn dhut lochan is cnuic ghanna a chur ris an t-saoghal rèidh." #: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." msgstr "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Fractal.\n" +"Cuiridh “terrain” gintinn crutha-tìre nach eil fractalach an comas:\n" +"cuan, eileanan is fon talamh." #: src/settings_translation_file.cpp -msgid "Ground noise" +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." msgstr "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Valleys.\n" +"“altitude_chill”: Bidh tìr àrd nas fhuaire.\n" +"“humid_rivers”: Bidh an tìr nas buige faisg air aibhnean.\n" +"“vary_river_depth”: Ma tha seo an comas, bidh aibhnean nas tana agus tioram " +"aig amannan ma tha an saoghal tioram no teth.\n" +"’“altitude_dry”: Bidh tìr àrd nas tiorma." #: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" -"Riasladh 3D a mhìnicheas an àireamh dhe thuill-dhubha anns gach cnap mapa." - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "Gineadair nam mapa V6" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa V6" +msgid "Map generation attributes specific to Mapgen v5." +msgstr "Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v5." #: src/settings_translation_file.cpp msgid "" @@ -5752,108 +4842,6 @@ msgstr "" "chur an comas gu fèin-obrachail \n" "agus a’ bhratach “jungles” a leigeil seachad." -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "Àirde-Y a’ chrutha-thìre ìosal agus grunnd na mara." - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "Àirde-Y a’ chrutha-thìre nas àirde a chruthaicheas creagan." - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "Gineadair nam mapa V7" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa V7" - #: src/settings_translation_file.cpp msgid "" "Map generation attributes specific to Mapgen v7.\n" @@ -5866,92 +4854,1108 @@ msgstr "" "“floatlands”: Tìr air fhleòd san àile.\n" "“caverns”: Uamhan mòra domhainn fon talamh." +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "Cuingeachadh gintinn mapa" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "Gineadair nam mapa Carpathian" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa Carpathian" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "Gineadair nam mapa Flat" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa Flat" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "Gineadair nam mapa Fractal" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa Fractal" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "Gineadair nam mapa V5" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa V5" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "Gineadair nam mapa V6" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa V6" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "Gineadair nam mapa V7" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa V7" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "Gineadair nam mapa Valleys" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa Valleys" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "Dì-bhugachadh gineadair nam mapa" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "Ainm gineadair nam mapa" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "Leud as motha a’ ghrad-bhàr" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" +"An àireamh as motha de dh’uamhan mòra air thuaiream anns gach cnap mapa." + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" +"An àireamh as motha de dh’uamhan beaga air thuaiream anns gach cnap mapa." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" +"A’ chuid as motha dhen uinneag làithreach a thèid a chleachdadh airson a’ " +"ghrad-bhàr.\n" +"Tha seo feumail ma dh’fheumas tu rudeigin a shealltainn taobh deas no clì " +"air a’ ghrad-bhàr." + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "An ìre as lugha dhen loga a thèid a sgrìobhadh dhan chabadaich." + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" +"An àireamh as lugha de dh’uamhan mòra air thuaiream anns gach cnap mapa." + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" +"An àireamh as lugha de dh’uamhan beaga air thuaiream anns gach cnap mapa." + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "Slighe dhan chlò aon-leud" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + #: src/settings_translation_file.cpp msgid "Mountain zero level" msgstr "Àirde neoini nam beanntan" #: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" -"Y air àirde neoini air caisead dùmhlachd nam beanntan. Thèid seo a " -"chleachdadh airson beanntan a thogail gu h-inghearach." - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" +msgid "Mouse sensitivity" msgstr "" #: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." +msgid "Mouse sensitivity multiplier." msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland maximum Y" +msgid "Mud noise" msgstr "" -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "Astar cinn-chaoil air tìr air fhleòd" - #: src/settings_translation_file.cpp msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." msgstr "" -"Seo an t-astar-Y eadar an dùbhlachd làn ’s an òir air cinn-chaoil na tìre " -"air fhleòd.\n" -"Tòsichidh na cinn-chaoil aig an astar seo on chrìoch Y.\n" -"Airson breath tìre air fhleòd sholadach, stiùirichidh seo àirde nan cnoc/nam " -"beanntan.\n" -"Feumaidh e a bhith nas lugha na no co-ionnann ris an dàrna leth dhen astar " -"eadar na crìochan Y." #: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "Easponant cinn-chaoil air tìr air fhleòd" +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." msgstr "" -"An t-easponant aig cinn-chaoil na tìre air fhleòd. Atharraichidh seo giùlnan " -"nan ceann-caol.\n" -"Cruthaichidh luach = 1.0 cinn-chaoil aon-fhillte loidhneach.\n" -"Cruthaichidh luachan > 1.0 cinn-chaoil rèidhe\n" -"a bhios freagarrach dha na cinn-chaoill sgaraichte thùsail.\n" -"Cruthaichidh luachan < 1.0 (can 0.25) uachdar nas mionaidiche le tìr-ìosal " -"nas rèidhe a bhios freagarrach\n" -"do bhreath tìre air fhleòd sholadach." +"Ainm air gineadair nam mapa a thèid a chleachdadh airson saoghal ùr a " +"chruthachadh.\n" +"Tar-aithnidh cruthachadh saoghail ùir sa phrìomh chlàr-taice seo.\n" +"Seo gineadairean nam mapa a tha glè neo-sheasmhach aig an àm seo:\n" +"- floatlands roghainneil aig v7 (à comas o thùs)." #: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "Dùmhlachd na tìre air fhleòd" - -#: src/settings_translation_file.cpp -#, c-format msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "Àirde an uisge air tìr air fhleòd" +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "Gun bhearradh" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "Iuchair modha gun bhearradh" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "Ionad-tasgaidh susbaint air loidhne" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" +"Fosgail clàr-taice a’ chuir ’na stad nuair a chailleas an uinneag am fòcas.\n" +"Cha dèid a chur ’na stad nuair a bhios formspec fosgailte." + +#: src/settings_translation_file.cpp +msgid "" +"Path of the fallback font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to save screenshots at. Can be an absolute or relative path.\n" +"The folder will be created if it doesn't already exist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Iuchair an sgiathaidh" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" +"’S urrainn dhan chluicheadair sgiathadh gun bhuaidh na iom-tharraing air.\n" +"Bidh feum air sochair “fly” air an fhrithealaiche." + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "Sochairean as urrainn do chluicheadairean le basic_privs a cheadachadh" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prometheus listener address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Proportion of large caves that contain liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" +"Àrdaichidh seo an cruth-tìre airson glinn a chruthachadh timcheall air na h-" +"aibhnean." + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Regular font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Restricts the access of certain client-side functions on servers.\n" +"Combine the byteflags below to restrict client-side features, or set to 0\n" +"for no restrictions:\n" +"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" +"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" +"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" +"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" +"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge underwater noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridged mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Right key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River channel depth" +msgstr "Doimhne sruth nan aibhnean" + +#: src/settings_translation_file.cpp +msgid "River channel width" +msgstr "Leud sruth nan aibhnean" + +#: src/settings_translation_file.cpp +msgid "River depth" +msgstr "Doimhne nan aibhnean" + +#: src/settings_translation_file.cpp +msgid "River noise" +msgstr "Riasladh aibhnean" + +#: src/settings_translation_file.cpp +msgid "River size" +msgstr "Meud nan aibhnean" + +#: src/settings_translation_file.cpp +msgid "River valley width" +msgstr "Leud gleanntan aibhne" + +#: src/settings_translation_file.cpp +msgid "Rollback recording" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hill size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Seabed noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box border color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Selects one of 18 fractal types.\n" +"1 = 4D \"Roundy\" Mandelbrot set.\n" +"2 = 4D \"Roundy\" Julia set.\n" +"3 = 4D \"Squarry\" Mandelbrot set.\n" +"4 = 4D \"Squarry\" Julia set.\n" +"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" +"6 = 4D \"Mandy Cousin\" Julia set.\n" +"7 = 4D \"Variation\" Mandelbrot set.\n" +"8 = 4D \"Variation\" Julia set.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" +"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" +"12 = 3D \"Christmas Tree\" Julia set.\n" +"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" +"14 = 3D \"Mandelbulb\" Julia set.\n" +"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" +"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" +"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" +"18 = 4D \"Mandelbulb\" Julia set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shader path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shutdown message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" +"WARNING!: There is no benefit, and there are several dangers, in\n" +"increasing this value above 5.\n" +"Reducing this value increases cave and dungeon density.\n" +"Altering this value is for special usage, leaving it unchanged is\n" +"recommended." +msgstr "" +"Meud nan cnapan mapa a thèid a ghintinn le gineadair nam mapa, ann am bloca " +"mapa (16 nòd).\n" +"RABHADH: Chan fhaigh thu buannachd ach cunnartan à luach nas àirde na 5.\n" +"Le luach nas lugha, gheibh thu barrachd uamhan is thuill-dubha.\n" +"Chan fhiach atharrachadh an luach seo ach air adhbhar sònraichte ’s " +"mholamaid\n" +"nach atharraich thu e." + +#: src/settings_translation_file.cpp +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slice w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slope and fill work together to modify the heights." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "Iuchair an tàisleachaidh" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "Luaths an tàisleachaidh" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "Luaths an tàisleachaidh ann an nòd gach diog." + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -5982,263 +5986,32 @@ msgstr "" "fhrithealaiche ’s ach an seachnaich thu tuil mhòr air uachdar na tìre " "foidhpe." +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + #: src/settings_translation_file.cpp msgid "Terrain alternative noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain persistence noise" +msgid "Terrain base noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgid "Terrain height" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." +msgid "Terrain higher noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "Mìnichidh seo structar sruth nan aibhnean mòra." - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" -"Riasladh 3D a mhìnicheas structar is àirde nam beanntan.\n" -"Mìnichidh e cruth-tìre nam beanntan air tìr air fhleòd cuideachd." - -#: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "Riasladh 3D a mhìnicheas structar ballachan sgoltaidhean-aibhne." - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "Riasladh na tìre air fhleòd" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" -"Riasladh 3D a mhìnicheas structar na tìre air fhleòd.\n" -"Mura cleachd thu an luach tùsail, dh’fhaoidte gum fheàirrde thu gleus a chur " -"air “scale” an riaslaidh (0.7 o thùs)\n" -", on a dh’obraicheas foincseanan cinn-chaoil as fheàrr\n" -"nuair a bhios an riasladh seo eadar mu -2.0 agus 2.0." - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "Gineadair nam mapa Carpathian" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa Carpathian" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Carpathian." - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "Àirde bhunasach a’ ghrunnda" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "Mìnichidh seo àirde bhunasach a’ ghrunnda." - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "Leud sruth nan aibhnean" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "Mìnichidh seo leud sruth nan aibhnean." - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "Doimhne sruth nan aibhnean" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "Mìnichidh seo doimhne sruth nan aibhnean." - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "Leud gleanntan aibhne" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "Mìnichidh seo leud gleanntan nan aibhnean." - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "Riasladh 2D a stiùiricheas cruth/meud nan cnoc." - -#: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River noise" -msgstr "Riasladh aibhnean" - -#: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." -msgstr "Riasladh 2D a shuidhicheas glinn is sruthan nan aibhnean." - -#: src/settings_translation_file.cpp -msgid "Mountain variation noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat" -msgstr "Gineadair nam mapa Flat" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa Flat" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." -msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Flat.\n" -"’S urrainn dhut lochan is cnuic ghanna a chur ris an t-saoghal rèidh." - -#: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "Àirde a’ ghrunnda" - -#: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill threshold" +msgid "Terrain noise" msgstr "" #: src/settings_translation_file.cpp @@ -6248,109 +6021,399 @@ msgid "" "Adjust towards 0.0 for a larger proportion." msgstr "" -#: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "Gineadair nam mapa Fractal" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa Fractal" - #: src/settings_translation_file.cpp msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Fractal.\n" -"Cuiridh “terrain” gintinn crutha-tìre nach eil fractalach an comas:\n" -"cuan, eileanan is fon talamh." #: src/settings_translation_file.cpp -msgid "Fractal type" +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Selects one of 18 fractal types.\n" -"1 = 4D \"Roundy\" Mandelbrot set.\n" -"2 = 4D \"Roundy\" Julia set.\n" -"3 = 4D \"Squarry\" Mandelbrot set.\n" -"4 = 4D \"Squarry\" Julia set.\n" -"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" -"6 = 4D \"Mandy Cousin\" Julia set.\n" -"7 = 4D \"Variation\" Mandelbrot set.\n" -"8 = 4D \"Variation\" Julia set.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" -"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" -"12 = 3D \"Christmas Tree\" Julia set.\n" -"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" -"14 = 3D \"Mandelbulb\" Julia set.\n" -"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" -"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" -"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" -"18 = 4D \"Mandelbulb\" Julia set." +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." msgstr "" #: src/settings_translation_file.cpp -msgid "Iterations" +msgid "The URL for the content repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." msgstr "" -"Ath-thriall an fhoincsein ath-chùrsaiche.\n" -"Ma mheudaicheas tu seo, bidh barrachd mion-chruthan air\n" -"ach bi barrachd eallaich air a’ phròiseasadh cuideachd.\n" -"Ma tha ath-thriall = 20, bidh an t-eallach aig gineadair nam mapa seo " -"coltach ri eallach gineadair nam mapa V7." #: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." +msgid "The depth of dirt or other biome filler node." msgstr "" #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +"The file path relative to your worldpath in which profiles will be saved to." msgstr "" #: src/settings_translation_file.cpp -msgid "Slice w" +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" +"Na sochairean a gheibh cleachdaichean ùra gu fèin-obrachail.\n" +"Faic /privs sa gheama airson liosta slàn air rèiteachadh an fhrithealaiche " +"’s nan tuilleadan agad." + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" +"True = 256\n" +"False = 128\n" +"Gabhaidh a chleachdadh airson am meanbh-mhapa a dhèanamh nas rèidhe air " +"uidheaman slaodach." + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "Astar tar-chur nan cluicheadairean gun chuingeachadh" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "Dràibhear video" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." msgstr "" #: src/settings_translation_file.cpp @@ -6363,273 +6426,254 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Julia x" +msgid "Walking and flying speed, in nodes per second." +msgstr "Luaths na coiseachd is sgiathaidh, ann an nòd gach diog." + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" +"Luaths na coiseachd, sgiathaidh is sreap sa mhodh luath, ann an nòd gach " +"diog." + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "Àirde an uisge" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "Àirde uachdar an uisge air an t-saoghal." + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "Crathadh duillich" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia w" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." msgstr "" #: src/settings_translation_file.cpp -msgid "Seabed noise" +msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" +"Co-dhiù am faod cluicheadairean càch a chèile a leòn ’s a mharbhadh gus nach " +"fhaod." + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" +"Y air àirde neoini air caisead dùmhlachd nam beanntan. Thèid seo a " +"chleachdadh airson beanntan a thogail gu h-inghearach." + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" +"Seo an t-astar-Y eadar an dùbhlachd làn ’s an òir air cinn-chaoil na tìre " +"air fhleòd.\n" +"Tòsichidh na cinn-chaoil aig an astar seo on chrìoch Y.\n" +"Airson breath tìre air fhleòd sholadach, stiùirichidh seo àirde nan cnoc/nam " +"beanntan.\n" +"Feumaidh e a bhith nas lugha na no co-ionnann ris an dàrna leth dhen astar " +"eadar na crìochan Y." + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "Àirde-Y aig uachdar cuibheasach a’ chrutha-thìre." + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "Àirde-Y aig crìoch àrd nan uamhan." + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "Àirde-Y a’ chrutha-thìre nas àirde a chruthaicheas creagan." + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "Àirde-Y a’ chrutha-thìre ìosal agus grunnd na mara." + #: src/settings_translation_file.cpp msgid "Y-level of seabed." msgstr "Àirde-Y aig grunnd na mara." -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "Gineadair nam mapa Valleys" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa Valleys" - #: src/settings_translation_file.cpp msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Valleys.\n" -"“altitude_chill”: Bidh tìr àrd nas fhuaire.\n" -"“humid_rivers”: Bidh an tìr nas buige faisg air aibhnean.\n" -"“vary_river_depth”: Ma tha seo an comas, bidh aibhnean nas tana agus tioram " -"aig amannan ma tha an saoghal tioram no teth.\n" -"’“altitude_dry”: Bidh tìr àrd nas tiorma." - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "Doimhne nan aibhnean" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "Dè cho domhainn ’s a bhios aibhnean." - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "Meud nan aibhnean" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "Dè cho leathann ’s a bhios aibhnean." - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" -"Àrdaichidh seo an cruth-tìre airson glinn a chruthachadh timcheall air na " -"h-aibhnean." - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "Meudaichidh seo na glinn." - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "Meud nan cnapan" - -#: src/settings_translation_file.cpp -msgid "" -"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" -"WARNING!: There is no benefit, and there are several dangers, in\n" -"increasing this value above 5.\n" -"Reducing this value increases cave and dungeon density.\n" -"Altering this value is for special usage, leaving it unchanged is\n" -"recommended." -msgstr "" -"Meud nan cnapan mapa a thèid a ghintinn le gineadair nam mapa, ann am bloca " -"mapa (16 nòd).\n" -"RABHADH: Chan fhaigh thu buannachd ach cunnartan à luach nas àirde na 5.\n" -"Le luach nas lugha, gheibh thu barrachd uamhan is thuill-dubha.\n" -"Chan fhiach atharrachadh an luach seo ach air adhbhar sònraichte ’s " -"mholamaid\n" -"nach atharraich thu e." - -#: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "Dì-bhugachadh gineadair nam mapa" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." -msgstr "Dumpaich fiosrachadh dì-bhugachaidh aig gineadair nam mapa." - -#: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" +msgid "cURL file download timeout" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." +msgid "cURL parallel limit" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of emerge threads" +msgid "cURL timeout" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "Ionad-tasgaidh susbaint air loidhne" - -#: src/settings_translation_file.cpp -msgid "ContentDB URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The URL for the content repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" -msgstr "" +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Claonadh na h-èifeachd occlusion na paraileig air fheadh, seo sgèile/2 " +#~ "mar as àbhaist." diff --git a/po/gl/minetest.po b/po/gl/minetest.po index 115597bf8..43c9df64d 100644 --- a/po/gl/minetest.po +++ b/po/gl/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-07-08 20:47+0000\n" "Last-Translator: sfan5 \n" "Language-Team: Galician "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" msgstr "" #. ~ "defaults" is a noise parameter flag. @@ -517,76 +644,12 @@ msgstr "" msgid "eased" msgstr "" -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" +msgid "$1 mods" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -594,11 +657,7 @@ msgid "Failed to install $1 to $2" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" +msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -606,15 +665,7 @@ msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -622,11 +673,47 @@ msgid "Install: file: \"$1\"" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" +msgid "Unable to find a valid mod or modpack" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" msgstr "" #: builtin/mainmenu/tab_content.lua @@ -634,7 +721,7 @@ msgid "Installed Packages:" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Browse online content" +msgid "No dependencies." msgstr "" #: builtin/mainmenu/tab_content.lua @@ -645,36 +732,12 @@ msgstr "" msgid "Rename" msgstr "" -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" +msgid "Use Texture Pack" msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -682,63 +745,73 @@ msgid "Active Contributors" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Port" +msgid "Creative Mode" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -746,7 +819,19 @@ msgid "Play Game" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -757,95 +842,51 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Favorite" msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua +msgid "PvP enabled" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "2x" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "4x" msgstr "" @@ -855,63 +896,19 @@ msgid "8x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" +msgid "All Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" +msgid "Bilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp @@ -919,15 +916,87 @@ msgid "Change Keys" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" +msgid "Connected Glass" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" +msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp @@ -935,49 +1004,41 @@ msgid "Tone Mapping" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" +msgid "Touchthreshold: (px)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" +msgid "Trilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + #: src/client/client.cpp msgid "Loading textures..." msgstr "" @@ -986,46 +1047,10 @@ msgstr "" msgid "Rebuilding shaders..." msgstr "" -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "" -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" msgstr "" @@ -1034,6 +1059,30 @@ msgstr "" msgid "Invalid gamespec." msgstr "" +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" #. into the translation field (literally). @@ -1047,128 +1096,42 @@ msgid "needs_fallback_font" msgstr "no" #: src/client/game.cpp -msgid "Shutting down..." +msgid "" +"\n" +"Check debug.txt for details." msgstr "" #: src/client/game.cpp -msgid "Creating server..." +msgid "- Address: " msgstr "" #: src/client/game.cpp -msgid "Creating client..." +msgid "- Creative Mode: " msgstr "" #: src/client/game.cpp -msgid "Resolving address..." +msgid "- Damage: " msgstr "" #: src/client/game.cpp -msgid "Connecting to server..." +msgid "- Mode: " msgstr "" #: src/client/game.cpp -msgid "Item definitions..." +msgid "- Port: " msgstr "" #: src/client/game.cpp -msgid "Node definitions..." +msgid "- Public: " +msgstr "" + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +msgid "- PvP: " msgstr "" #: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" +msgid "- Server Name: " msgstr "" #: src/client/game.cpp @@ -1176,63 +1139,7 @@ msgid "Automatic forward disabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" +msgid "Automatic forward enabled" msgstr "" #: src/client/game.cpp @@ -1244,30 +1151,66 @@ msgid "Camera update enabled" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" +msgid "Change Password" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/client/game.cpp +msgid "Continue" msgstr "" #: src/client/game.cpp #, c-format -msgid "Viewing range changed to %d" +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" +msgid "Creating client..." msgstr "" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" +msgid "Creating server..." msgstr "" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" +msgid "Debug info and profiler graph hidden" msgstr "" #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" msgstr "" #: src/client/game.cpp @@ -1287,38 +1230,11 @@ msgid "" msgstr "" #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" +msgid "Disabled unlimited viewing range" msgstr "" #: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" +msgid "Enabled unlimited viewing range" msgstr "" #: src/client/game.cpp @@ -1329,20 +1245,44 @@ msgstr "" msgid "Exit to OS" msgstr "" +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + #: src/client/game.cpp msgid "Game info:" msgstr "" #: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " +msgid "Game paused" msgstr "" #: src/client/game.cpp @@ -1350,15 +1290,39 @@ msgid "Hosting server" msgstr "" #: src/client/game.cpp -msgid "- Port: " +msgid "Item definitions..." msgstr "" #: src/client/game.cpp -msgid "Singleplayer" +msgid "KiB/s" msgstr "" #: src/client/game.cpp -msgid "On" +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Node definitions..." msgstr "" #: src/client/game.cpp @@ -1366,34 +1330,87 @@ msgid "Off" msgstr "" #: src/client/game.cpp -msgid "- Damage: " +msgid "On" msgstr "" #: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " +msgid "Pitch move mode disabled" msgstr "" #: src/client/game.cpp -msgid "- Public: " +msgid "Pitch move mode enabled" msgstr "" #: src/client/game.cpp -msgid "- Server Name: " +msgid "Profiler graph shown" msgstr "" #: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." +msgid "Remote server" msgstr "" -#: src/client/gameui.cpp -msgid "Chat shown" +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "ok" msgstr "" #: src/client/gameui.cpp @@ -1401,7 +1418,7 @@ msgid "Chat hidden" msgstr "" #: src/client/gameui.cpp -msgid "HUD shown" +msgid "Chat shown" msgstr "" #: src/client/gameui.cpp @@ -1409,32 +1426,20 @@ msgid "HUD hidden" msgstr "" #: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" +msgid "HUD shown" msgstr "" #: src/client/gameui.cpp msgid "Profiler hidden" msgstr "" -#: src/client/keycode.cpp -msgid "Left Button" +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" msgstr "" #: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" +msgid "Apps" msgstr "" #: src/client/keycode.cpp @@ -1442,106 +1447,120 @@ msgid "Backspace" msgstr "" #: src/client/keycode.cpp -msgid "Tab" +msgid "Caps Lock" msgstr "" #: src/client/keycode.cpp msgid "Clear" msgstr "" -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - #: src/client/keycode.cpp msgid "Control" msgstr "" +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" msgstr "" #: src/client/keycode.cpp -msgid "Pause" +msgid "Middle Button" msgstr "" #: src/client/keycode.cpp -msgid "Caps Lock" +msgid "Num Lock" msgstr "" #: src/client/keycode.cpp -msgid "Space" +msgid "Numpad *" msgstr "" #: src/client/keycode.cpp -msgid "Page up" +msgid "Numpad +" msgstr "" #: src/client/keycode.cpp -msgid "Page down" +msgid "Numpad -" msgstr "" #: src/client/keycode.cpp -msgid "End" +msgid "Numpad ." msgstr "" #: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" +msgid "Numpad /" msgstr "" #: src/client/keycode.cpp @@ -1585,79 +1604,69 @@ msgid "Numpad 9" msgstr "" #: src/client/keycode.cpp -msgid "Numpad *" +msgid "OEM Clear" msgstr "" #: src/client/keycode.cpp -msgid "Numpad +" +msgid "Page down" msgstr "" #: src/client/keycode.cpp -msgid "Numpad ." +msgid "Page up" msgstr "" #: src/client/keycode.cpp -msgid "Numpad -" +msgid "Pause" msgstr "" #: src/client/keycode.cpp -msgid "Numpad /" +msgid "Play" +msgstr "" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" msgstr "" #: src/client/keycode.cpp -msgid "Num Lock" +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" msgstr "" #: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" +msgid "Right Button" msgstr "" #: src/client/keycode.cpp msgid "Right Control" msgstr "" -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - #: src/client/keycode.cpp msgid "Right Menu" msgstr "" #: src/client/keycode.cpp -msgid "IME Escape" +msgid "Right Shift" msgstr "" #: src/client/keycode.cpp -msgid "IME Convert" +msgid "Right Windows" msgstr "" #: src/client/keycode.cpp -msgid "IME Nonconvert" +msgid "Scroll Lock" +msgstr "" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" msgstr "" #: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" +msgid "Shift" msgstr "" #: src/client/keycode.cpp @@ -1665,19 +1674,57 @@ msgid "Sleep" msgstr "" #: src/client/keycode.cpp -msgid "Erase EOF" +msgid "Snapshot" msgstr "" #: src/client/keycode.cpp -msgid "Play" +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "" -#: src/client/keycode.cpp -msgid "OEM Clear" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" msgstr "" #: src/gui/guiConfirmRegistration.cpp @@ -1690,150 +1737,118 @@ msgid "" "creation, or click 'Cancel' to abort." msgstr "" -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" +msgid "Autoforward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" @@ -1842,16 +1857,36 @@ msgstr "" msgid "Toggle chat log" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" msgstr "" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "New Password" +msgid "Change" msgstr "" #: src/gui/guiPasswordChange.cpp @@ -1859,11 +1894,11 @@ msgid "Confirm Password" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "Change" +msgid "New Password" msgstr "" -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" msgstr "" #: src/gui/guiVolumeChange.cpp @@ -1874,6 +1909,10 @@ msgstr "" msgid "Muted" msgstr "" +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1887,199 +1926,12 @@ msgstr "" msgid "LANG_CODE" msgstr "gl" -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" @@ -2087,1406 +1939,103 @@ msgid "" "circle." msgstr "" -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." msgstr "" #: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." +msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "Leaves style" +msgid "2D noise that controls the shape/size of rolling hills." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" +msgid "2D noise that controls the shape/size of step mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." +msgid "2D noise that controls the size/occurrence of rolling hills." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds" +msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." +msgid "2D noise that locates the river valleys and channels." msgstr "" #: src/settings_translation_file.cpp msgid "3D clouds" msgstr "" -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - #: src/settings_translation_file.cpp msgid "3D mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "3D mode parallax strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + #: src/settings_translation_file.cpp msgid "" "3D support.\n" @@ -3502,198 +2051,97 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "3D mode parallax strength" +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." msgstr "" #: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." +msgid "A message to be displayed to all clients when the server crashes." msgstr "" #: src/settings_translation_file.cpp -msgid "Console height" +msgid "A message to be displayed to all clients when the server shuts down." msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgid "ABM interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Console color" +msgid "ABM time budget" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." +msgid "Absolute limit of queued blocks to emerge" msgstr "" #: src/settings_translation_file.cpp -msgid "Console alpha" +msgid "Acceleration in air" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgid "Acceleration of gravity, in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" +msgid "Active Block Modifiers" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." +msgid "Active block management interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" +msgid "Active block range" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" +msgid "Active object send range" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." msgstr "" #: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" +msgid "Adds particles when digging a node." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" +#, c-format +msgid "" +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." msgstr "" #: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgid "Always fly and fast" msgstr "" #: src/settings_translation_file.cpp @@ -3701,123 +2149,23 @@ msgid "Ambient occlusion gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." +msgid "Amount of messages a player may send per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Inventory items animations" +msgid "Amplifies the valleys." msgstr "" #: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." +msgid "Anisotropic filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "Fog start" +msgid "Announce server" msgstr "" #: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." +msgid "Announce to this serverlist." msgstr "" #: src/settings_translation_file.cpp @@ -3829,1074 +2177,23 @@ msgid "Append item name to tooltip." msgstr "" #: src/settings_translation_file.cpp -msgid "FreeType fonts" +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." msgstr "" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "At this distance the server will aggressively optimize which blocks are sent " @@ -4913,7 +2210,1378 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default stack size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS when unfocused or paused" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font bold by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font italic by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the default font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the fallback font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the monospace font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." msgstr "" #: src/settings_translation_file.cpp @@ -4926,7 +3594,1653 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost center" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost spread" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve high gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve low gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path of the fallback font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to save screenshots at. Can be an absolute or relative path.\n" +"The folder will be created if it doesn't already exist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prometheus listener address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Proportion of large caves that contain liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Regular font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" msgstr "" #: src/settings_translation_file.cpp @@ -4944,812 +5258,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." +msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp @@ -5757,127 +5266,7 @@ msgid "Ridge noise" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." +msgid "Ridge underwater noise" msgstr "" #: src/settings_translation_file.cpp @@ -5885,15 +5274,19 @@ msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." +msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Step mountain size noise" +msgid "River channel depth" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." +msgid "River channel width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River depth" msgstr "" #: src/settings_translation_file.cpp @@ -5901,102 +5294,115 @@ msgid "River noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." +msgid "River size" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain variation noise" +msgid "River valley width" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgid "Rollback recording" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" +msgid "Rolling hill size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." msgstr "" #: src/settings_translation_file.cpp -msgid "Ground level" +msgid "Screen height" msgstr "" #: src/settings_translation_file.cpp -msgid "Y of flat ground." +msgid "Screen width" msgstr "" #: src/settings_translation_file.cpp -msgid "Lake threshold" +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." msgstr "" #: src/settings_translation_file.cpp -msgid "Lake steepness" +msgid "Seabed noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." +msgid "Second of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Hill threshold" +msgid "Second of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." +msgid "Security" msgstr "" #: src/settings_translation_file.cpp -msgid "Hill steepness" +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." +msgid "Selection box border color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain noise" +msgid "Selection box color" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" +msgid "Selection box width" msgstr "" #: src/settings_translation_file.cpp @@ -6023,217 +5429,113 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Iterations" +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." msgstr "" #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia x" +msgid "Shader path" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia w" +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Show entity selection boxes\n" +"A restart is required after changing this." msgstr "" #: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" +msgid "Shutdown message" msgstr "" #: src/settings_translation_file.cpp @@ -6247,65 +5549,207 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen debug" +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." msgstr "" #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." +msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" +msgid "Slope and fill work together to modify the heights." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." +msgid "Small cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +msgid "Small cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." msgstr "" #: src/settings_translation_file.cpp -msgid "Online Content Repository" +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB URL" +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Surface level of optional water placed on a solid floatland layer.\n" +"Water is disabled by default and will only be placed if this value is set\n" +"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" +"upper tapering).\n" +"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" +"When enabling water placement the floatlands must be configured and tested\n" +"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" +"required value depending on 'mgv7_np_floatland'), to avoid\n" +"server-intensive extreme water flow and to avoid vast flooding of the\n" +"world surface below." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." msgstr "" #: src/settings_translation_file.cpp @@ -6313,16 +5757,604 @@ msgid "The URL for the content repository" msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" +msgid "The deadzone of the joystick" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" msgstr "" diff --git a/po/he/minetest.po b/po/he/minetest.po index f98be26a7..bc0a9e5dc 100644 --- a/po/he/minetest.po +++ b/po/he/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Hebrew (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-01-08 17:32+0000\n" "Last-Translator: Omer I.S. \n" "Language-Team: Hebrew \n" "Language-Team: Hindi \n" "Language-Team: Hungarian 0." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "A lebegő szigetek sima területeit határozza meg.\n" -#~ "Lapos szigetek ott fordulnak elő, ahol a zaj értéke pozitív." - -#~ msgid "Darkness sharpness" -#~ msgstr "a sötétség élessége" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "A járatok szélességét határozza meg, alacsonyabb érték szélesebb " -#~ "járatokat hoz létre." - -#, fuzzy -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "A lebegő szigetek hegységeinek sűrűségét szabályozza.\n" -#~ "Az \"np_mountain\" zaj értékéhez hozzáadott eltolás." +#~ "0 = parallax occlusion with slope information (gyorsabb).\n" +#~ "1 = relief mapping (lassabb, pontosabb)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7074,14 +7055,205 @@ msgstr "cURL időkorlát" #~ "fényerő.\n" #~ "Ez a beállítás csak a kliensre érvényes, a szerver nem veszi figyelembe." -#~ msgid "Path to save screenshots at." -#~ msgstr "Képernyőmentések mappája." - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 letöltése és telepítése, kérlek várj…" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Biztosan visszaállítod az egyjátékos világod?" #~ msgid "Back" #~ msgstr "Vissza" +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmappolás" + +#, fuzzy +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Megváltoztatja a főmenü felhasználói felületét:\n" +#~ "- Teljes: Több egyjátékos világ, játékválasztás, textúracsomag-választó " +#~ "stb.\n" +#~ "- Egyszerű: Egy egyjátékos világ, nincs játék- vagy textúracsomag-" +#~ "választó.\n" +#~ "Szükséges lehet a kisebb képernyőkhöz." + +#~ msgid "Config mods" +#~ msgstr "Modok beállítása" + +#~ msgid "Configure" +#~ msgstr "Beállítás" + +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "A lebegő szigetek hegységeinek sűrűségét szabályozza.\n" +#~ "Az \"np_mountain\" zaj értékéhez hozzáadott eltolás." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "A járatok szélességét határozza meg, alacsonyabb érték szélesebb " +#~ "járatokat hoz létre." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Célkereszt színe (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "a sötétség élessége" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "A lebegő szigetek sima területeit határozza meg.\n" +#~ "Lapos szigetek ott fordulnak elő, ahol a zaj értéke pozitív." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "A textúrák mintavételezési lépésközét adja meg.\n" +#~ "Nagyobb érték simább normal map-et eredményez." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 letöltése és telepítése, kérlek várj…" + +#~ msgid "Enable VBO" +#~ msgstr "VBO engedélyez" + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "filmes tónus effektek bekapcsolása" + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Parallax occlusion mapping bekapcsolása.\n" +#~ "A shaderek engedélyezve kell hogy legyenek." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Kísérleti opció, látható rések jelenhetnek meg a blokkok között\n" +#~ "ha nagyobbra van állítva, mint 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS a szünet menüben" + +#, fuzzy +#~ msgid "Floatland base height noise" +#~ msgstr "A lebegő hegyek alapmagassága" + +#, fuzzy +#~ msgid "Floatland mountain height" +#~ msgstr "Lebegő hegyek magassága" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Betűtípus árnyék alfa (átlátszatlanság, 0 és 255 között)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Normál felületek generálása" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normálfelületek generálása" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 támogatás." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "Nagy barlang mélység" + +#, fuzzy +#~ msgid "Lightness sharpness" +#~ msgstr "Fényélesség" + +#~ msgid "Main" +#~ msgstr "Fő" + +#~ msgid "Main menu style" +#~ msgstr "Főmenü stílusa" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Kistérkép radar módban x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Kistérkép radar módban x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Kistérkép terület módban x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Kistérkép terület módban x4" + +#~ msgid "Name/Password" +#~ msgstr "Név/jelszó" + +#~ msgid "No" +#~ msgstr "Nem" + #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion ( domború textúra )" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax Occlusion effekt" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Parallax Occlusion módja" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax Occlusion mértéke" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "A TrueType betűtípus (ttf) vagy bitmap útvonala." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Képernyőmentések mappája." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Egyjátékos világ visszaállítása" + +#~ msgid "Select Package File:" +#~ msgstr "csomag fájl kiválasztása:" + +#, fuzzy +#~ msgid "Shadow limit" +#~ msgstr "Térképblokk korlát" + +#~ msgid "Start Singleplayer" +#~ msgstr "Egyjátékos mód indítása" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Generált normálfelületek erőssége." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Ezt a betűtípust bizonyos nyelvek használják." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Váltás „mozi” módba" + +#~ msgid "View" +#~ msgstr "Megtekintés" + +#~ msgid "Waving Water" +#~ msgstr "Hullámzó víz" + +#~ msgid "Waving water" +#~ msgstr "Hullámzó víz" + +#~ msgid "Yes" +#~ msgstr "Igen" diff --git a/po/id/minetest.po b/po/id/minetest.po index eaf34894f..0343dc677 100644 --- a/po/id/minetest.po +++ b/po/id/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Indonesian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-01-08 17:32+0000\n" "Last-Translator: Ferdinand Tampubolon \n" "Language-Team: Indonesian 0." -#~ msgstr "" -#~ "Mengatur daerah dari medan halus floatland.\n" -#~ "Floatland halus muncul saat noise > 0." - -#~ msgid "Darkness sharpness" -#~ msgstr "Kecuraman kegelapan" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Mengatur lebar terowongan, nilai lebih kecil terowongan semakin lebar." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Atur kepadatan floatland berbentuk gunung.\n" -#~ "Merupakan pergeseran yang ditambahkan ke nilai noise \"mgv7_np_mountain\"." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Titik tengah penguatan tengah kurva cahaya." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Ubah cara gunung floatland meramping di atas dan di bawah titik tengah." +#~ "0 = parallax occlusion dengan informasi kemiringan (cepat).\n" +#~ "1 = relief mapping (pelan, lebih akurat)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7305,20 +7256,277 @@ msgstr "Waktu habis untuk cURL" #~ "Angka yang lebih tinggi lebih terang.\n" #~ "Pengaturan ini untuk klien saja dan diabaikan oleh peladen." -#~ msgid "Path to save screenshots at." -#~ msgstr "Jalur untuk menyimpan tangkapan layar." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Ubah cara gunung floatland meramping di atas dan di bawah titik tengah." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Kekuatan parallax occlusion" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Batas antrean kemunculan (emerge queue) pada diska" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Mengunduh dan memasang $1, mohon tunggu..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Apakah Anda yakin ingin mengatur ulang dunia Anda?" #~ msgid "Back" #~ msgstr "Kembali" +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Titik tengah penguatan tengah kurva cahaya." + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Mengubah antarmuka menu utama:\n" +#~ "- Full: Banyak dunia pemain tunggal, pilih permainan, paket tekstur, " +#~ "dll.\n" +#~ "- Simple: Satu dunia pemain tunggal, tanpa pilihan permainan atau " +#~ "paket\n" +#~ "tekstur. Cocok untuk layar kecil." + +#~ msgid "Config mods" +#~ msgstr "Konfigurasi mod" + +#~ msgid "Configure" +#~ msgstr "Konfigurasi" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Atur kepadatan floatland berbentuk gunung.\n" +#~ "Merupakan pergeseran yang ditambahkan ke nilai noise \"mgv7_np_mountain\"." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Mengatur lebar terowongan, nilai lebih kecil terowongan semakin lebar." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Warna crosshair: (merah,hijau,biru) atau (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Kecuraman kegelapan" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Mengatur daerah dari medan halus floatland.\n" +#~ "Floatland halus muncul saat noise > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Menentukan langkah penyampelan tekstur.\n" +#~ "Nilai lebih tinggi menghasilkan peta lebih halus." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Mengunduh dan memasang $1, mohon tunggu..." + +#~ msgid "Enable VBO" +#~ msgstr "Gunakan VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Gunakan bumpmapping untuk tekstur. Normalmap harus disediakan oleh paket\n" +#~ "tekstur atau harus dihasilkan otomatis.\n" +#~ "Membutuhkan penggunaan shader." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Gunakan pemetaan suasana (tone mapping) filmis" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Buat normalmap secara langsung (efek Emboss).\n" +#~ "Membutuhkan penggunaan bumpmapping." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Gunakan pemetaan parallax occlusion.\n" +#~ "Membutuhkan penggunaan shader." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Masih tahap percobaan, dapat menyebabkan terlihatnya spasi antarblok\n" +#~ "saat diatur dengan angka yang lebih besar dari 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS (bingkai per detik) pada menu jeda" + +#~ msgid "Floatland base height noise" +#~ msgstr "Noise ketinggian dasar floatland" + +#~ msgid "Floatland mountain height" +#~ msgstr "Ketinggian gunung floatland" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Keburaman bayangan fon (keopakan, dari 0 sampai 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Buat Normal Maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Buat normalmap" + +#~ msgid "IPv6 support." +#~ msgstr "Dukungan IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Kedalaman lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Kecuraman keterangan" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Batas antrean kemunculan (emerge queue) pada diska" + +#~ msgid "Main" +#~ msgstr "Beranda" + +#~ msgid "Main menu style" +#~ msgstr "Gaya menu utama" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Peta mini mode radar, perbesaran 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Peta mini mode radar, perbesaran 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Peta mini mode permukaan, perbesaran 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Peta mini mode permukaan, perbesaran 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nama/Kata Sandi" + +#~ msgid "No" +#~ msgstr "Tidak" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Sampling normalmap" + +#~ msgid "Normalmaps strength" +#~ msgstr "Kekuatan normalmap" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Jumlah pengulangan parallax occlusion." + #~ msgid "Ok" #~ msgstr "Oke" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Bias keseluruhan dari efek parallax occlusion, biasanya skala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Skala keseluruhan dari efek parallax occlusion." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Pergeseran parallax occlusion" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Pengulangan parallax occlusion" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Mode parallax occlusion" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skala parallax occlusion" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Kekuatan parallax occlusion" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Jalur ke TrueTypeFont atau bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Jalur untuk menyimpan tangkapan layar." + +#~ msgid "Projecting dungeons" +#~ msgstr "Dungeon yang menonjol" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Atur ulang dunia pemain tunggal" + +#~ msgid "Select Package File:" +#~ msgstr "Pilih berkas paket:" + +#~ msgid "Shadow limit" +#~ msgstr "Batas bayangan" + +#~ msgid "Start Singleplayer" +#~ msgstr "Mulai Pemain Tunggal" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Kekuatan normalmap yang dibuat." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Kekuatan penguatan tengah kurva cahaya." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Fon ini akan digunakan pada bahasa tertentu." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Mode sinema" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Ketinggian maksimum secara umum, di atas dan di bawah titik tengah, dari " +#~ "gunung floatland." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variasi dari ketinggian bukit dan kedalaman danau pada medan halus " +#~ "floatland." + +#~ msgid "View" +#~ msgstr "Tinjau" + +#~ msgid "Waving Water" +#~ msgstr "Air Berombak" + +#~ msgid "Waving water" +#~ msgstr "Air berombak" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Apakah dungeon terkadang muncul dari medan." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Batas atas Y untuk lava dalam gua besar." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Ketinggian Y dari titik tengah floatland dan permukaan danau." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Ketinggian Y tempat bayangan floatland diperpanjang." + +#~ msgid "Yes" +#~ msgstr "Ya" diff --git a/po/it/minetest.po b/po/it/minetest.po index ac63ae8c4..78f0d7503 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-12-07 09:22+0000\n" "Last-Translator: Giov4 \n" "Language-Team: Italian 0." -#~ msgstr "" -#~ "Definisce aree di terreno uniforme nelle terre fluttuanti.\n" -#~ "Le terre fluttuanti uniformi avvengono quando il rumore è > 0." - -#~ msgid "Darkness sharpness" -#~ msgstr "Nitidezza dell'oscurità" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Controlla la larghezza delle gallerie, un valore più piccolo crea " -#~ "gallerie più larghe." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Controlla la densità delle terre fluttuanti di tipo montuoso.\n" -#~ "È uno spostamento di rumore aggiunto al valore del rumore " -#~ "'mgv7_np_mountain'." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Centro dell'aumento mediano della curva della luce." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Modifica il restringimento superiore e inferiore rispetto al punto " -#~ "mediano delle terre fluttuanti di tipo montagnoso." +#~ "0 = occlusione di parallasse con informazione di inclinazione (più " +#~ "veloce).\n" +#~ "1 = relief mapping (più lenta, più accurata)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7489,20 +7425,293 @@ msgstr "Scadenza cURL" #~ "sono più chiari.\n" #~ "Questa impostazione è solo per il client ed è ignorata dal server." -#~ msgid "Path to save screenshots at." -#~ msgstr "Percorso dove salvare le schermate." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Modifica il restringimento superiore e inferiore rispetto al punto " +#~ "mediano delle terre fluttuanti di tipo montagnoso." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Intensità dell'occlusione di parallasse" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limite di code emerge su disco" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Scaricamento e installazione di $1, attendere prego..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Sei sicuro di azzerare il tuo mondo locale?" #~ msgid "Back" #~ msgstr "Indietro" +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Centro dell'aumento mediano della curva della luce." + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Cambia l'UI del menu principale:\n" +#~ "- Completa: mondi locali multipli, scelta del gioco, selettore " +#~ "pacchetti texture, ecc.\n" +#~ "- Semplice: un mondo locale, nessun selettore di gioco o pacchetti " +#~ "grafici.\n" +#~ "Potrebbe servire per gli schermi più piccoli." + +#~ msgid "Config mods" +#~ msgstr "Config mod" + +#~ msgid "Configure" +#~ msgstr "Configura" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Controlla la densità delle terre fluttuanti di tipo montuoso.\n" +#~ "È uno spostamento di rumore aggiunto al valore del rumore " +#~ "'mgv7_np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Controlla la larghezza delle gallerie, un valore più piccolo crea " +#~ "gallerie più larghe." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Colore del mirino (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Nitidezza dell'oscurità" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Definisce aree di terreno uniforme nelle terre fluttuanti.\n" +#~ "Le terre fluttuanti uniformi avvengono quando il rumore è > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Stabilisce il passo di campionamento della texture.\n" +#~ "Un valore maggiore dà normalmap più uniformi." + +#~ msgid "" +#~ "Deprecated, define and locate cave liquids using biome definitions " +#~ "instead.\n" +#~ "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Sconsigliato, va usata la definizione del bioma per definire e " +#~ "posizionare le caverne di liquido.\n" +#~ "Limite verticale della lava nelle caverne grandi." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Scaricamento e installazione di $1, attendere prego..." + +#~ msgid "Enable VBO" +#~ msgstr "Abilitare i VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Attiva il bumpmapping per le texture. È necessario fornire le normalmap\n" +#~ "con i pacchetti texture, o devono essere generate automaticamente.\n" +#~ "Necessita l'attivazione degli shader." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Attiva il filmic tone mapping" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Attiva la generazione istantanea delle normalmap (effetto rilievo).\n" +#~ "Necessita l'attivazione del bumpmapping." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Attiva la parallax occlusion mapping.\n" +#~ "Necessita l'attivazione degli shader." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Opzione sperimentale, potrebbe causare spazi visibili tra i blocchi\n" +#~ "quando impostata su numeri maggiori di 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS nel menu di pausa" + +#~ msgid "Floatland base height noise" +#~ msgstr "Rumore base dell'altezza delle terre fluttuanti" + +#~ msgid "Floatland mountain height" +#~ msgstr "Altezza delle montagne delle terre fluttuanti" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Trasparenza ombreggiatura carattere (opacità, tra 0 e 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Genera Normal Map" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generare le normalmap" + +#~ msgid "IPv6 support." +#~ msgstr "Supporto IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Profondità della lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Nitidezza della luminosità" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limite di code emerge su disco" + +#~ msgid "Main" +#~ msgstr "Principale" + +#~ msgid "Main menu style" +#~ msgstr "Stile del menu principale" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimappa in modalità radar, ingrandimento x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimappa in modalità radar, ingrandimento x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimappa in modalità superficie, ingrandimento x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimappa in modalità superficie, ingrandimento x4" + +#~ msgid "Name/Password" +#~ msgstr "Nome/Password" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Campionamento normalmap" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intensità normalmap" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Numero di iterazioni dell'occlusione di parallasse." + #~ msgid "Ok" #~ msgstr "OK" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Deviazione complessiva dell'effetto di occlusione di parallasse, " +#~ "solitamente scala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Scala globale dell'effetto di occlusione di parallasse." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Deviazione dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iterazioni dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Modalità dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Scala dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Intensità dell'occlusione di parallasse" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Percorso del carattere TrueType o bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Percorso dove salvare le schermate." + +#~ msgid "Projecting dungeons" +#~ msgstr "Sotterranei protundenti" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Azzera mondo locale" + +#~ msgid "Select Package File:" +#~ msgstr "Seleziona pacchetto file:" + +#~ msgid "Shadow limit" +#~ msgstr "Limite dell'ombra" + +#~ msgid "Start Singleplayer" +#~ msgstr "Avvia in locale" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intensità delle normalmap generate." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Intensità dell'aumento mediano della curva di luce." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Questo carattere sarà usato per certe Lingue." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Scegli cinematica" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Altezza massima tipica, sopra e sotto il punto medio, delle montagne dei " +#~ "terreni fluttuanti." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variazione dell'altezza delle colline, e della profondità dei laghi sul\n" +#~ "terreno uniforme delle terre fluttuanti." + +#~ msgid "View" +#~ msgstr "Vedi" + +#~ msgid "Waving Water" +#~ msgstr "Acqua ondeggiante" + +#~ msgid "Waving water" +#~ msgstr "Acqua ondeggiante" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Se i sotterranei saltuariamente si protendono dal terreno." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y del limite superiore della lava nelle caverne grandi." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "Livello Y del punto medio delle terre fluttuanti e della superficie dei " +#~ "laghi." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Livello Y a cui si estendono le ombre delle terre fluttuanti." + +#~ msgid "Yes" +#~ msgstr "Sì" diff --git a/po/ja/minetest.po b/po/ja/minetest.po index f274682c4..ac2e2155f 100644 --- a/po/ja/minetest.po +++ b/po/ja/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Japanese (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-06-15 22:41+0000\n" "Last-Translator: BreadW \n" "Language-Team: Japanese 0." +#~ msgstr "" +#~ "浮遊大陸の滑らかな地形の地域を定義します。\n" +#~ "ノイズが 0 より大きいとき、滑らかな浮遊大陸になります。" + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "テクスチャのサンプリング手順を定義します。\n" +#~ "値が大きいほど、法線マップが滑らかになります。" #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " @@ -7257,54 +7319,202 @@ msgstr "cURLタイムアウト" #~ "す。\n" #~ "大きな洞窟内の溶岩のY高さ上限。" -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "浮遊大陸の滑らかな地形の地域を定義します。\n" -#~ "ノイズが 0 より大きいとき、滑らかな浮遊大陸になります。" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1をインストールしています、お待ちください..." -#~ msgid "Darkness sharpness" -#~ msgstr "暗さの鋭さ" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "トンネルの幅を制御、小さい方の値ほど広いトンネルを生成します。" +#~ msgid "Enable VBO" +#~ msgstr "VBOを有効化" #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "山型浮遊大陸の密度を制御します。\n" -#~ "ノイズのオフセットは、'mgv7_np_mountain' ノイズ値に追加されます。" +#~ "テクスチャのバンプマッピングを有効にします。法線マップは\n" +#~ "テクスチャパックによって提供されるかまたは自動生成される必要があります。\n" +#~ "シェーダーが有効である必要があります。" -#~ msgid "Center of light curve mid-boost." -#~ msgstr "光度曲線ミッドブーストの中心。" - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "山型浮遊大陸が中間点の上下でどのように先細くなるかを変更します。" +#~ msgid "Enables filmic tone mapping" +#~ msgstr "フィルム調トーンマッピング有効にする" #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "ライトテーブルのガンマ補正を調整します。数値が大きいほど明るくなります。\n" -#~ "この設定はクライアント専用であり、サーバでは無視されます。" +#~ "法線マップ生成を臨機応変に有効にします(エンボス効果)。\n" +#~ "バンプマッピングが有効である必要があります。" -#~ msgid "Path to save screenshots at." -#~ msgstr "スクリーンショットを保存するパス。" +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "視差遮蔽マッピングを有効にします。\n" +#~ "シェーダーが有効である必要があります。" -#~ msgid "Parallax occlusion strength" -#~ msgstr "視差遮蔽強度" +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "実験的なオプションで、0 より大きい数値に設定すると、ブロック間に\n" +#~ "目に見えるスペースが生じる可能性があります。" + +#~ msgid "FPS in pause menu" +#~ msgstr "ポーズメニューでのFPS" + +#~ msgid "Floatland base height noise" +#~ msgstr "浮遊大陸の基準高さノイズ" + +#~ msgid "Floatland mountain height" +#~ msgstr "浮遊大陸の山の高さ" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "フォントの影の透過 (不透明、0~255の間)。" + +#~ msgid "Gamma" +#~ msgstr "ガンマ" + +#~ msgid "Generate Normal Maps" +#~ msgstr "法線マップの生成" + +#~ msgid "Generate normalmaps" +#~ msgstr "法線マップの生成" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 サポート。" + +#~ msgid "Lava depth" +#~ msgstr "溶岩の深さ" + +#~ msgid "Lightness sharpness" +#~ msgstr "明るさの鋭さ" #~ msgid "Limit of emerge queues on disk" #~ msgstr "ディスク上に出現するキューの制限" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1をインストールしています、お待ちください..." +#~ msgid "Main" +#~ msgstr "メイン" -#~ msgid "Back" -#~ msgstr "戻る" +#~ msgid "Main menu style" +#~ msgstr "メインメニューのスタイル" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "ミニマップ レーダーモード、ズーム x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "ミニマップ レーダーモード、ズーム x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "ミニマップ 表面モード、ズーム x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "ミニマップ 表面モード、ズーム x4" + +#~ msgid "Name/Password" +#~ msgstr "名前 / パスワード" + +#~ msgid "No" +#~ msgstr "いいえ" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法線マップのサンプリング" + +#~ msgid "Normalmaps strength" +#~ msgstr "法線マップの強さ" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "視差遮蔽反復の回数です。" #~ msgid "Ok" #~ msgstr "決定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "視差遮蔽効果の全体的バイアス、通常 スケール/2 です。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "視差遮蔽効果の全体的なスケールです。" + +#~ msgid "Parallax Occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "視差遮蔽バイアス" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "視差遮蔽反復" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "視差遮蔽モード" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "視差遮蔽スケール" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "視差遮蔽強度" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueTypeフォントまたはビットマップへのパス。" + +#~ msgid "Path to save screenshots at." +#~ msgstr "スクリーンショットを保存するパス。" + +#~ msgid "Projecting dungeons" +#~ msgstr "突出するダンジョン" + +#~ msgid "Reset singleplayer world" +#~ msgstr "ワールドをリセット" + +#~ msgid "Select Package File:" +#~ msgstr "パッケージファイルを選択:" + +#~ msgid "Shadow limit" +#~ msgstr "影の制限" + +#~ msgid "Start Singleplayer" +#~ msgstr "シングルプレイスタート" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生成された法線マップの強さです。" + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "光度曲線ミッドブーストの強さ。" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "このフォントは特定の言語で使用されます。" + +#~ msgid "Toggle Cinematic" +#~ msgstr "映画風モード切替" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "浮遊大陸の山の中間点の上と下の典型的な最大高さ。" + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "浮遊大陸の滑らかな地形における丘の高さと湖の深さの変動。" + +#~ msgid "View" +#~ msgstr "見る" + +#~ msgid "Waving Water" +#~ msgstr "揺れる水" + +#~ msgid "Waving water" +#~ msgstr "揺れる水" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "ダンジョンが時折地形から突出するかどうか。" + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大きな洞窟内の溶岩のY高さ上限。" + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "浮遊大陸の中間点と湖面のYレベル。" + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "浮遊大陸の影が広がるYレベル。" + +#~ msgid "Yes" +#~ msgstr "はい" diff --git a/po/jbo/minetest.po b/po/jbo/minetest.po index 016dd43ed..ab7b25e3e 100644 --- a/po/jbo/minetest.po +++ b/po/jbo/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Lojban (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-03-15 18:36+0000\n" "Last-Translator: Robin Townsend \n" "Language-Team: Lojban \n" "Language-Team: Kazakh \n" "Language-Team: Kannada \n" "Language-Team: Korean \n" "Language-Team: Kyrgyz \n" "Language-Team: Lithuanian \n" "Language-Team: Latvian \n" "Language-Team: LANGUAGE \n" @@ -49,14 +49,6 @@ msgstr "" msgid "An error occurred:" msgstr "" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " msgstr "" @@ -105,7 +97,8 @@ msgstr "" msgid "Optional dependencies:" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "" @@ -118,7 +111,8 @@ msgstr "" msgid "Save" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -185,14 +179,79 @@ msgid "Failed to download $1" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" +msgid "Already installed" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No updates" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update All [$1]" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "" @@ -206,7 +265,7 @@ msgid "Downloading..." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -218,7 +277,7 @@ msgid "Uninstall" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -563,6 +622,10 @@ msgstr "" msgid "Select file" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" msgstr "" @@ -627,6 +690,14 @@ msgstr "" msgid "$1 mods" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" msgstr "" @@ -687,12 +758,22 @@ msgstr "" msgid "Previous Contributors" msgstr "" +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" +msgid "Select Mods" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -703,11 +784,11 @@ msgstr "" msgid "Select World:" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Creative Mode" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "" @@ -724,7 +805,11 @@ msgid "Announce Server" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -755,36 +840,36 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -852,18 +937,6 @@ msgstr "" msgid "8x" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Smooth Lighting" msgstr "" @@ -905,11 +978,11 @@ msgid "Shaders" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" +msgid "Shaders (experimental)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" +msgid "Shaders (unavailable)" msgstr "" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp @@ -924,22 +997,10 @@ msgstr "" msgid "Touchthreshold: (px)" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Waving Liquids" msgstr "" @@ -960,18 +1021,6 @@ msgstr "" msgid "Settings" msgstr "" -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1000,10 +1049,6 @@ msgstr "" msgid "Main Menu" msgstr "" -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "" @@ -1016,6 +1061,10 @@ msgstr "" msgid "Please choose a name!" msgstr "" +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." msgstr "" @@ -1173,34 +1222,6 @@ msgstr "" msgid "Automatic forward disabled" msgstr "" -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" msgstr "" @@ -1292,13 +1313,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1678,6 +1699,24 @@ msgstr "" msgid "OEM Clear" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp #, c-format msgid "" @@ -2014,14 +2053,13 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" +msgid "Place repetition interval" msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -2115,6 +2153,14 @@ msgid "" "when holding down a joystick button combination." msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -2194,6 +2240,28 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "Inventory key" msgstr "" @@ -3045,8 +3113,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." msgstr "" #: src/settings_translation_file.cpp @@ -3092,90 +3165,6 @@ msgid "" "enhanced, highlights and shadows are gradually compressed." msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - #: src/settings_translation_file.cpp msgid "Waving Nodes" msgstr "" @@ -3269,11 +3258,11 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -3446,8 +3435,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -3584,7 +3573,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -3592,7 +3583,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -3762,6 +3755,12 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + #: src/settings_translation_file.cpp msgid "Menus" msgstr "" @@ -4344,6 +4343,19 @@ msgid "" "client number." msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "Default game" msgstr "" @@ -4777,8 +4789,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -4819,6 +4831,19 @@ msgstr "" msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "Dedicated server step" msgstr "" @@ -4846,6 +4871,16 @@ msgstr "" msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "NodeTimer interval" msgstr "" @@ -5199,20 +5234,6 @@ msgstr "" msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Main menu script" msgstr "" @@ -6324,3 +6345,14 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" diff --git a/po/ms/minetest.po b/po/ms/minetest.po index c10666a8e..0ea9bf28a 100644 --- a/po/ms/minetest.po +++ b/po/ms/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Malay (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-10-20 18:26+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" @@ -47,10 +47,6 @@ msgstr "Sambung semula" msgid "The server has requested a reconnect:" msgstr "Pelayan meminta anda untuk menyambung semula:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Sedang memuatkan..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Versi protokol tidak serasi. " @@ -63,12 +59,6 @@ msgstr "Pelayan menguatkuasakan protokol versi $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Pelayan menyokong protokol versi $1 hingga $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Cuba aktifkan semula senarai pelayan awam dan periksa sambungan internet " -"anda." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Kami hanya menyokong protokol versi $1." @@ -77,7 +67,8 @@ msgstr "Kami hanya menyokong protokol versi $1." msgid "We support protocol versions between version $1 and $2." msgstr "Kami menyokong protokol versi $1 hingga $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -87,7 +78,8 @@ msgstr "Kami menyokong protokol versi $1 hingga $2." msgid "Cancel" msgstr "Batal" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Kebergantungan:" @@ -160,14 +152,55 @@ msgstr "Dunia:" msgid "enabled" msgstr "Dibolehkan" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Memuat turun..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Semua pakej" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Kekunci telah digunakan untuk fungsi lain" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Kembali ke Menu Utama" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Hos Permainan" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB tidak tersedia apabila Minetest dikompil tanpa cURL" @@ -189,6 +222,16 @@ msgstr "Permainan" msgid "Install" msgstr "Pasang" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Pasang" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Kebergantungan pilihan:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -203,9 +246,26 @@ msgid "No results" msgstr "Tiada hasil" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Cari" +#, fuzzy +msgid "No updates" +msgstr "Kemas kini" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Not found" +msgstr "Bisukan bunyi" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -220,8 +280,12 @@ msgid "Update" msgstr "Kemas kini" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Lihat" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -518,6 +582,10 @@ msgstr "Pulihkan Tetapan Asal" msgid "Scale" msgstr "Skala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Cari" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Pilih direktori" @@ -633,6 +701,16 @@ msgstr "Gagal memasang mods sebagai $1" msgid "Unable to install a modpack as a $1" msgstr "Gagal memasang pek mods sebagai $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Sedang memuatkan..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Cuba aktifkan semula senarai pelayan awam dan periksa sambungan internet " +"anda." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Layari kandungan dalam talian" @@ -685,6 +763,17 @@ msgstr "Pembangun Teras" msgid "Credits" msgstr "Penghargaan" +#: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Pilih direktori" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "Penyumbang Terdahulu" @@ -702,14 +791,10 @@ msgid "Bind Address" msgstr "Alamat Ikatan" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurasi" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Mod Kreatif" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Boleh Cedera" @@ -726,8 +811,8 @@ msgid "Install games from ContentDB" msgstr "Pasangkan permainan daripada ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nama/Kata laluan" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -737,6 +822,11 @@ msgstr "Buat Baru" msgid "No world created or selected!" msgstr "Tiada dunia dicipta atau dipilih!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Kata Laluan Baru" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Mula Main" @@ -745,6 +835,11 @@ msgstr "Mula Main" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Pilih Dunia:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Pilih Dunia:" @@ -761,23 +856,23 @@ msgstr "Mulakan Permainan" msgid "Address / Port" msgstr "Alamat / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Sambung" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Mod Kreatif" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Boleh Cedera" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Padam Kegemaran" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Kegemaran" @@ -785,16 +880,16 @@ msgstr "Kegemaran" msgid "Join Game" msgstr "Sertai Permainan" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nama / Kata laluan" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Boleh Berlawan PvP" @@ -822,10 +917,6 @@ msgstr "Semua Tetapan" msgid "Antialiasing:" msgstr "Antialias:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Adakah anda mahu set semula dunia pemain perseorangan?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Autosimpan Saiz Skrin" @@ -834,10 +925,6 @@ msgstr "Autosimpan Saiz Skrin" msgid "Bilinear Filter" msgstr "Penapisan Bilinear" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Pemetaan Bertompok" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Tukar Kekunci" @@ -850,10 +937,6 @@ msgstr "Kaca Bersambungan" msgid "Fancy Leaves" msgstr "Daun Beragam" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Jana Peta Normal" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Peta Mip" @@ -862,10 +945,6 @@ msgstr "Peta Mip" msgid "Mipmap + Aniso. Filter" msgstr "Peta Mip + Penapisan Aniso" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Tidak" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Tiada Tapisan" @@ -894,18 +973,10 @@ msgstr "Daun Legap" msgid "Opaque Water" msgstr "Air Legap" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Oklusi Paralaks" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partikel" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Set semula dunia pemain perseorangan" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Skrin:" @@ -918,6 +989,11 @@ msgstr "Tetapan" msgid "Shaders" msgstr "Pembayang" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Tanah terapung (dalam ujikaji)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Pembayang (tidak tersedia)" @@ -962,22 +1038,6 @@ msgstr "Cecair Bergelora" msgid "Waving Plants" msgstr "Tumbuhan Bergoyang" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ya" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Konfigurasi mods" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Utama" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Mula Main Seorang" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Sambungan tamat tempoh." @@ -1133,20 +1193,20 @@ msgid "Continue" msgstr "Teruskan" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1295,34 +1355,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Peta mini dilumpuhkan oleh permainan atau mods" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Peta mini disembunyikan" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Peta mini dalam mod radar, Zum 1x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Peta mini dalam mod radar, Zum 2x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Peta mini dalam mod radar, Zum 4x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Peta mini dalam mod permukaan, Zum 1x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Peta mini dalam mod permukaan, Zum 2x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Peta mini dalam mod permukaan, Zum 4x" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Mod tembus blok dilumpuhkan" @@ -1715,6 +1747,25 @@ msgstr "Butang X 2" msgid "Zoom" msgstr "Zum" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Peta mini disembunyikan" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Peta mini dalam mod radar, Zum 1x" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Peta mini dalam mod permukaan, Zum 1x" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Saiz tekstur minimum" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Kata laluan tidak padan!" @@ -1986,14 +2037,6 @@ msgstr "" "Nilai asal ialah untuk bentuk penyek menegak sesuai untuk pulau,\n" "tetapkan kesemua 3 nombor yang sama untuk bentuk mentah." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = oklusi paralaks dengan maklumat cerun (lebih cepat).\n" -"1 = pemetaan bentuk muka bumi (lebih lambat, lebih tepat)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "Hingar 2D yang mengawal bentuk/saiz gunung rabung." @@ -2119,6 +2162,10 @@ msgstr "Mesej yang akan dipaparkan dekat semua klien apabila pelayan ditutup." msgid "ABM interval" msgstr "Selang masa ABM" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "Had mutlak untuk blok dibarisgilirkan untuk timbul" @@ -2277,8 +2324,8 @@ msgstr "" "akan dihantar kepada klien.\n" "Nilai lebih kecil berkemungkinan boleh meningkatkan prestasi dengan banyak,\n" "dengan mengorbankan glic penerjemahan tampak (sesetengah blok tidak akan\n" -"diterjemah di bawah air dan dalam gua, kekadang turut berlaku atas daratan)." -"\n" +"diterjemah di bawah air dan dalam gua, kekadang turut berlaku atas " +"daratan).\n" "Menetapkan nilai ini lebih bear daripada nilai max_block_send_distance akan\n" "melumpuhkan pengoptimunan ini.\n" "Nyatakan dalam unit blokpeta (16 nod)." @@ -2379,10 +2426,6 @@ msgstr "Bina dalam pemain" msgid "Builtin" msgstr "Terbina dalam" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Pemetaan bertompok" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2460,22 +2503,6 @@ msgstr "" "Pertengahan julat tolakan lengkung cahaya.\n" "Di mana 0.0 ialah aras cahaya minimum, 1.0 ialah maksimum." -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Mengubah antara muka menu utama:\n" -"- Penuh: Banyak dunia pemain perseorangan, pilihan permainan, pek " -"tekstur, dll.\n" -"- Mudah: Satu dunia pemain perseorangan, tiada pilihan permainan atau pek " -"tekstur.\n" -"Mungkin diperlukan untuk skrin yang lebih kecil." - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "Saiz fon sembang" @@ -2642,6 +2669,10 @@ msgstr "Ketinggian konsol" msgid "ContentDB Flag Blacklist" msgstr "Senarai Hitam Bendera ContentDB" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "URL ContentDB" @@ -2709,7 +2740,10 @@ msgid "Crosshair alpha" msgstr "Nilai alfa rerambut silang" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Nilai alfa rerambut silang (kelegapan, antara 0 dan 255)." #: src/settings_translation_file.cpp @@ -2717,8 +2751,10 @@ msgid "Crosshair color" msgstr "Warna rerambut silang" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Warna bagi kursor rerambut silang (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2822,14 +2858,6 @@ msgstr "Mentakrifkan struktur saluran sungai berskala besar." msgid "Defines location and terrain of optional hills and lakes." msgstr "Mentakrifkan kedudukan dan rupa bumi bukit dan tasik pilihan." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Mentakrifkan tahap persampelan tekstur.\n" -"Nilai lebih tinggi menghasilkan peta normal lebih lembut." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Mentakrifkan aras tanah asas." @@ -2910,6 +2938,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Menyahsegerakkan animasi blok" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Kekunci ke kanan" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Partikel ketika menggali" @@ -3088,18 +3121,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Membolehkan animasi item dalam inventori." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Membolehkan pemetaan bertompok pada tekstur. Peta normal perlu disediakan " -"oleh pek\n" -"tekstur atau perlu dijana secara automatik.\n" -"Perlukan pembayang dibolehkan." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Membolehkan pengagregatan jejaring yang diputar di paksi Y (facedir)." @@ -3108,22 +3129,6 @@ msgstr "Membolehkan pengagregatan jejaring yang diputar di paksi Y (facedir)." msgid "Enables minimap." msgstr "Membolehkan peta mini." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Membolehkan penjanaan peta normal secara layang (Kesan cetak timbul).\n" -"Perlukan pemetaan bertompok untuk dibolehkan." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Membolehkan pemetaan oklusi paralaks.\n" -"Memerlukan pembayang untuk dibolehkan." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3144,14 +3149,6 @@ msgstr "Selang masa cetak data pemprofilan enjin" msgid "Entity methods" msgstr "Kaedah entiti" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Pilihan percubaan, mungkin menampakkan ruang yang nyata di\n" -"antara blok apabila ditetapkan dengan nombor lebih besar daripada 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3169,8 +3166,9 @@ msgstr "" "bahagian tanah yang lebih rata, sesuai untuk lapisan tanah terapung pejal." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS di menu jeda" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Bingkai per saat (FPS) maksima apabila permainan dijedakan." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3503,10 +3501,6 @@ msgstr "Penapis skala GUI" msgid "GUI scaling filter txr2img" msgstr "Penapis skala GUI txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Jana peta normal" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Panggil balik sejagat" @@ -3567,10 +3561,11 @@ msgid "HUD toggle key" msgstr "Kekunci menogol papar pandu (HUD)" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Cara pengendalian panggilan API Lua yang terkecam:\n" @@ -4110,6 +4105,11 @@ msgstr "ID Kayu Bedik" msgid "Joystick button repetition interval" msgstr "Selang masa pengulangan butang kayu bedik" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Jenis kayu bedik" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Kepekaan frustum kayu bedik" @@ -4212,6 +4212,17 @@ msgstr "" "Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Kekunci untuk melompat.\n" +"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4354,6 +4365,17 @@ msgstr "" "Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Kekunci untuk melompat.\n" +"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5103,10 +5125,6 @@ msgstr "Had Y bawah tanah terapung." msgid "Main menu script" msgstr "Skrip menu utama" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Gaya menu utama" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5123,6 +5141,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Buatkan semua cecair menjadi legap" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Direktori peta" @@ -5306,7 +5332,8 @@ msgid "Maximum FPS" msgstr "FPS maksima" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Bingkai per saat (FPS) maksima apabila permainan dijedakan." #: src/settings_translation_file.cpp @@ -5363,6 +5390,13 @@ msgstr "" "Jumlah maksimum blok untuk dibarisgilirkan untuk dimuatkan daripada fail.\n" "Had ini dikuatkuasakan per pemain." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Jumlah maksimum blokpeta yang dipaksa muat." @@ -5619,14 +5653,6 @@ msgstr "Selang masa NodeTimer" msgid "Noises" msgstr "Hingar" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Persampelan peta normal" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Kekuatan peta normal" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Jumlah jalur keluar" @@ -5670,10 +5696,6 @@ msgstr "" "Ini merupakan keseimbangan antara overhed urus niaga sqlite\n" "dan penggunaan memori (Kebiasaannya, 4096=100MB)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Jumlah lelaran oklusi paralaks." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Repositori Kandungan Dalam Talian" @@ -5701,35 +5723,6 @@ msgstr "" "Buka menu jeda apabila fokus tetingkap hilang.\n" "Tidak jeda jika formspec dibuka." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" -"Pengaruh kesan oklusi paralaks pada keseluruhannya, kebiasaannya skala/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Skala keseluruhan kesan oklusi paralaks." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Oklusi paralaks" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Pengaruh oklusi paralaks" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Lelaran oklusi paralaks" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Mod oklusi paralaks" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Skala oklusi paralaks" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5815,6 +5808,16 @@ msgstr "Kekunci pergerakan pic" msgid "Pitch move mode" msgstr "Mod pergerakan pic" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Kekunci terbang" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Selang pengulangan klik kanan" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6005,10 +6008,6 @@ msgstr "Hingar saiz gunung rabung" msgid "Right key" msgstr "Kekunci ke kanan" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Selang pengulangan klik kanan" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Kedalaman saluran sungai" @@ -6304,6 +6303,15 @@ msgstr "Tunjukkan maklumat nyahpepijat" msgid "Show entity selection boxes" msgstr "Tunjukkan kotak pemilihan entiti" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Menetapkan bahasa. Biarkan kosong untuk menggunakan bahasa sistem.\n" +"Sebuah mula semula diperlukan selepas menukar tetapan ini." + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Mesej penutupan" @@ -6458,10 +6466,6 @@ msgstr "Hingar sebar gunung curam" msgid "Strength of 3D mode parallax." msgstr "Kekuatan paralaks mod 3D." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Kekuatan peta normal yang dijana." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6590,6 +6594,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "URL untuk repositori kandungan" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "Pengenal pasti kayu bedik yang digunakan" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6661,13 +6670,14 @@ msgstr "" "(active_object_send_range_blocks)." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Terjemahan bahagian belakang untuk Irrlicht.\n" "Anda perlu memulakan semula selepas mengubah tetapan ini.\n" @@ -6710,6 +6720,12 @@ msgstr "" "dibuat dengan membuang giliran item yang lama. Nilai 0 melumpuhkan fungsi " "ini." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6719,10 +6735,10 @@ msgstr "" "apabila menekan kombinasi butang kayu bedik." #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" "Jumlah masa dalam saat diambil untuk melakukan klik kanan yang berulang " "apabila\n" @@ -6883,6 +6899,17 @@ msgstr "" "sedikit prestasi, terutamanya apabila menggunakan pek tekstur berdefinisi\n" "tinggi. Penyesuai-turun gama secara tepat tidak disokong." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Gunakan penapisan trilinear apabila menyesuaikan tekstur." @@ -7284,6 +7311,24 @@ msgstr "Aras Y untuk rupa bumi lebih rendah dan dasar laut." msgid "Y-level of seabed." msgstr "Aras Y untuk dasar laut." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Had masa muat turun fail cURL" @@ -7296,121 +7341,12 @@ msgstr "Had cURL selari" msgid "cURL timeout" msgstr "Had masa cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Togol Sinematik" - -#~ msgid "Select Package File:" -#~ msgstr "Pilih Fail Pakej:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Had Y pengatas lava dalam gua besar." - -#~ msgid "Waving Water" -#~ msgstr "Air Bergelora" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "" -#~ "Sama ada kurungan bawah tanah kadang-kala terlunjur daripada rupa bumi." - -#~ msgid "Projecting dungeons" -#~ msgstr "Kurungan bawah tanah melunjur" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Aras Y di mana bayang tanah terapung diperluaskan." - -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Aras Y untuk titik tengah tanah terapung dan permukaan tasik." - -#~ msgid "Waving water" -#~ msgstr "Air bergelora" - -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Variasi ketinggian bukit dan kedalaman tasik rupa bumi lembut tanah " -#~ "terapung." - #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Ketinggian maksimum biasa, di atas dan bawah titik tengah, untuk gunung " -#~ "tanah terapung." - -#~ msgid "This font will be used for certain languages." -#~ msgstr "Fon ini akan digunakan untuk sesetengah bahasa." - -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Kekuatan tolakan tengah lengkung cahaya." - -#~ msgid "Shadow limit" -#~ msgstr "Had bayang" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Laluan ke fon TrueType atau peta bit." - -#~ msgid "Lightness sharpness" -#~ msgstr "Ketajaman pencahayaan" - -#~ msgid "Lava depth" -#~ msgstr "Kedalaman lava" - -#~ msgid "IPv6 support." -#~ msgstr "Sokongan IPv6." - -#~ msgid "Gamma" -#~ msgstr "Gama" - -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Nilai alfa bayang fon (kelegapan, antara 0 dan 255)." - -#~ msgid "Floatland mountain height" -#~ msgstr "Ketinggian gunung tanah terapung" - -#~ msgid "Floatland base height noise" -#~ msgstr "Hingar ketinggian asas tanah terapung" - -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Membolehkan pemetaan tona sinematik" - -#~ msgid "Enable VBO" -#~ msgstr "Membolehkan VBO" - -#~ msgid "" -#~ "Deprecated, define and locate cave liquids using biome definitions " -#~ "instead.\n" -#~ "Y of upper limit of lava in large caves." -#~ msgstr "" -#~ "Tetapan terkecam, mentakrifkan dan menetapkan cecair gua menggunakan " -#~ "pentakrifan biom menggantikan cara asal.\n" -#~ "Had Y atasan lava di gua-gua besar." - -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "Mentakrifkan kawasan rupa bumi lembut tanah terapung.\n" -#~ "Tanag terapung lembut berlaku apabila hingar > 0." - -#~ msgid "Darkness sharpness" -#~ msgstr "Ketajaman kegelapan" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Mengawal lebar terowong, nilai lebih kecil mencipta terowong lebih lebar." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Mengawal ketumpatan rupa bumi tanah terapung bergunung.\n" -#~ "Nilainya ialah ofset yang menambah kepada nilai hingar 'mgv7_np_mountain'." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Titik tengah tolakan-tengah lengkung cahaya." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Ubah cara tanah terapung jenis gunung menirus di atas dan bawah titik " -#~ "tengah." +#~ "0 = oklusi paralaks dengan maklumat cerun (lebih cepat).\n" +#~ "1 = pemetaan bentuk muka bumi (lebih lambat, lebih tepat)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7421,20 +7357,290 @@ msgstr "Had masa cURL" #~ "cerah.\n" #~ "Tetapan ini hanya untuk klien dan diabaikan oleh pelayan permainan." -#~ msgid "Path to save screenshots at." -#~ msgstr "Laluan untuk simpan tangkap layar." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Ubah cara tanah terapung jenis gunung menirus di atas dan bawah titik " +#~ "tengah." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Kekuatan oklusi paralaks" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Had baris hilir keluar pada cakera" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Sedang muat turun dan memasang $1, sila tunggu..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Adakah anda mahu set semula dunia pemain perseorangan?" #~ msgid "Back" #~ msgstr "Backspace" +#~ msgid "Bump Mapping" +#~ msgstr "Pemetaan Bertompok" + +#~ msgid "Bumpmapping" +#~ msgstr "Pemetaan bertompok" + +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Titik tengah tolakan-tengah lengkung cahaya." + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Mengubah antara muka menu utama:\n" +#~ "- Penuh: Banyak dunia pemain perseorangan, pilihan permainan, pek " +#~ "tekstur, dll.\n" +#~ "- Mudah: Satu dunia pemain perseorangan, tiada pilihan permainan atau " +#~ "pek tekstur.\n" +#~ "Mungkin diperlukan untuk skrin yang lebih kecil." + +#~ msgid "Config mods" +#~ msgstr "Konfigurasi mods" + +#~ msgid "Configure" +#~ msgstr "Konfigurasi" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Mengawal ketumpatan rupa bumi tanah terapung bergunung.\n" +#~ "Nilainya ialah ofset yang menambah kepada nilai hingar 'mgv7_np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Mengawal lebar terowong, nilai lebih kecil mencipta terowong lebih lebar." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Warna bagi kursor rerambut silang (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Ketajaman kegelapan" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Mentakrifkan kawasan rupa bumi lembut tanah terapung.\n" +#~ "Tanag terapung lembut berlaku apabila hingar > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Mentakrifkan tahap persampelan tekstur.\n" +#~ "Nilai lebih tinggi menghasilkan peta normal lebih lembut." + +#~ msgid "" +#~ "Deprecated, define and locate cave liquids using biome definitions " +#~ "instead.\n" +#~ "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Tetapan terkecam, mentakrifkan dan menetapkan cecair gua menggunakan " +#~ "pentakrifan biom menggantikan cara asal.\n" +#~ "Had Y atasan lava di gua-gua besar." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Sedang muat turun dan memasang $1, sila tunggu..." + +#~ msgid "Enable VBO" +#~ msgstr "Membolehkan VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Membolehkan pemetaan bertompok pada tekstur. Peta normal perlu disediakan " +#~ "oleh pek\n" +#~ "tekstur atau perlu dijana secara automatik.\n" +#~ "Perlukan pembayang dibolehkan." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Membolehkan pemetaan tona sinematik" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Membolehkan penjanaan peta normal secara layang (Kesan cetak timbul).\n" +#~ "Perlukan pemetaan bertompok untuk dibolehkan." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Membolehkan pemetaan oklusi paralaks.\n" +#~ "Memerlukan pembayang untuk dibolehkan." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Pilihan percubaan, mungkin menampakkan ruang yang nyata di\n" +#~ "antara blok apabila ditetapkan dengan nombor lebih besar daripada 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS di menu jeda" + +#~ msgid "Floatland base height noise" +#~ msgstr "Hingar ketinggian asas tanah terapung" + +#~ msgid "Floatland mountain height" +#~ msgstr "Ketinggian gunung tanah terapung" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Nilai alfa bayang fon (kelegapan, antara 0 dan 255)." + +#~ msgid "Gamma" +#~ msgstr "Gama" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Jana Peta Normal" + +#~ msgid "Generate normalmaps" +#~ msgstr "Jana peta normal" + +#~ msgid "IPv6 support." +#~ msgstr "Sokongan IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Kedalaman lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Ketajaman pencahayaan" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Had baris hilir keluar pada cakera" + +#~ msgid "Main" +#~ msgstr "Utama" + +#~ msgid "Main menu style" +#~ msgstr "Gaya menu utama" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Peta mini dalam mod radar, Zum 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Peta mini dalam mod radar, Zum 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Peta mini dalam mod permukaan, Zum 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Peta mini dalam mod permukaan, Zum 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nama/Kata laluan" + +#~ msgid "No" +#~ msgstr "Tidak" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Persampelan peta normal" + +#~ msgid "Normalmaps strength" +#~ msgstr "Kekuatan peta normal" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Jumlah lelaran oklusi paralaks." + #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Pengaruh kesan oklusi paralaks pada keseluruhannya, kebiasaannya skala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Skala keseluruhan kesan oklusi paralaks." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oklusi Paralaks" + +#~ msgid "Parallax occlusion" +#~ msgstr "Oklusi paralaks" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Pengaruh oklusi paralaks" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Lelaran oklusi paralaks" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Mod oklusi paralaks" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skala oklusi paralaks" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Kekuatan oklusi paralaks" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Laluan ke fon TrueType atau peta bit." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Laluan untuk simpan tangkap layar." + +#~ msgid "Projecting dungeons" +#~ msgstr "Kurungan bawah tanah melunjur" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Set semula dunia pemain perseorangan" + +#~ msgid "Select Package File:" +#~ msgstr "Pilih Fail Pakej:" + +#~ msgid "Shadow limit" +#~ msgstr "Had bayang" + +#~ msgid "Start Singleplayer" +#~ msgstr "Mula Main Seorang" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Kekuatan peta normal yang dijana." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Kekuatan tolakan tengah lengkung cahaya." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Fon ini akan digunakan untuk sesetengah bahasa." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Togol Sinematik" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Ketinggian maksimum biasa, di atas dan bawah titik tengah, untuk gunung " +#~ "tanah terapung." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variasi ketinggian bukit dan kedalaman tasik rupa bumi lembut tanah " +#~ "terapung." + +#~ msgid "View" +#~ msgstr "Lihat" + +#~ msgid "Waving Water" +#~ msgstr "Air Bergelora" + +#~ msgid "Waving water" +#~ msgstr "Air bergelora" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "" +#~ "Sama ada kurungan bawah tanah kadang-kala terlunjur daripada rupa bumi." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Had Y pengatas lava dalam gua besar." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Aras Y untuk titik tengah tanah terapung dan permukaan tasik." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Aras Y di mana bayang tanah terapung diperluaskan." + +#~ msgid "Yes" +#~ msgstr "Ya" diff --git a/po/ms_Arab/minetest.po b/po/ms_Arab/minetest.po index 8359efd08..2520856c3 100644 --- a/po/ms_Arab/minetest.po +++ b/po/ms_Arab/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-10-20 18:26+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" @@ -20,30 +20,18 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.3.1\n" -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "اندا تله منيڠݢل" - #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" msgstr "لاهير سمولا" +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "اندا تله منيڠݢل" + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "OK" -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "ڤلاين ڤرماٴينن ممينت اندا اونتوق مڽمبوڠ سمولا:" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "سمبوڠ سمولا" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "مينو اوتام" - #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" msgstr "برلاکوڽ رالت دالم سکريڤ Lua:" @@ -52,45 +40,81 @@ msgstr "برلاکوڽ رالت دالم سکريڤ Lua:" msgid "An error occurred:" msgstr "تله برلاکوڽ رالت:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "سدڠ ممواتکن..." +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "مينو اوتام" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "سمبوڠ سمولا" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "ڤلاين ڤرماٴينن ممينت اندا اونتوق مڽمبوڠ سمولا:" #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "چوب اکتيفکن سمولا سناراي ڤلاين عوام فان ڤريقسا سمبوڠن اينترنيت اندا." - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "ڤلاين ڤرماٴينن مڽوکوڠ ڤروتوکول ۏرسي $1 هيڠݢ $2. " +msgid "Protocol version mismatch. " +msgstr "ۏرسي ڤروتوکول تيدق سراسي. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " msgstr "ڤلاين ڤرماٴينن مڠواتکواساکن ڤروتوکول ۏرسي $1. " #: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "کامي مڽوکوڠ ڤروتوکول ۏرسي $1 هيڠݢ $2." +msgid "Server supports protocol versions between $1 and $2. " +msgstr "ڤلاين ڤرماٴينن مڽوکوڠ ڤروتوکول ۏرسي $1 هيڠݢ $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "کامي هاڽ مڽوکوڠ ڤروتوکول ۏرسي $1." #: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "ۏرسي ڤروتوکول تيدق سراسي. " +msgid "We support protocol versions between version $1 and $2." +msgstr "کامي مڽوکوڠ ڤروتوکول ۏرسي $1 هيڠݢ $2." + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "باتل" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "کبرݢنتوڠن:" #: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "دنيا:" +msgid "Disable all" +msgstr "لومڤوهکن سموا" #: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "تيادا ڤريهل ڤيک مودس ترسديا." +msgid "Disable modpack" +msgstr "لومڤوهکن ڤيک مودس" #: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "تيادا ڤريهل ڤرماٴينن ترسديا." +msgid "Enable all" +msgstr "ممبوليهکن سموا" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "بوليهکن ڤيک مودس" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" +"ݢاݢل اونتوق ممبوليهکن مودس \"$1\" کران اي مڠندوڠي اکسارا يڠ تيدق دبنرکن. هاڽ " +"اکسارا [a-z0-9_] سهاج يڠ دبنرکن." + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Find More Mods" +msgstr "چاري مودس لاٴين" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -100,175 +124,249 @@ msgstr "مودس:" msgid "No (optional) dependencies" msgstr "تيادا کبرݢنتوڠن (ڤيليهن)" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "تيادا ڤريهل ڤرماٴينن ترسديا." + #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" msgstr "تيادا کبرݢنتوڠن واجب" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "کبرݢنتوڠن ڤيليهن:" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "کبرݢنتوڠن:" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "تيادا ڤريهل ڤيک مودس ترسديا." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" msgstr "تيادا کبرݢنتوڠن ڤيليهن" +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "کبرݢنتوڠن ڤيليهن:" + #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" msgstr "سيمڤن" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "باتل" - #: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "چاري مودس لاٴين" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "لومڤوهکن ڤيک مودس" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "بوليهکن ڤيک مودس" +msgid "World:" +msgstr "دنيا:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" msgstr "دبوليهکن" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "لومڤوهکن سموا" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "ممبوليهکن سموا" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" msgstr "" -"ݢاݢل اونتوق ممبوليهکن مودس \"$1\" کران اي مڠندوڠي اکسارا يڠ تيدق دبنرکن. هاڽ " -"اکسارا [a-z0-9_] سهاج يڠ دبنرکن." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "مموات تورون..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "All packages" +msgstr "سموا ڤاکيج" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "ککونچي تله دݢوناکن اونتوق فوڠسي لاٴين" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back to Main Menu" +msgstr "کمبالي کمينو اوتام" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "هوس ڤرماٴينن" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "سيستم ContentDB تيدق ترسديا اڤابيلا Minetest دکومڤيل تنڤ cURL" #: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "سموا ڤاکيج" +msgid "Downloading..." +msgstr "مموات تورون..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "ݢاݢل مموات تورون $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" msgstr "ڤرماٴينن" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "ڤاسڠ" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "ڤاسڠ" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "کبرݢنتوڠن ڤيليهن:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "مودس" -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "ڤيک تيکستور" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "ݢاݢل مموات تورون $1" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "چاري" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" -msgstr "کمبالي کمينو اوتام" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "تيادا حاصيل" - #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" msgstr "تيادا ڤاکيج يڠ بوليه دامبيل" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "مموات تورون..." +msgid "No results" +msgstr "تيادا حاصيل" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "ڤاسڠ" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" +#, fuzzy +msgid "No updates" msgstr "کمس کيني" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Not found" +msgstr "بيسوکن بوڽي" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "ڤيک تيکستور" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" msgstr "ڽهڤاسڠ" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "ليهت" +msgid "Update" +msgstr "کمس کيني" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "ݢوا بسر" +msgid "A world named \"$1\" already exists" +msgstr "دنيا برنام \"$1\" تله وجود" #: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "ݢوا ݢرݢاسي يڠ ساڠت مندالم باواه تانه" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "سوڠاي ارس لاٴوت" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "سوڠاي" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "ݢونوڠ" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "تانه تراڤوڠ (دالم اوجيکاجي)" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "جيسيم بومي تراڤوڠ اتس لاڠيت" +msgid "Additional terrain" +msgstr "روڤ بومي تمبهن" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "کديڠينن التيتود" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "کورڠکن هاب مڠيکوت التيتود" - #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" msgstr "ککريڠن التيتود" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "کورڠکن کلمبڤن مڠيکوت التيتود" +msgid "Biome blending" +msgstr "ڤڽباتين بيوم" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biomes" +msgstr "بيوم" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caverns" +msgstr "ݢوا بسر" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caves" +msgstr "ݢوا" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "چيڤت" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Decorations" +msgstr "هياسن" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "موات تورون ڤرماٴينن⹁ چونتوهڽ Minetest Game⹁ دري minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "موات تورون ساتو دري minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Dungeons" +msgstr "کوروڠن باواه تانه" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Flat terrain" +msgstr "روڤ بومي رات" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floating landmasses in the sky" +msgstr "جيسيم بومي تراڤوڠ اتس لاڠيت" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floatlands (experimental)" +msgstr "تانه تراڤوڠ (دالم اوجيکاجي)" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "ڤرماٴينن" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Generate non-fractal terrain: Oceans and underground" +msgstr "جان روڤ بومي بوکن-فراکتل: لاٴوتن دان باواه تانه" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Hills" +msgstr "بوکيت" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -279,76 +377,65 @@ msgid "Increases humidity around rivers" msgstr "تيڠکتکن کلمبڤن سکيتر سوڠاي" #: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "کدالمن سوڠاي برباݢاي" +msgid "Lakes" +msgstr "تاسيق" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "کلمبڤن رنده دان هاب تيڠݢي مڽببکن سوڠاي چيتيق اتاو کريڠ" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "بوکيت" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "جاناٴن ڤتا" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "بنديرا جان ڤتا" #: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "تاسيق" +msgid "Mapgen-specific flags" +msgstr "بنديرا خصوص جان ڤتا" #: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "روڤ بومي تمبهن" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "جان روڤ بومي بوکن-فراکتل: لاٴوتن دان باواه تانه" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "ڤوکوق دان رومڤوت هوتن" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "روڤ بومي رات" +msgid "Mountains" +msgstr "ݢونوڠ" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" msgstr "اليرن لومڤور" #: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "هاکيسن ڤرموکاٴن روڤ بومي" +msgid "Network of tunnels and caves" +msgstr "جاريڠن تروووڠ دان ݢوا" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "اقليم سدرهان⹁ ݢورون⹁ هوتن⹁ توندرا⹁ تايݢ" +msgid "No game selected" +msgstr "تيادا ڤرماٴينن دڤيليه" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "اقليم سدرهان⹁ ݢورون⹁ هوتن" +msgid "Reduces heat with altitude" +msgstr "کورڠکن هاب مڠيکوت التيتود" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "اقليم سدرهان⹁ ݢورون" +msgid "Reduces humidity with altitude" +msgstr "کورڠکن کلمبڤن مڠيکوت التيتود" #: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "اندا تيدق مماسڠ سبارڠ ڤرماٴينن." +msgid "Rivers" +msgstr "سوڠاي" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "موات تورون ساتو دري minetest.net" +msgid "Sea level rivers" +msgstr "سوڠاي ارس لاٴوت" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "ݢوا" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "بنيه" #: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "کوروڠن باواه تانه" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "هياسن" +msgid "Smooth transition between biomes" +msgstr "ڤراليهن لمبوت دانتارا بيوم" #: builtin/mainmenu/dlg_create_world.lua msgid "" @@ -363,65 +450,44 @@ msgid "Structures appearing on the terrain, typically trees and plants" msgstr "ستروکتور يڠ مونچول اتس روڤ بومي⹁ بياساڽ ڤوکوق دان تومبوهن" #: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "جاريڠن تروووڠ دان ݢوا" +msgid "Temperate, Desert" +msgstr "اقليم سدرهان⹁ ݢورون" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "بيوم" +msgid "Temperate, Desert, Jungle" +msgstr "اقليم سدرهان⹁ ݢورون⹁ هوتن" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "ڤڽباتين بيوم" +msgid "Temperate, Desert, Jungle, Tundra, Taiga" +msgstr "اقليم سدرهان⹁ ݢورون⹁ هوتن⹁ توندرا⹁ تايݢ" #: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "ڤراليهن لمبوت دانتارا بيوم" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "بنديرا جان ڤتا" +msgid "Terrain surface erosion" +msgstr "هاکيسن ڤرموکاٴن روڤ بومي" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "بنديرا خصوص جان ڤتا" +msgid "Trees and jungle grass" +msgstr "ڤوکوق دان رومڤوت هوتن" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Vary river depth" +msgstr "کدالمن سوڠاي برباݢاي" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Very large caverns deep in the underground" +msgstr "ݢوا ݢرݢاسي يڠ ساڠت مندالم باواه تانه" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." msgstr "امرن: The Development Test هاڽله اونتوق کݢوناٴن ڤمباڠون." -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "موات تورون ڤرماٴينن⹁ چونتوهڽ Minetest Game⹁ دري minetest.net" - #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "نام دنيا" #: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "بنيه" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "جاناٴن ڤتا" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "ڤرماٴينن" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "چيڤت" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "دنيا برنام \"$1\" تله وجود" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "تيادا ڤرماٴينن دڤيليه" +msgid "You have no games installed." +msgstr "اندا تيدق مماسڠ سبارڠ ڤرماٴينن." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" @@ -449,6 +515,10 @@ msgstr "ڤادم دنيا \"$1\"؟" msgid "Accept" msgstr "تريما" +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "نامکن سمولا ڤيک مودس:" + #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " @@ -457,57 +527,121 @@ msgstr "" "ڤيک مودس اين ممڤوڽاٴي نام خصوص دبريکن دالم فايل modpack.conf ميليقڽ يڠ اکن " "مڠاتسي سبارڠ ڤناماٴن سمولا دسين." -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "نامکن سمولا ڤيک مودس:" - #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "دلومڤوهکن" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "دبوليهکن" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "لاير" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "اوفسيت" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "سکال" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "سيبرن X" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "سيبرن Y" +msgid "(No description of setting given)" +msgstr "(تيادا ڤريهل اونتوق تتڤن يڠ دبري)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" msgstr "هيڠر 2D" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "سيبرن Z" +msgid "< Back to Settings page" +msgstr "< کمبالي کهلامن تتڤن" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "لاير" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "دلومڤوهکن" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "ايديت" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "دبوليهکن" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Lacunarity" +msgstr "لاکوناريتي" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" msgstr "اوکتف" +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "اوفسيت" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" msgstr "ڤنروسن" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "لاکوناريتي" +msgid "Please enter a valid integer." +msgstr "سيلا ماسوقکن اينتيݢر يڠ صح." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "سيلا ماسوقکن نومبور يڠ صح." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "ڤوليهکن تتڤن اصل" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "سکال" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "چاري" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select directory" +msgstr "ڤيليه ديريکتوري" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select file" +msgstr "ڤيليه فايل" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "تونجوقکن نام تيکنيکل" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "نيلاي مستيله سکورڠ-کورڠڽ $1." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "نيلاي مستيله تيدق لبيه درڤد $1." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X" +msgstr "X" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X spread" +msgstr "سيبرن X" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y" +msgstr "Y" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y spread" +msgstr "سيبرن Y" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z" +msgstr "Z" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z spread" +msgstr "سيبرن Z" + +#. ~ "absvalue" is a noise parameter flag. +#. It is short for "absolute value". +#. It can be enabled in noise settings in +#. main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" +msgstr "نيلاي مطلق" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options @@ -524,125 +658,85 @@ msgstr "لالاي" msgid "eased" msgstr "تومڤول" -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "نيلاي مطلق" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "X" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "Y" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "Z" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "(تيادا ڤريهل اونتوق تتڤن يڠ دبري)" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "سيلا ماسوقکن اينتيݢر يڠ صح." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "نيلاي مستيله سکورڠ-کورڠڽ $1." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "نيلاي مستيله تيدق لبيه درڤد $1." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "سيلا ماسوقکن نومبور يڠ صح." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "ڤيليه ديريکتوري" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "ڤيليه فايل" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "< کمبالي کهلامن تتڤن" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "ايديت" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "ڤوليهکن تتڤن اصل" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "تونجوقکن نام تيکنيکل" - #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" msgstr "$1 (دبوليهکن)" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "ݢاݢل مماسڠ $1 سباݢاي ڤيک تيکستور" +msgid "$1 mods" +msgstr "$1 مودس" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" msgstr "ݢاݢل مماسڠ $1 ڤد $2" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "تيدق جومڤ مودس اتاو ڤيک مودس يڠ صح" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "ݢاݢل مماسڠ ڤيک مودس سباݢاي $1" +msgid "Install Mod: Unable to find real mod name for: $1" +msgstr "ڤاسڠ مودس: ݢاݢل منچاري نام مودس سبنر اونتوق: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "ڤاسڠ مودس: تيدق جومڤ نام فولدر يڠ سسواي اونتوق ڤيک مودس $1" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "ݢاݢل مماسڠ مودس سباݢاي $1" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "ڤاسڠ مودس: ݢاݢل منچاري نام مودس سبنر اونتوق: $1" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "ݢاݢل مماسڠ ڤرماٴينن سباݢاي $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" +msgstr "ڤاسڠ: جنيس فايل \"$1\" تيدق دسوکوڠ اتاو ارکيب روسق" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" msgstr "ڤاسڠ: فايل: \"$1\"" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "ڤاسڠ: جنيس فايل \"$1\" تيدق دسوکوڠ اتاو ارکيب روسق" +msgid "Unable to find a valid mod or modpack" +msgstr "تيدق جومڤ مودس اتاو ڤيک مودس يڠ صح" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "$1 مودس" +msgid "Unable to install a $1 as a texture pack" +msgstr "ݢاݢل مماسڠ $1 سباݢاي ڤيک تيکستور" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "ݢاݢل مماسڠ ڤرماٴينن سباݢاي $1" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "ݢاݢل مماسڠ مودس سباݢاي $1" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "ݢاݢل مماسڠ ڤيک مودس سباݢاي $1" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "سدڠ ممواتکن..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "چوب اکتيفکن سمولا سناراي ڤلاين عوام فان ڤريقسا سمبوڠن اينترنيت اندا." + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "لايري کندوڠن دالم تالين" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "کندوڠن" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "لومڤوهکن ڤيک تيکستور" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" +msgstr "معلومت:" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" msgstr "ڤاکيج دڤاسڠ:" #: builtin/mainmenu/tab_content.lua -msgid "Browse online content" -msgstr "لايري کندوڠن دالم تالين" +msgid "No dependencies." +msgstr "تيادا کبرݢنتوڠن." #: builtin/mainmenu/tab_content.lua msgid "No package description available" @@ -652,109 +746,110 @@ msgstr "تيادا ڤريهل ڤاکيج ترسديا" msgid "Rename" msgstr "نامکن سمولا" -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "تيادا کبرݢنتوڠن." - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "لومڤوهکن ڤيک تيکستور" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "ݢونا ڤيک تيکستور" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "معلومت:" - #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" msgstr "ڽهڤاسڠ ڤاکيج" #: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "کندوڠن" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "ڤڠهرݢاٴن" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" -msgstr "ڤمباڠون تراس" +msgid "Use Texture Pack" +msgstr "ݢونا ڤيک تيکستور" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" msgstr "ڤڽومبڠ اکتيف" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "ڤمباڠون تراس تردهولو" +msgid "Core Developers" +msgstr "ڤمباڠون تراس" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "ڤڠهرݢاٴن" + +#: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "ڤيليه ديريکتوري" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "ڤڽومبڠ تردهولو" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "ڤاسڠکن ڤرماٴينن درڤد ContentDB" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "کونفيݢوراسي" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "بوات بارو" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "ڤيليه دنيا:" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "مود کرياتيف" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "بوليه چدرا" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "هوس ڤلاين" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "هوس ڤرماٴينن" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "ڤمباڠون تراس تردهولو" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" msgstr "اومومکن ڤلاين" -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "نام\\کات لالوان" - #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "علامت ايکتن" #: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "ڤورت" +msgid "Creative Mode" +msgstr "مود کرياتيف" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "ڤورت ڤلاين" +msgid "Enable Damage" +msgstr "بوليه چدرا" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "هوس ڤرماٴينن" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "هوس ڤلاين" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "ڤاسڠکن ڤرماٴينن درڤد ContentDB" + +#: builtin/mainmenu/tab_local.lua +msgid "Name" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "بوات بارو" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "تيادا دنيا دچيڤت اتاو دڤيليه!" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "کات لالوان لام" #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "مولا ماٴين" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "تيادا دنيا دچيڤت اتاو دڤيليه!" +msgid "Port" +msgstr "ڤورت" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "ڤيليه دنيا:" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "ڤيليه دنيا:" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "ڤورت ڤلاين" #: builtin/mainmenu/tab_local.lua msgid "Start Game" @@ -764,95 +859,51 @@ msgstr "مولاکن ڤرماٴينن" msgid "Address / Port" msgstr "علامت \\ ڤورت" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "نام \\ کات لالوان" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "سمبوڠ" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "ڤادم کݢمرن" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "کݢمرن" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "ڤيڠ" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "مود کرياتيف" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "بوليه چدرا" -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "بوليه برلاوان PvP" +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" +msgstr "ڤادم کݢمرن" + +#: builtin/mainmenu/tab_online.lua +msgid "Favorite" +msgstr "کݢمرن" #: builtin/mainmenu/tab_online.lua msgid "Join Game" msgstr "سرتاٴي ڤرماٴينن" -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "داون لݢڤ" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" +msgstr "نام \\ کات لالوان" -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "داون ريڠکس" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" +msgstr "ڤيڠ" -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "داون براݢم" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "کرڠک نود" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "تونجولن نود" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "تيادا" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "تيادا تاڤيسن" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "ڤناڤيسن بيلينيار" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "ڤناڤيسن تريلينيار" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "تيادا ڤتا ميڤ" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "ڤتا ميڤ" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "ڤتا ميڤ + ڤناڤيسن انيسو" +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua +msgid "PvP enabled" +msgstr "بوليه برلاوان PvP" #: builtin/mainmenu/tab_settings.lua msgid "2x" msgstr "2x" +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "اوان 3D" + #: builtin/mainmenu/tab_settings.lua msgid "4x" msgstr "4x" @@ -862,129 +913,150 @@ msgid "8x" msgstr "8x" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "اداکه اندا ماهو سيت سمولا دنيا ڤماٴين ڤرساورڠن؟" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "ياٴ" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "تيدق" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "ڤنچهاياٴن لمبوت" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "ڤرتيکل" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "اوان 3D" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "اٴير لݢڤ" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "کاچ برسمبوڠن" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "جالينن:" +msgid "All Settings" +msgstr "سموا تتڤن" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "انتيالياس:" -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "سکرين:" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "اٴوتوسيمڤن ساٴيز سکرين" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "ڤمبايڠ" - #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "ڤمبايڠ (تيدق ترسديا)" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "سيت سمولا دنيا ڤماٴين ڤرساورڠن" +msgid "Bilinear Filter" +msgstr "ڤناڤيسن بيلينيار" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "توکر ککونچي" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "سموا تتڤن" +msgid "Connected Glass" +msgstr "کاچ برسمبوڠن" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "نيلاي امبڠ سنتوهن: (px)" +msgid "Fancy Leaves" +msgstr "داون براݢم" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "ڤمتاٴن برتومڤوق" +msgid "Mipmap" +msgstr "ڤتا ميڤ" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "ڤتا ميڤ + ڤناڤيسن انيسو" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "تيادا تاڤيسن" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "تيادا ڤتا ميڤ" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "تونجولن نود" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "کرڠک نود" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "تيادا" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "داون لݢڤ" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "اٴير لݢڤ" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "ڤرتيکل" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "سکرين:" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "تتڤن" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "ڤمبايڠ" + +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "تانه تراڤوڠ (دالم اوجيکاجي)" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "ڤمبايڠ (تيدق ترسديا)" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "داون ريڠکس" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "ڤنچهاياٴن لمبوت" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "جالينن:" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "اونتوق ممبوليهکن ڤمبايڠ⹁ ڤماچو OpenGL مستي دݢوناکن." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" msgstr "ڤمتاٴن تونا" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "جان ڤتا نورمل" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "اوکلوسي ڤارالکس" +msgid "Touchthreshold: (px)" +msgstr "نيلاي امبڠ سنتوهن: (px)" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "چچاٴير برݢلورا" +msgid "Trilinear Filter" +msgstr "ڤناڤيسن تريلينيار" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" msgstr "داٴون برݢويڠ" +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "چچاٴير برݢلورا" + #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "تومبوهن برݢويڠ" -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "اونتوق ممبوليهکن ڤمبايڠ⹁ ڤماچو OpenGL مستي دݢوناکن." - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "تتڤن" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "مولا ماٴين ساورڠ" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "کونفيݢوراسي مودس" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "اوتام" - #: src/client/client.cpp msgid "Connection timed out." msgstr "سمبوڠن تامت تيمڤوه." +#: src/client/client.cpp +msgid "Done!" +msgstr "سلساي!" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "مڠاولکن نود" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "سدڠ مڠاولکن نود..." + #: src/client/client.cpp msgid "Loading textures..." msgstr "سدڠ ممواتکن تيکستور..." @@ -993,46 +1065,10 @@ msgstr "سدڠ ممواتکن تيکستور..." msgid "Rebuilding shaders..." msgstr "سدڠ ممبينا سمولا ڤمبايڠ..." -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "سدڠ مڠاولکن نود..." - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "مڠاولکن نود" - -#: src/client/client.cpp -msgid "Done!" -msgstr "سلساي!" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "مينو اوتام" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "نام ڤماٴين ترلالو ڤنجڠ." - #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "رالت دالم ڤڽمبوڠن (تامت تيمڤوه؟)" -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "فايل کات لالوان يڠ دسدياکن ݢاݢل دبوک: " - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "سيلا ڤيليه سواتو نام!" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "تيادا دنيا دڤيليه اتاو تيادا علامت دبري. تيادا اڤ بوليه دلاکوکن." - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "لالوان دنيا دبري تيدق وجود: " - #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" msgstr "تيدق جومڤ اتاو تيدق بوليه مواتکن ڤرماٴينن \"" @@ -1041,6 +1077,30 @@ msgstr "تيدق جومڤ اتاو تيدق بوليه مواتکن ڤرماٴي msgid "Invalid gamespec." msgstr "سڤيسيفيکاسي ڤرماٴينن تيدق صح." +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "مينو اوتام" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "تيادا دنيا دڤيليه اتاو تيادا علامت دبري. تيادا اڤ بوليه دلاکوکن." + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "نام ڤماٴين ترلالو ڤنجڠ." + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "سيلا ڤيليه سواتو نام!" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "فايل کات لالوان يڠ دسدياکن ݢاݢل دبوک: " + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "لالوان دنيا دبري تيدق وجود: " + #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" #. into the translation field (literally). @@ -1054,193 +1114,53 @@ msgid "needs_fallback_font" msgstr "yes" #: src/client/game.cpp -msgid "Shutting down..." -msgstr "سدڠ منوتوڤ..." +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" +"\n" +"ڤريقسا فايل debug.txt اونتوق معلومت لنجوت." #: src/client/game.cpp -msgid "Creating server..." -msgstr "سدڠ منچيڤت ڤلاين..." +msgid "- Address: " +msgstr "- علامت: " #: src/client/game.cpp -msgid "Creating client..." -msgstr "سدڠ منچيڤت کليئن..." +msgid "- Creative Mode: " +msgstr "- مود کرياتيف: " #: src/client/game.cpp -msgid "Resolving address..." -msgstr "سدڠ مڽلسايکن علامت..." +msgid "- Damage: " +msgstr "- بوليه چدرا " #: src/client/game.cpp -msgid "Connecting to server..." -msgstr "سدڠ مڽمبوڠ کڤد ڤلاين..." +msgid "- Mode: " +msgstr "- مود: " #: src/client/game.cpp -msgid "Item definitions..." -msgstr "سدڠ منتعريفکن ايتم..." +msgid "- Port: " +msgstr "- ڤورت: " #: src/client/game.cpp -msgid "Node definitions..." -msgstr "سدڠ منتعريفکن نود..." +msgid "- Public: " +msgstr "- عوام: " + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +msgid "- PvP: " +msgstr "- PvP: " #: src/client/game.cpp -msgid "Media..." -msgstr "سدڠ ممواتکن ميديا..." - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "KiB/s" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "MiB/s" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "سکريڤ ڤيهق کليئن دلومڤوهکن" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "بوڽي دبيسوکن" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "بوڽي دڽهبيسوکن" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "سيستم بوڽي دلومڤوهکن" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "ککواتن بوڽي داوبه کڤد %d%%" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "سيستم بوڽي تيدق دسوکوڠ دبيناٴن اين" - -#: src/client/game.cpp -msgid "ok" -msgstr "اوکي" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "مود تربڠ دبوليهکن" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "مود تربڠ دبوليهکن (نوت: تيادا کأيستيميواٴن 'تربڠ')" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "مود تربڠ دلومڤوهکن" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "مود ڤرݢرقن ڤيچ دبوليهکن" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "مود ڤرݢرقن ڤيچ دلومڤوهکن" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "مود ڤرݢرقن ڤنتس دبوليهکن" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "مود ڤرݢرقن ڤنتس دبوليهکن (نوت: تيادا کأيستيميواٴن 'ڤرݢرقن ڤنتس')" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "مود ڤرݢرقن ڤنتس دلومڤوهکن" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "مود تمبوس بلوک دبوليهکن" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "مود تمبوس بلوک دبوليهکن (نوت: تيادا کأيستيميواٴن 'تمبوس بلوک')" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "مود تمبوس بلوک دلومڤوهکن" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "مود سينماتيک دبوليهکن" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "مود سينماتيک دلومڤوهکن" - -#: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "ڤرݢرقن اٴوتوماتيک دبوليهکن" +msgid "- Server Name: " +msgstr "- نام ڤلاين: " #: src/client/game.cpp msgid "Automatic forward disabled" msgstr "ڤرݢرقن اٴوتوماتيک دلومڤوهکن" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹁ زوم 1x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹁ زوم 2x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹁ زوم 4x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "ڤتا ميني دالم مود رادر⹁ زوم 1x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "ڤتا ميني دالم مود رادر⹁ زوم 2x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "ڤتا ميني دالم مود رادر⹁ زوم 4x" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "ڤتا ميني دسمبوڽيکن" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "ڤتا ميني دلومڤوهکن اوليه ڤرماٴينن اتاو مودس" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "کابوت دلومڤوهکن" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "کابوت دبوليهکن" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "معلومت ڽهڤڤيجت دتونجوقکن" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "ݢراف ڤمبوکه دتونجوقکن" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "رڠک داواي دتونجوقکن" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "معلومت ڽهڤڤيجت⹁ ݢراف ڤمبوکه⹁ دان رڠک داواي دسمبوڽيکن" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "معلومت ڽهڤڤيجت دان ݢراف ڤمبوکه دسمبوڽيکن" +msgid "Automatic forward enabled" +msgstr "ڤرݢرقن اٴوتوماتيک دبوليهکن" #: src/client/game.cpp msgid "Camera update disabled" @@ -1251,31 +1171,81 @@ msgid "Camera update enabled" msgstr "کمس کيني کاميرا دبوليهکن" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "جارق ڤندڠ براد دتاهڤ مکسيموم: %d" +msgid "Change Password" +msgstr "توکر کات لالوان" #: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "جارق ڤندڠ دتوکر ک%d" +msgid "Cinematic mode disabled" +msgstr "مود سينماتيک دلومڤوهکن" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "جارق ڤندڠ براد دتاهڤ مينيموم: %d" +msgid "Cinematic mode enabled" +msgstr "مود سينماتيک دبوليهکن" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "جارق ڤندڠ تنڤ حد دبوليهکن" +msgid "Client side scripting is disabled" +msgstr "سکريڤ ڤيهق کليئن دلومڤوهکن" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "جارق ڤندڠ تنڤ حد دلومڤوهکن" +msgid "Connecting to server..." +msgstr "سدڠ مڽمبوڠ کڤد ڤلاين..." #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" -msgstr "زوم سدڠ دلومڤوهکن اوليه ڤرماٴينن اتاو مودس" +msgid "Continue" +msgstr "تروسکن" + +#: src/client/game.cpp +#, fuzzy, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" +"کاولن:\n" +"- %s: برݢرق کدڤن\n" +"- %s: برݢرق کبلاکڠ\n" +"- %s: برݢرق ککيري\n" +"- %s: برݢرق ککانن\n" +"- %s: لومڤت\\ناٴيق اتس\n" +"- %s: سلينڤ\\تورون باواه\n" +"- %s: جاتوهکن ايتم\n" +"- %s: اينۏينتوري\n" +"- تتيکوس: ڤوسيڠ\\ليهت سکليليڠ\n" +"- تتيکوس کيري: ݢالي\\کتوق\n" +"- تتيکوس کانن: لتق\\ݢونا\n" +"- رودا تتيکوس: ڤيليه ايتم\n" +"- %s: سيمبڠ\n" + +#: src/client/game.cpp +msgid "Creating client..." +msgstr "سدڠ منچيڤت کليئن..." + +#: src/client/game.cpp +msgid "Creating server..." +msgstr "سدڠ منچيڤت ڤلاين..." + +#: src/client/game.cpp +msgid "Debug info and profiler graph hidden" +msgstr "معلومت ڽهڤڤيجت دان ݢراف ڤمبوکه دسمبوڽيکن" + +#: src/client/game.cpp +msgid "Debug info shown" +msgstr "معلومت ڽهڤڤيجت دتونجوقکن" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "معلومت ڽهڤڤيجت⹁ ݢراف ڤمبوکه⹁ دان رڠک داواي دسمبوڽيکن" #: src/client/game.cpp msgid "" @@ -1306,53 +1276,12 @@ msgstr "" " --> لتق ساتو ايتم دري تيندنن کدالم سلوت\n" #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" -"کاولن:\n" -"- %s: برݢرق کدڤن\n" -"- %s: برݢرق کبلاکڠ\n" -"- %s: برݢرق ککيري\n" -"- %s: برݢرق ککانن\n" -"- %s: لومڤت\\ناٴيق اتس\n" -"- %s: سلينڤ\\تورون باواه\n" -"- %s: جاتوهکن ايتم\n" -"- %s: اينۏينتوري\n" -"- تتيکوس: ڤوسيڠ\\ليهت سکليليڠ\n" -"- تتيکوس کيري: ݢالي\\کتوق\n" -"- تتيکوس کانن: لتق\\ݢونا\n" -"- رودا تتيکوس: ڤيليه ايتم\n" -"- %s: سيمبڠ\n" +msgid "Disabled unlimited viewing range" +msgstr "جارق ڤندڠ تنڤ حد دلومڤوهکن" #: src/client/game.cpp -msgid "Continue" -msgstr "تروسکن" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "توکر کات لالوان" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "ڤرماٴينن دجيداکن" - -#: src/client/game.cpp -msgid "Sound Volume" -msgstr "ککواتن بوڽي" +msgid "Enabled unlimited viewing range" +msgstr "جارق ڤندڠ تنڤ حد دبوليهکن" #: src/client/game.cpp msgid "Exit to Menu" @@ -1362,222 +1291,323 @@ msgstr "کلوار کمينو" msgid "Exit to OS" msgstr "کلوار تروس ڤرماٴينن" +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "مود ڤرݢرقن ڤنتس دلومڤوهکن" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "مود ڤرݢرقن ڤنتس دبوليهکن" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "مود ڤرݢرقن ڤنتس دبوليهکن (نوت: تيادا کأيستيميواٴن 'ڤرݢرقن ڤنتس')" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "مود تربڠ دلومڤوهکن" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "مود تربڠ دبوليهکن" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "مود تربڠ دبوليهکن (نوت: تيادا کأيستيميواٴن 'تربڠ')" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "کابوت دلومڤوهکن" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "کابوت دبوليهکن" + #: src/client/game.cpp msgid "Game info:" msgstr "معلومت ڤرماٴينن:" #: src/client/game.cpp -msgid "- Mode: " -msgstr "- مود: " - -#: src/client/game.cpp -msgid "Remote server" -msgstr "ڤلاين جارق جاٴوه" - -#: src/client/game.cpp -msgid "- Address: " -msgstr "- علامت: " +msgid "Game paused" +msgstr "ڤرماٴينن دجيداکن" #: src/client/game.cpp msgid "Hosting server" msgstr "مڠهوس ڤلاين" #: src/client/game.cpp -msgid "- Port: " -msgstr "- ڤورت: " +msgid "Item definitions..." +msgstr "سدڠ منتعريفکن ايتم..." #: src/client/game.cpp -msgid "Singleplayer" -msgstr "ڤماٴين ڤرسأورڠن" +msgid "KiB/s" +msgstr "KiB/s" #: src/client/game.cpp -msgid "On" -msgstr "بوک" +msgid "Media..." +msgstr "سدڠ ممواتکن ميديا..." + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "MiB/s" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "ڤتا ميني دلومڤوهکن اوليه ڤرماٴينن اتاو مودس" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "مود تمبوس بلوک دلومڤوهکن" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "مود تمبوس بلوک دبوليهکن" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "مود تمبوس بلوک دبوليهکن (نوت: تيادا کأيستيميواٴن 'تمبوس بلوک')" + +#: src/client/game.cpp +msgid "Node definitions..." +msgstr "سدڠ منتعريفکن نود..." #: src/client/game.cpp msgid "Off" msgstr "توتوڤ" #: src/client/game.cpp -msgid "- Damage: " -msgstr "- بوليه چدرا " +msgid "On" +msgstr "بوک" #: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "- مود کرياتيف: " - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " -msgstr "- PvP: " +msgid "Pitch move mode disabled" +msgstr "مود ڤرݢرقن ڤيچ دلومڤوهکن" #: src/client/game.cpp -msgid "- Public: " -msgstr "- عوام: " +msgid "Pitch move mode enabled" +msgstr "مود ڤرݢرقن ڤيچ دبوليهکن" #: src/client/game.cpp -msgid "- Server Name: " -msgstr "- نام ڤلاين: " +msgid "Profiler graph shown" +msgstr "ݢراف ڤمبوکه دتونجوقکن" #: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" -"\n" -"ڤريقسا فايل debug.txt اونتوق معلومت لنجوت." +msgid "Remote server" +msgstr "ڤلاين جارق جاٴوه" -#: src/client/gameui.cpp -msgid "Chat shown" -msgstr "سيمبڠ دتونجوقکن" +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "سدڠ مڽلسايکن علامت..." + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "سدڠ منوتوڤ..." + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "ڤماٴين ڤرسأورڠن" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "ککواتن بوڽي" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "بوڽي دبيسوکن" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "سيستم بوڽي دلومڤوهکن" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "سيستم بوڽي تيدق دسوکوڠ دبيناٴن اين" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "بوڽي دڽهبيسوکن" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "جارق ڤندڠ دتوکر ک%d" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "جارق ڤندڠ براد دتاهڤ مکسيموم: %d" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "جارق ڤندڠ براد دتاهڤ مينيموم: %d" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "ککواتن بوڽي داوبه کڤد %d%%" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "رڠک داواي دتونجوقکن" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "زوم سدڠ دلومڤوهکن اوليه ڤرماٴينن اتاو مودس" + +#: src/client/game.cpp +msgid "ok" +msgstr "اوکي" #: src/client/gameui.cpp msgid "Chat hidden" msgstr "سيمبڠ دسمبوڽيکن" #: src/client/gameui.cpp -msgid "HUD shown" -msgstr "ڤاڤر ڤندو (HUD) دتونجوقکن" +msgid "Chat shown" +msgstr "سيمبڠ دتونجوقکن" #: src/client/gameui.cpp msgid "HUD hidden" msgstr "ڤاڤر ڤندو (HUD) دسمبوڽيکن" #: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" -msgstr "ڤمبوکه دتونجوقکن (هلامن %d دري %d)" +msgid "HUD shown" +msgstr "ڤاڤر ڤندو (HUD) دتونجوقکن" #: src/client/gameui.cpp msgid "Profiler hidden" msgstr "ڤمبوکه دسمبوڽيکن" -#: src/client/keycode.cpp -msgid "Left Button" -msgstr "بوتڠ کيري" +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" +msgstr "ڤمبوکه دتونجوقکن (هلامن %d دري %d)" #: src/client/keycode.cpp -msgid "Right Button" -msgstr "بوتڠ کانن" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "بوتڠ تڠه" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "بوتڠ X نومبور 1" - -#: src/client/keycode.cpp -msgid "X Button 2" -msgstr "بوتڠ X نومبور 2" +msgid "Apps" +msgstr "اڤليکاسي" #: src/client/keycode.cpp msgid "Backspace" msgstr "Backspace" #: src/client/keycode.cpp -msgid "Tab" -msgstr "Tab" +msgid "Caps Lock" +msgstr "کونچي حروف بسر" #: src/client/keycode.cpp msgid "Clear" msgstr "ڤادم" -#: src/client/keycode.cpp -msgid "Return" -msgstr "Enter" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "Shift" - #: src/client/keycode.cpp msgid "Control" msgstr "Ctrl" +#: src/client/keycode.cpp +msgid "Down" +msgstr "باواه" + +#: src/client/keycode.cpp +msgid "End" +msgstr "End" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "ڤادم EOF" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "لاکوکن" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "بنتوان" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "Home" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "IME - تريما" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "IME - توکر" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "IME - کلوار" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "IME - توکر مود" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "IME - تيدقتوکر" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "Insert" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "ککيري" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "بوتڠ کيري" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "Ctrl کيري" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "مينو کيري" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "Shift کيري" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "Windows کيري" + #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" msgstr "Menu" #: src/client/keycode.cpp -msgid "Pause" -msgstr "Pause" +msgid "Middle Button" +msgstr "بوتڠ تڠه" #: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "کونچي حروف بسر" +msgid "Num Lock" +msgstr "کونچي اڠک" #: src/client/keycode.cpp -msgid "Space" -msgstr "سلاڠ" +msgid "Numpad *" +msgstr "ڤد اڠک *" #: src/client/keycode.cpp -msgid "Page up" -msgstr "Page up" +msgid "Numpad +" +msgstr "ڤد اڠک +" #: src/client/keycode.cpp -msgid "Page down" -msgstr "Page down" +msgid "Numpad -" +msgstr "ڤد اڠک -" #: src/client/keycode.cpp -msgid "End" -msgstr "End" +msgid "Numpad ." +msgstr "ڤد اڠک ." #: src/client/keycode.cpp -msgid "Home" -msgstr "Home" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "ککيري" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "اتس" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "ککانن" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "باواه" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "Select" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "Print Screen" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "لاکوکن" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "تڠکڤ ݢمبر سکرين" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "Insert" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "بنتوان" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "Windows کيري" - -#: src/client/keycode.cpp -msgid "Right Windows" -msgstr "Windows کانن" +msgid "Numpad /" +msgstr "ڤد اڠک /" #: src/client/keycode.cpp msgid "Numpad 0" @@ -1620,100 +1650,129 @@ msgid "Numpad 9" msgstr "ڤد اڠک 9" #: src/client/keycode.cpp -msgid "Numpad *" -msgstr "ڤد اڠک *" +msgid "OEM Clear" +msgstr "ڤادم OEM" #: src/client/keycode.cpp -msgid "Numpad +" -msgstr "ڤد اڠک +" +msgid "Page down" +msgstr "Page down" #: src/client/keycode.cpp -msgid "Numpad ." -msgstr "ڤد اڠک ." +msgid "Page up" +msgstr "Page up" #: src/client/keycode.cpp -msgid "Numpad -" -msgstr "ڤد اڠک -" +msgid "Pause" +msgstr "Pause" #: src/client/keycode.cpp -msgid "Numpad /" -msgstr "ڤد اڠک /" +msgid "Play" +msgstr "مولا ماٴين" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" +msgstr "Print Screen" #: src/client/keycode.cpp -msgid "Num Lock" -msgstr "کونچي اڠک" +msgid "Return" +msgstr "Enter" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" +msgstr "ککانن" #: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "کونچي تاتل" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "Shift کيري" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "Shift کانن" - -#: src/client/keycode.cpp -msgid "Left Control" -msgstr "Ctrl کيري" +msgid "Right Button" +msgstr "بوتڠ کانن" #: src/client/keycode.cpp msgid "Right Control" msgstr "Ctrl کانن" -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "مينو کيري" - #: src/client/keycode.cpp msgid "Right Menu" msgstr "مينو کانن" #: src/client/keycode.cpp -msgid "IME Escape" -msgstr "IME - کلوار" +msgid "Right Shift" +msgstr "Shift کانن" #: src/client/keycode.cpp -msgid "IME Convert" -msgstr "IME - توکر" +msgid "Right Windows" +msgstr "Windows کانن" #: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "IME - تيدقتوکر" +msgid "Scroll Lock" +msgstr "کونچي تاتل" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" +msgstr "Select" #: src/client/keycode.cpp -msgid "IME Accept" -msgstr "IME - تريما" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "IME - توکر مود" - -#: src/client/keycode.cpp -msgid "Apps" -msgstr "اڤليکاسي" +msgid "Shift" +msgstr "Shift" #: src/client/keycode.cpp msgid "Sleep" msgstr "تيدور" #: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "ڤادم EOF" +msgid "Snapshot" +msgstr "تڠکڤ ݢمبر سکرين" #: src/client/keycode.cpp -msgid "Play" -msgstr "مولا ماٴين" +msgid "Space" +msgstr "سلاڠ" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "Tab" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "اتس" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "بوتڠ X نومبور 1" + +#: src/client/keycode.cpp +msgid "X Button 2" +msgstr "بوتڠ X نومبور 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "زوم" -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "ڤادم OEM" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "ڤتا ميني دسمبوڽيکن" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "ڤتا ميني دالم مود رادر⹁ زوم 1x" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹁ زوم 1x" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "سايز تيکستور مينيموم" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "کات لالوان تيدق ڤادن!" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" +msgstr "دفتر دان سرتاٴي" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1729,150 +1788,118 @@ msgstr "" "سيلا تايڤ سمولا کات لالوان اندا دان کليک 'دفتر دان سرتاٴي' اونتوق صحکن " "ڤنچيڤتاٴن اکاٴون⹁ اتاو کليک 'باتل' اونتوق ممباتلکن." -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "دفتر دان سرتاٴي" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "کات لالوان تيدق ڤادن!" - #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "تروسکن" +#: src/gui/guiKeyChangeMenu.cpp +msgid "\"Special\" = climb down" +msgstr "\"ايستيميوا\" = ڤنجت تورون" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Autoforward" +msgstr "أوتوڤرݢرقن" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Automatic jumping" +msgstr "لومڤت أوتوماتيک" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "کبلاکڠ" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Change camera" +msgstr "توکر کاميرا" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "سيمبڠ" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "ارهن" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "کونسول" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "کورڠکن جارق" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "ڤرلاهنکن بوڽي" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "تکن دوا کالي \"لومڤت\" اونتوق منوݢول تربڠ" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "جاتوهکن" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "کدڤن" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "ناٴيقکن جارق" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "کواتکن بوڽي" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "اينۏينتوري" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "لومڤت" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "ککونچي تله دݢوناکن اونتوق فوڠسي لاٴين" + #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" "ايکتن ککونچي. (جيک مينو اين برسليرق⹁ ڤادم سستڠه بندا دري فايل minetest.conf)" #: src/gui/guiKeyChangeMenu.cpp -msgid "\"Special\" = climb down" -msgstr "\"ايستيميوا\" = ڤنجت تورون" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "تکن دوا کالي \"لومڤت\" اونتوق منوݢول تربڠ" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Automatic jumping" -msgstr "لومڤت أوتوماتيک" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "ککونچي تله دݢوناکن اونتوق فوڠسي لاٴين" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "تکن ککونچي" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "کدڤن" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "کبلاکڠ" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "ايستيميوا" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "لومڤت" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "سلينڤ" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "جاتوهکن" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "اينۏينتوري" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "ايتم سبلومڽ" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "ايتم ستروسڽ" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "توکر کاميرا" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "توݢول ڤتا ميني" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "توݢول تربڠ" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "توݢول ڤرݢرقن منچورم" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "توݢول ڤرݢرقن ڤنتس" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "توݢول تمبوس بلوک" +msgid "Local command" +msgstr "ارهن تمڤتن" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" msgstr "بيسو" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "ڤرلاهنکن بوڽي" +msgid "Next item" +msgstr "ايتم ستروسڽ" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "کواتکن بوڽي" +msgid "Prev. item" +msgstr "ايتم سبلومڽ" #: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "أوتوڤرݢرقن" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "سيمبڠ" +msgid "Range select" +msgstr "جارق ڤميليهن" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" msgstr "تڠکڤ لاير" #: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "جارق ڤميليهن" +msgid "Sneak" +msgstr "سلينڤ" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "کورڠکن جارق" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "ناٴيقکن جارق" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "کونسول" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "ارهن" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "ارهن تمڤتن" +msgid "Special" +msgstr "ايستيميوا" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" @@ -1882,29 +1909,49 @@ msgstr "توݢول ڤاڤر ڤندو (HUD)" msgid "Toggle chat log" msgstr "توݢول لوݢ سيمبڠ" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "توݢول ڤرݢرقن ڤنتس" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "توݢول تربڠ" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" msgstr "توݢول کابوت" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "کات لالوان لام" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "توݢول ڤتا ميني" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "توݢول تمبوس بلوک" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "توݢول ڤرݢرقن منچورم" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "تکن ککونچي" #: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "کات لالوان بارو" +msgid "Change" +msgstr "توکر" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" msgstr "صحکن کات لالوان" #: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "توکر" +msgid "New Password" +msgstr "کات لالوان بارو" -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "ککواتن بوڽي: " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "کات لالوان لام" #: src/gui/guiVolumeChange.cpp msgid "Exit" @@ -1914,6 +1961,10 @@ msgstr "کلوار" msgid "Muted" msgstr "دبيسوکن" +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "ککواتن بوڽي: " + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1927,213 +1978,6 @@ msgstr "ماسوقکن " msgid "LANG_CODE" msgstr "ms_Arab" -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "کاولن" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "بينا دالم ڤماٴين" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" -"جيک دبوليهکن⹁ اندا بوليه ملتق بلوک دکدودوقن برديري (کاکي + ارس مات).\n" -"اين ساڠت برݢونا اڤابيلا بکرجا دڠن کوتق نود دکاوسن يڠ کچيل." - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "تربڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" -"ڤماٴين بوليه تربڠ تنڤ ترکسن دڠن ݢراۏيتي.\n" -"اين ممرلوکن کأيستيميواٴن \"تربڠ\" دالم ڤلاين ترسبوت." - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "مود ڤرݢرقن ڤيچ" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" -"جيک دبوليهکن⹁ اي ممبواتکن اره ڤرݢرقن ريلاتيف دڠن ڤيچ ڤماٴين اڤابيلا تربڠ " -"اتاو برنڠ." - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "ڤرݢرقن ڤنتس" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" -"برݢرق ڤنتس (دڠن ککونچي \"ايستيميوا\").\n" -"اين ممرلوکن کأيستيميواٴن \"ڤرݢرقن ڤنتس\" دالم ڤلاين ترسبوت." - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "تمبوس بلوک" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" -"جيک دبوليهکن برسام مود تربڠ⹁ ڤماٴين بوليه تربڠ منروسي نود ڤڤجل.\n" -"اين ممرلوکن کأيستيميواٴن \"تمبوس بلوک\" دالم ڤلاين ترسبوت." - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "مود سينماتيک" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" -"ملمبوتکن کاميرا اڤابيلا مليهت سکليليڠ. جوݢ دکنلي سباݢاي ڤلمبوتن ڤڠليهتن اتاو " -"ڤلمبوتن تتيکوس.\n" -"برݢونا اونتوق مراکم ۏيديو." - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "ڤلمبوتن کاميرا" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "ملمبوتکن ڤموترن کاميرا. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ." - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "ڤلمبوتن کاميرا دالم مود سينماتيک" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" -"ملمبوتکن ڤموترن کاميرا دالم مود سينماتيک. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ." - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "تتيکوس سوڠسڠ" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "مڽوڠسڠکن ڤرݢرقن تتيکوس منݢق." - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "کڤيکاٴن تتيکوس" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "ڤندارب کڤيکاٴن تتيکوس." - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "ککونچي اونتوق ممنجت\\منورون" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" -"جيک دبوليهکن⹁ ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق ڤنجت کباوه دان\n" -"تورون دالم مود تربڠ⹁ مڠݢنتيکن ککونچي \"سلينڤ\"." - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "تکن \"لومڤت\" دوا کالي اونتوق تربڠ" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "تکن بوتڠ \"لومڤت\" سچارا چڤت دوا کالي اونتوق منوݢول مود تربڠ." - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "سنتياس تربڠ دان برݢرق ڤنتس" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" -"جيک دلومڤوهکن⹁ ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق تربڠ لاجو\n" -"سکيراڽ کدوا-دوا مود تربڠ دان مود ڤرݢرقن ڤنتس دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "سلڠ ڤڠاولڠن کليک کانن" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" -"جومله ماس دالم ساٴت دامبيل اونتوق ملاکوکن کليک کانن يڠ براولڠ اڤابيلا\n" -"ڤماٴين منکن بوتڠ تتيکوس کانن تنڤ ملڤسکنڽ." - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "لومڤت هالڠن ساتو-نود سچارا أوروماتيک." - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "ڤڠݢالين دان ڤلتقن سلامت" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" -"منچݢه ݢالي دان ڤلتقن درڤد براولڠ کتيک تروس منکن بوتڠ تتيکوس.\n" -"بوليهکن تتڤن اين اڤابيلا اندا ݢالي اتاو لتق سچارا تيدق سڠاج ترلالو کرڤ." - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "اينڤوت راوق" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "ممبوليهکن اينڤوت ڤڠݢونا سچارا راوق (هاڽ اونتوق ڤرچوباٴن)." - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "کدڤن برتروسن" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" -"ڤرݢرقن کدڤن برتروسن⹁ دتوݢول اوليه ککونچي أوتوڤرݢرقن.\n" -"تکن ککونچي أوتوڤرݢرقن لاݢي اتاو ڤرݢرقن کبلاکڠ اونتوق ملومڤوهکنڽ." - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "نيلاي امبڠ سکرين سنتوه" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "ڤنجڠ دالم ڤيکسيل اونتوق ممولاکن اينتراکسي سکرين سنتوه." - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "کايو بديق ماي تتڤ" - #: src/settings_translation_file.cpp msgid "" "(Android) Fixes the position of virtual joystick.\n" @@ -2143,10 +1987,6 @@ msgstr "" "جيک دلومڤوهکن⹁ کدودوقن تڠه اونتوق کايو بديق ماي اکن دتنتوکن برداسرکن کدودوقن " "سنتوهن ڤرتام." -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "کايو بديق ماي مميچو بوتڠ aux" - #: src/settings_translation_file.cpp msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" @@ -2157,1725 +1997,111 @@ msgstr "" "جيک دبوليهکن⹁ کايو بديق ماي جوݢ اکن منکن بوتڠ \"aux\" اڤابيلا براد دلوار " "بولتن اوتام." -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "ممبوليهکن کايو بديق" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "ID کايو بديق" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "ڤڠنل ڤستي کايو بديق يڠ دݢوناکن" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "جنيس کايو بديق" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "جنيس کايو بديق" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "سلڠ ماس ڤڠاولڠن بوتڠ کايو بديق" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" -"سلڠ ماس دالم ساٴت⹁ دامبيل انتارا ڤريستيوا يڠ براولڠن\n" -"اڤابيلا منکن کومبيناسي بوتڠ کايو بديق." - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "کڤيکاٴن فروستوم کايو بديق" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" -"کڤيکاٴن ڤکسي کايو بديق اونتوق مڠݢرقکن\n" -"فروستوم ڤڠليهتن دالم ڤرماٴينن." - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "ککونچي کدڤن" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مڠݢرقکن ڤماٴين کدڤن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "ککونچي کبلاکڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مڠݢرقکن ڤماٴين کبلاکڠ.\n" -"جوݢ اکن ملومڤوهکن أوتوڤرݢرقن⹁ اڤابيلا اکتيف.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "ککونچي ککيري" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مڠݢرقکن ڤماٴين ککيري.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "ککومچي ککانن" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مڠݢرقکن ڤماٴين ککانن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "ککونچي لومڤت" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ملومڤت.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "ککونچي سلينڤ" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مڽلينڤ.\n" -"جوݢ دݢوناکن اونتوق تورون باواه کتيک ممنجت دان دالم اٴير جيک تتڤن " -"aux1_descends دلومڤوهکن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "ککونچي اينۏينتوري" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ممبوک اينۏينتوري.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "ککونچي ايستيميوا" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق برݢرق ڤنتس دالم مود ڤرݢرقن ڤنتس.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "ککونچي سيمبڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "ککونچي ارهن" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ اونتوق مناٴيڤ ارهن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ اونتوق مناٴيڤ ارهن تمڤتن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "ککونچي جارق ڤميليهن" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول جارق ڤندڠن تيادا حد.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "ککونچي تربڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول مود تربڠ.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "ککونچي ڤرݢرقن ڤيچ" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤيچ.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "ککونچي ڤرݢرقن ڤنتس" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤنتس.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "ککونچي تمبوس بلوک" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول مود تمبوس بلوک.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "ککونچي ايتم ستروسڽ دالم هوتبر" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه ايتم ستروسڽ ددالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "ککونچي ايتم سبلومڽ دالم هوتبر" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه بارڠ سبلومڽ دهوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "ککونچي بيسو" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ممبيسوکن ڤرماٴينن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "ککونچي کواتکن بوڽي" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مڠواتکن بوڽي.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "ککونچي ڤرلاهنکن بوڽي" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ممڤرلاهنکن بوڽي.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "ککونچي أوتوڤرݢرقن" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول أوتوڤرݢرقن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "ککونچي مود سينماتيک" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول مود سينماتيک.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "ککونچي ڤتا ميني" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول ڤاڤرن ڤتا ميني.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منڠکڤ ݢمبر لاير.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "ککونچي جاتوهکن ايتم" - #: src/settings_translation_file.cpp msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"ککونچي اونتوق منجاتوهکن ايتم يڠ سدڠ دڤيليه.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "ککونچي زوم ڤندڠن" +"(X,Y,Z) اوفسيت فراکتل دري ڤوست دنيا دالم اونيت 'سکال'.\n" +"بوليه ݢونا اونتوق ڤيندهکن تيتيق يڠ دايڠيني ک(0, 0)\n" +"اونتوق چيڤت تيتيق کلاهيرن يڠ سسواي⹁ اتاو اونتوق\n" +"ممبوليهکن 'زوم ماسوق' ڤد تيتيق يڠ دايڠينکن\n" +"دڠن مناٴيقکن 'سکال'.\n" +"نيلاي لالاي دسسوايکن اونتوق تيتيق کلاهيرن سسواي اونتوق سيت Mandelbrot\n" +"دڠن ڤاراميتر لالاي⹁ اي موڠکين ڤرلو داوبه اونتوق سيتواسي يڠ لاٴين.\n" +"جولت کاسرڽ -2 سهيڠݢ 2. داربکن دڠن 'سکال' اونتوق اوفسيت دالم نود." #: src/settings_translation_file.cpp msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." msgstr "" -"ککونچي اونتوق مڠݢوناکن ڤندڠن زوم اڤابيلا دبنرکن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "ککونچي سلوت هوتبر 1" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" -"ککونچي اونتوق مميليه سلوت ڤرتام دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "ککونچي سلوت هوتبر 2" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the shape/size of rolling hills." msgstr "" -"ککونچي اونتوق مميليه سلوت ک-2 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "ککونچي سلوت هوتبر 3" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the shape/size of step mountains." msgstr "" -"ککونچي اونتوق مميليه سلوت ک-3 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "ککونچي سلوت هوتبر 4" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" -"ککونچي اونتوق مميليه سلوت ک-4 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "ککونچي سلوت هوتبر 5" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the size/occurrence of rolling hills." msgstr "" -"ککونچي اونتوق مميليه سلوت ک-5 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "ککونچي سلوت هوتبر 6" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" -"ککونچي اونتوق مميليه سلوت ک-6 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "ککونچي سلوت هوتبر 7" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that locates the river valleys and channels." msgstr "" -"ککونچي اونتوق مميليه سلوت ک-7 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "ککونچي سلوت هوتبر 8" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-8 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "ککونچي سلوت هوتبر 9" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-9 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "ککونچي سلوت هوتبر 10" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-10 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "ککونچي سلوت هوتبر 11" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-11 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "ککونچي سلوت هوتبر 12" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-12 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "ککونچي سلوت هوتبر 13" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-13 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "ککونچي سلوت هوتبر 14" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-14 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "ککونچي سلوت هوتبر 15" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-15 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "ککونچي سلوت هوتبر 16" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-16 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "ککونچي سلوت هوتبر 17" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-17 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "ککونچي سلوت هوتبر 18" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-18 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "ککونچي سلوت هوتبر 19" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-19 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "ککونچي سلوت هوتبر 20" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-20 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "ککونچي سلوت هوتبر 21" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-21 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "ککونچي سلوت هوتبر 22" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-22 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "ککونچي سلوت هوتبر 23" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-23 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "ککونچي سلوت هوتبر 24" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-24 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "ککونچي سلوت هوتبر 25" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-25 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "ککونچي سلوت هوتبر 26" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-26 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "ککونچي سلوت هوتبر 27" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-27 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "ککونچي سلوت هوتبر 28" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-28 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "ککونچي سلوت هوتبر 29" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-29 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "ککونچي سلوت هوتبر 30" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-30 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "ککونچي سلوت هوتبر 31" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-31 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "ککونچي سلوت هوتبر 32" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت ک-32 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "ککونچي منوݢول ڤاڤر ڤندو (HUD)" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول ڤاڤر ڤندو (HUD).\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "ککونچي توݢول سيمبڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول ڤاڤرن سيمبڠ.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "ککونچي کونسول سيمبڠ بسر" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول ڤاڤرن کونسول سيمبڠ بسر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "ککونچي توݢول کابوت" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول ڤاڤرن کابوت.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "ککونچي توݢول کمس کيني کاميرا" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول ڤڠمسکينين کاميرا. هاڽ دݢوناکن اونتوق ڤمباڠونن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "ککونچي توݢول معلومت ڽهڤڤيجت" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول ڤاڤرن معلومت ڽهڤڤيجت.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "ککونچي توݢول ڤمبوکه" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول ڤمبوکه. دݢوناکن اونتوق ڤمباڠونن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "ککونچي توݢول مود کاميرا" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق برتوکر انتارا کاميرا اورڠ ڤرتام دان کتيݢ.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "ککونچي منمبه جارق ڤندڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منمبه جارق ڤندڠ.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "ککونچي مڠورڠ جارق ڤندڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مڠورڠکن جارق ڤندڠ.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "ݢرافيک" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "دالم ڤرماٴينن" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "اساس" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "VBO" - -#: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" -"ممبوليهکن اوبجيک ڤنيمبل بوچو.\n" -"اي ڤاتوت منيڠکتکن ڤريستاسي ݢرافيک دڠن باڽق." - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "کابوت" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "سام اد اندا هندق مڠکابوتکن ڤڠهوجوڠ کاوسن يڠ کليهتن." - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "ݢاي داٴون" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" -"ݢاي داٴون:\n" -"- براݢم: سموا سيسي کليهتن\n" -"- ريڠکس: هاڽ سيسي لوار کليهتن⹁ جيک special_tiles يڠ دتنتوکن دݢوناکن\n" -"- لݢڤ: ملومڤوهکن لوت سينر" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "سمبوڠ کاچ" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "سمبوڠکن کاچ جيک دسوکوڠ اوليه نود." - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "ڤنچهاياٴن لمبوت" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" -"ممبوليهکن ڤنچهاياٴن لمبوت دڠن اوکلوسي سکيتر يڠ ريڠکس.\n" -"لومڤوهکنڽ اونتوق کلاجوان اتاو اونتوق کليهتن بربيذا." - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "اون" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "اون ايت ايفيک ڤد ڤيهق کليئن." #: src/settings_translation_file.cpp msgid "3D clouds" msgstr "اون 3D" -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "ݢونا ڤاڤرن اون 3D مڠݢنتيکن اون رات." - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "تونجولن نود" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "قاعده يڠ دݢوناکن اونتوق منونجولکن اوبجيک دڤيليه." - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "ڤرتيکل کتيک مڠݢالي" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "منمبه ڤرتيکل اڤابيلا مڠݢالي نود." - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "ڤناڤيسن" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "ڤمتاٴن ميڤ" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" -"ݢوناکن ڤمتاٴن ميڤ اونتوق مڽسوايکن تيکستور. بوليه منيڠکتکن\n" -"سديکيت ڤريستاسي⹁ تراوتاماڽ اڤابيلا مڠݢوناکن ڤيک تيکستور\n" -"برديفينيسي تيڠݢي. ڤڽسواي-تورون ݢام سچار تڤت تيدق دسوکوڠ." - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "ڤناڤيسن انيسوتروڤيک" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "ݢوناکن ڤناڤيسن انيسوتروڤيک اڤابيلا مليهت تيکستور دري سواتو سودوت." - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "ڤناڤيسن بيلينيار" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "ݢوناکن ڤناڤيسن بيلينيار اڤابيلا مڽسوايکن تيکستور." - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "ڤناڤيسن تريلينيار" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "ݢوناکن ڤناڤيسن تريلينيار اڤابيلا مڽسوايکن تيکستور." - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "برسيهکن تيکستور لوت سينر" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" -"تيکستور يڠ دتاڤيس بوليه سباتيکن نيلاي RGB دڠن جيرن يڠ لوت سينر سڤنوهڽ⹁\n" -"يڠ مان ڤڠاوڤتيموم PNG سريڠ ابايکن⹁ کادڠکال مڽببکن سيسي ݢلڤ اتاو تراڠ ڤد\n" -"تيکستور لوت سينر. ݢونا ڤناڤيسن اين اونتوق ممبرسيهکن تيکستور ترسبوت کتيک\n" -"اي سدڠ دمواتکن." - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "سايز تيکستور مينيموم" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" -"اڤابيلا مڠݢوناکن تاڤيسن بيلينيار\\تريلينيار\\انيسوتروڤيک⹁ تيکستور\n" -"ريسولوسي رنده بوليه جادي کابور⹁ جادي سسواي-ناٴيقکن مريک\n" -"سچارا أوتوماتيک دڠن سيسيڤن جيرن تردکت اونتوق ممليهارا ڤيکسل\n" -"کراس. تتڤن اين منتڤکن سايز تيکستور مينيما اونتوق تيکستور\n" -"ڤڽسواي-ناٴيقکن⁏ نيلاي لبيه تيڠݢي تمڤق لبيه تاجم⹁ تتاڤي ممرلوکن\n" -"ميموري يڠ لبيه باڽق. نيلاي کواسا 2 دشورکن. منتڤکن نيلاي اين لبيه\n" -"تيڠݢي دري 1 تيدق اکن منمڤقکن کسن يڠ ڽات ملاٴينکن تاڤيسن\n" -"بيلينيار\\تريلينيار\\انيسوتروڤيک دبوليهکن. اين جوݢ دݢوناکن سباݢاي\n" -"سايز تيکستور نود اساس اونتوق أوتوڤڽسواين تيکستور جاجرن دنيا." - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "FSAA" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"ڤيليهن ڤرچوباٴن⹁ موڠکين منمڤقکن رواڠ ڽات دانتارا\n" -"بلوک اڤابيلا دتتڤکن دڠن نومبور لبيه بسر درڤد 0." - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "ڤنسمڤلن ڤڠورڠن" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" -"ڤنسمڤلن ڤڠورڠن سروڤ سڤرتي مڠݢوناکن ريسولوسي سکرين رنده⹁\n" -"تتاڤي اي هاڽ داڤليکاسيکن کڤد دنيا ڤرماٴينن سهاج⹁ تيدق مڠاوبه GUI.\n" -"اي بوليه منيڠکتکن ڤريستاسي دڠن مڠوربنکن ڤراينچين ايميج.\n" -"نيلاي لبيه تيڠݢي ممبواتکن ايميج يڠ کورڠ ڤراينچين." - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" -"ڤمبايڠ ممبوليهکن کسن ۏيسوال مندالم دان بوليه منيڠکتکن\n" -"ڤريستاسي اونتوق سستڠه کد ۏيديو.\n" -"نامون اي هاڽ برفوڠسي دڠن ڤمبهاݢين بلاکڠ ۏيديو OpenGL." - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "لالوان ڤمبايڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" -"لالوان کديريکتوري ڤمبايڠ. جيک تيادا لالوان دتعريفکن⹁ لوکاسي لالاي اکن " -"دݢوناکن." - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "ڤمتاٴن تونا سينماتيک" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" -"ممبوليهکن ڤمتاٴن تونا سينماتيک 'Uncharted 2' (انچرتد ثو) اوليه Hable (هيبل)." -"\n" -"مڽلاکوکن لڠکوڠ تونا فيلم فوتوݢرافي دان چارا اي مڠاڠݢرکن ڤنمڤيلن ايميج جارق\n" -"ديناميک تيڠݢي. بيذا جلس ڤرتڠهن جولت دتيڠکتکن سديکيت⹁ تونجولن دان بايڠن\n" -"دممڤتکن سچارا برانسور." - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "ڤمتاٴن برتومڤوق" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"ممبوليهکن ڤمتاٴن برتومڤوق ڤد تيکستور. ڤتا نورمل ڤرلو دسدياکن\n" -"اوليه ڤيک تيکستور اتاو ڤرلو دجان سچارا أوتوماتيک.\n" -"ڤرلوکن ڤمبايڠ دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "جان ڤتا نورمل" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"ممبوليهکن ڤنجاناٴن ڤتا نورمل سچارا لايڠ (کسن چيتق تيمبول).\n" -"ڤرلوکن ڤمتاٴن برتومڤوق اونتوق دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "ککواتن ڤتا نورمل" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "ککواتن ڤتا نورمل يڠ دجان." - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "ڤرسمڤلن ڤتا نورمل" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"منتعريفکن تاهڤ ڤرسمڤلن تيکستور.\n" -"نيلاي لبيه تيڠݢي مڠحاصيلکن ڤتا نورمل لبيه لمبوت." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "اوکلوسي ڤارالکس" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"ممبوليهکن ڤمتاٴن اوکلوسي ڤارالکس.\n" -"ممرلوکن ڤمبايڠ اونتوق دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "مود اوکلوسي ڤارالکس" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = اوکلوسي ڤارالکس دڠن معلومت چرون (لبيه چڤت).\n" -"1 = ڤمتاٴن بنتوق موک بومي (لبيه لمبت⹁ لبيه تڤت)." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "للرن اوکلوسي ڤارالکس" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "جومله للرن اوکلوسي ڤارالکس." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "سکال اوکلوسي ڤارالکس" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "سکال کسلوروهن کسن اوکلوسي ڤارالکس." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "ڤڠاروه اوکلوسي ڤارالکس" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "ڤڠاروه کسن اوکلوسي ڤارالکس ڤد کسلوروهنڽ⹁ کبياساٴنڽ سکال\\2." - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "نود برݢويڠ" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "چچاٴير برݢلورا" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" -"تتڤکن کڤد \"true\" اونتوق ممبوليهکن چچاٴير برݢلورا (ماچم اٴير).\n" -"ممرلوکن ڤمبايڠ اونتوق دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "کتيڠݢين اومبق چچاٴير برݢلورا" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" -"تيڠݢي مکسيموم ڤرموکاٴن چچاٴير برݢلورا.\n" -"4.0 = تيڠݢي ݢلورا اياله دوا نود.\n" -"0.0 = ݢلورا تيدق برݢرق لڠسوڠ.\n" -"نيلاي اصلڽ 1.0 (1/2 نود).\n" -"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "ڤنجڠ اومبق چچاٴير برݢلورا" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" -"ڤنجڠ ݢلورا چچاٴير.\n" -"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "کلاجوان اومبق چچاٴير برݢلورا" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" -"سچڤت مان ݢلورا چچاٴير اکن برݢرق. نيلاي تيڠݢي = لبيه لاجو.\n" -"جيک نيلاي نيݢاتيف⹁ ݢلورا چچاٴير اکن برݢرق کبلاکڠ.\n" -"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "داٴون برݢويڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" -"تتڤکن کڤد \"true\" اونتوق ممبوليهکن داٴون برݢويڠ.\n" -"ممرلوکن ڤمبايڠ اونتوق دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "تومبوهن برݢويڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" -"تتڤکن کڤد \"true\" اونتوق ممبوليهکن تومبوهن برݢويڠ.\n" -"ممرلوکن ڤمبايڠ اونتوق دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "تتڤن مندالم" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "اينرسيا لڠن" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" -"اينرسيا لڠن⹁ ممبريکن ڤرݢرقن لڠن يڠ\n" -"لبيه رياليستيک اڤابيلا کاميرا دݢرقکن." - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "FPS مکسيما" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" -"جيک بيڠکاي ڤر ساٴت (FPS) اکن ناٴيق لبيه تيڠݢي درڤد نيلاي اين⹁\n" -"حدکن اي دڠن تيدورکنڽ سوڤايا تيدق بازيرکن کواسا CPU دڠن سيا٢." - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS دمينو جيدا" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "بيڠکاي ڤر ساٴت (FPS) مکسيما اڤابيلا ڤرماٴينن دجيداکن." - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "جيدا کتيک هيلڠ فوکوس تتيڠکڤ" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" -"بوک مينو جيدا اڤابيلا فوکوس تتيڠکڤ هيلڠ.\n" -"تيدق جيدا جيک فورمسڤيک دبوک." - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "جارق ڤندڠ" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "جارق ڤندڠ دالم اونيت نود." - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "دکت ساته" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" -"جارق کاميرا 'برهمڤيرن ساته کتيڤن' دالم نيلاي نود⹁ انتارا 0 دان 0.5.\n" -"هاڽ برکسن دڤلاتفورم GLES. کباڽقن ڤڠݢونا تيدق ڤرلو مڠاوبه نيلاي اين.\n" -"مناٴيقکن نيلاي بوليه کورڠکن ارتيفک ڤد GPU يڠ لبيه لمه.\n" -"0.1 = اصل⹁ 0.25 = نيلاي باݢوس اونتوق تابليت يڠ لبيه لمه." - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "ليبر سکرين" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "کومڤونن ليبر سايز تتيڠکڤ اول." - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "تيڠݢي سکرين" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "کومڤونن تيڠݢي سايز تتيڠکڤ اول." - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "أوتوسيمڤن سايز سکرين" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "سيمڤن سايز تتيڠکڤ سچارا أوتوماتيک کتيک داوبه." - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "سکرين ڤنوه" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "مود سکرين ڤنوه." - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "BPP سکرين ڤنوه" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "بيت ڤر ڤيکسيل (اتاو کدالمن ورنا) دالم مود سکرين ڤنوه." - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "VSync" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "ڤڽݢرقن منݢق سکرين." - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "ميدن ڤندڠ" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "ميدن ڤندڠ دالم درجه سودوت." - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "ݢام لڠکوڠ چهاي" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" -"اوبه لڠکوڠ چهاي دڠن مڠناکن 'ڤمبتولن ݢام'.\n" -"نيلاي تيڠݢي بواتکن اساس چهاي تڠه دان رنده لبيه تراڠ.\n" -"نيلاي '1.0' اکن بيارکن لڠکوڠ چهاي اصل تيدق براوبه.\n" -"تتڤن اين هاڽ ممبري کسن مندالم ڤد چهاي ماتاهاري\n" -"دان چهاي بواتن⹁ کسنڽ ڤد چهاي مالم امت رنده." - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "کچرونن رنده لڠکوڠ چهاي" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" -"کچرونن لڠکوڠ چهاي ڤد تاهڤ چهاي مينيموم.\n" -"مڠاول بيذا جلس تاهڤ چهاي ترنده." - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "کچرونن تيڠݢي لڠکوڠ چهاي" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" -"کچرونن لڠکوڠ چهاي ڤد تاهڤ چهاي مکسيموم.\n" -"مڠاول بيذا جلس تاهڤ چهاي ترتيڠݢي." - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "تولقن لڠکوڠ چهاي" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" -"ککواتن تولقن چهاي.\n" -"تيݢ ڤاراميتر 'تولقن' منتعريفکن جولت لڠکوڠ\n" -"چهاي يڠ دتولق دالم ڤنچهاياٴن." - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "تيتيق تڠه تولقن لڠکوڠ چهاي" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" -"ڤرتڠهن جولت تولقن لڠکوڠ چهاي.\n" -"دمان 0.0 اياله ارس چهاي مينيموم⹁ 1.0 اياله مکسيموم." - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "سيبرن تولقن لڠکوڠ چهاي" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" -"سيبر جولت تولقن لڠکوڠ چهاي.\n" -"مڠاول ليبر جولت اونتوق دتولق.\n" -"سيسيهن ڤياواي Gauss (ݢاٴوس) تولقن لڠکوڠ چهاي." - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "لالوان تيکستور" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "لالوان کديريکتوري تيکستور. سموا تيکستور دچاري دري سيني داهولو." - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "ڤماچو ۏيديو" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" -"ترجمهن بهاݢين بلاکڠ اونتوق Irrlicht.\n" -"اندا ڤرلو ممولاکن سمولا سلڤس مڠاوبه تتڤن اين.\n" -"نوت: دAndroid⹁ ککلکن دڠن OGLES1 جيک تيدق ڤستي! اڤليکاسي موڠکين تيدق\n" -"بوليه دمولاکن جيک مڠݢوناکن تتڤن لاٴين. دڤلاتفورم لاٴين⹁ OpenGL دشورکن⹁\n" -"دان اي اياله ساتو-ساتوڽ ڤماچو يڠ ممڤوڽاٴي سوکوڠن ڤمبايڠ کتيک اين." - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "ججاري اون" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" -"ججاري کلواسن اون دڽاتاکن دالم جومله 64 نود ڤيتق اون.\n" -"نيلاي لبيه دري 26 اکن مولا مڠهاسيلکن ڤموتوڠن تاجم دسودوت کاوسن اون." - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "فکتور اڤوڠن ڤندڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" -"ڤندارب اونتوق ڤڠاڤوڠن ڤندڠن.\n" -"چونتوهڽ: 0 اونتوق تيادا اڤوڠن⁏ 1.0 اونتوق بياسا⁏ 2.0 اونتوق دوا کالي ݢندا." - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "فکتور اڤوڠن کجاتوهن" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" -"ڤندارب اونتوق اڤوڠن تيمبول تڠݢلم.\n" -"چونتوهڽ: 0 اونتوق تيادا اڤوڠن⁏ 1.0 اونتوق بياسا⁏ 2.0 اونتوق دوا کالي ݢندا." - #: src/settings_translation_file.cpp msgid "3D mode" msgstr "مود 3D" +#: src/settings_translation_file.cpp +msgid "3D mode parallax strength" +msgstr "ککواتن ڤارالکس مود 3D" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + #: src/settings_translation_file.cpp msgid "" "3D support.\n" @@ -3901,150 +2127,706 @@ msgstr "" "امبيل ڤرهاتين بهاوا مود سلڠ-سلي ممرلوکن ڤمبايڠ." #: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "ککواتن ڤارالکس مود 3D" - -#: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." -msgstr "ککواتن ڤارالکس مود 3D." - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "کتيڠݢين کونسول" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." msgstr "" -"نيلاي کتيڠݢين کونسول سيمبڠ دالم ڤرماٴينن⹁ انتارا 0.1 (10%) دان 1.0 (100%)." +"بنيه ڤتا يڠ دڤيليه اونتوق ڤتا بارو⹁ بيارکن کوسوڠ اونتوق بنيه راوق.\n" +"تيدق دݢوناڤاکاي سکيراڽ منچيڤتا دنيا بارو ملالوٴي مينو اوتام." #: src/settings_translation_file.cpp -msgid "Console color" -msgstr "ورنا کونسول" +msgid "A message to be displayed to all clients when the server crashes." +msgstr "ميسيج يڠ اکن دڤاڤرکن کڤد سموا کليئن اڤابيلا ڤلاين رونتوه." #: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "ورنا لاتر بلاکڠ کونسول سيمبڠ دالم ڤرماٴينن (R,G,B)." +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "ميسيج يڠ اکن دڤاڤرکن دکت سموا کليئن اڤابيلا ڤلاين دتوتوڤ." + +#: src/settings_translation_file.cpp +msgid "ABM interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Absolute limit of queued blocks to emerge" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "ڤچوتن دأودارا" + +#: src/settings_translation_file.cpp +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block management interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "جارق بلوک اکتيف" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "جارق ڤڠهنترن اوبجيک اکتيف" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." +msgstr "" +"علامت اونتوق مڽمبوڠ.\n" +"بيار کوسوڠ اونتوق ممولاکن ڤلاين ڤرماٴينن تمڤتن.\n" +"امبيل ڤرهاتيان بهاوا ميدن علامت دالم مينو اوتام مڠاتسي تتڤن اين." + +#: src/settings_translation_file.cpp +msgid "Adds particles when digging a node." +msgstr "منمبه ڤرتيکل اڤابيلا مڠݢالي نود." + +#: src/settings_translation_file.cpp +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." +msgstr "" +"لارسکن کونفيݢوراسي DPI کسکرين اندا (بوکن X11/Android سهاج) چونتوه اونتوق " +"سکرين 4K." + +#: src/settings_translation_file.cpp +#, c-format +msgid "" +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "تتڤن مندالم" + +#: src/settings_translation_file.cpp +msgid "" +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." +msgstr "" +"اوبه لڠکوڠ چهاي دڠن مڠناکن 'ڤمبتولن ݢام'.\n" +"نيلاي تيڠݢي بواتکن اساس چهاي تڠه دان رنده لبيه تراڠ.\n" +"نيلاي '1.0' اکن بيارکن لڠکوڠ چهاي اصل تيدق براوبه.\n" +"تتڤن اين هاڽ ممبري کسن مندالم ڤد چهاي ماتاهاري\n" +"دان چهاي بواتن⹁ کسنڽ ڤد چهاي مالم امت رنده." + +#: src/settings_translation_file.cpp +msgid "Always fly and fast" +msgstr "سنتياس تربڠ دان برݢرق ڤنتس" + +#: src/settings_translation_file.cpp +msgid "Ambient occlusion gamma" +msgstr "ݢام اوکلوسي سکيتر" + +#: src/settings_translation_file.cpp +msgid "Amount of messages a player may send per 10 seconds." +msgstr "جومله ميسيج ڤماٴين بوليه هنتر ستياڤ 10 ساٴت." + +#: src/settings_translation_file.cpp +msgid "Amplifies the valleys." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" +msgstr "ڤناڤيسن انيسوتروڤيک" + +#: src/settings_translation_file.cpp +msgid "Announce server" +msgstr "عمومکن ڤلاين" + +#: src/settings_translation_file.cpp +msgid "Announce to this serverlist." +msgstr "عمومکن کسناراي ڤلاين اين." + +#: src/settings_translation_file.cpp +msgid "Append item name" +msgstr "تمبه نام ايتم" + +#: src/settings_translation_file.cpp +msgid "Append item name to tooltip." +msgstr "تمبه نام ايتم کتيڤ التن." + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" +msgstr "اينرسيا لڠن" + +#: src/settings_translation_file.cpp +msgid "" +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." +msgstr "" +"اينرسيا لڠن⹁ ممبريکن ڤرݢرقن لڠن يڠ\n" +"لبيه رياليستيک اڤابيلا کاميرا دݢرقکن." + +#: src/settings_translation_file.cpp +msgid "Ask to reconnect after crash" +msgstr "مينتا سمبوڠ سمولا سلڤس کرونتوهن" + +#: src/settings_translation_file.cpp +msgid "" +"At this distance the server will aggressively optimize which blocks are sent " +"to\n" +"clients.\n" +"Small values potentially improve performance a lot, at the expense of " +"visible\n" +"rendering glitches (some blocks will not be rendered under water and in " +"caves,\n" +"as well as sometimes on land).\n" +"Setting this to a value greater than max_block_send_distance disables this\n" +"optimization.\n" +"Stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatic forward key" +msgstr "ککونچي أوتوڤرݢرقن" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "لومڤت هالڠن ساتو-نود سچارا أوروماتيک." + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "ملاڤورکن کڤد سناراي ڤلاين سچارا اٴوتوماتيک." + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "أوتوسيمڤن سايز سکرين" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "مود سکال أوتوماتيک" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "ککونچي کبلاکڠ" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "اساس" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "کأيستيميواٴن اساس" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "ڤناڤيسن بيلينيار" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "علامت ايکتن" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "بيت ڤر ڤيکسيل (اتاو کدالمن ورنا) دالم مود سکرين ڤنوه." + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "لالوان فون تبل دان ايتاليک" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "لالوان فون monospace تبل دان ايتاليک" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "لالوان فون تبل" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "لالوان فون monospace تبل" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "بينا دالم ڤماٴين" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" +"جارق کاميرا 'برهمڤيرن ساته کتيڤن' دالم نيلاي نود⹁ انتارا 0 دان 0.5.\n" +"هاڽ برکسن دڤلاتفورم GLES. کباڽقن ڤڠݢونا تيدق ڤرلو مڠاوبه نيلاي اين.\n" +"مناٴيقکن نيلاي بوليه کورڠکن ارتيفک ڤد GPU يڠ لبيه لمه.\n" +"0.1 = اصل⹁ 0.25 = نيلاي باݢوس اونتوق تابليت يڠ لبيه لمه." + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "ڤلمبوتن کاميرا" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "ڤلمبوتن کاميرا دالم مود سينماتيک" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "ککونچي توݢول کمس کيني کاميرا" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" +"ڤرتڠهن جولت تولقن لڠکوڠ چهاي.\n" +"دمان 0.0 اياله ارس چهاي مينيموم⹁ 1.0 اياله مکسيموم." + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "سايز فون سيمبڠ" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "ککونچي سيمبڠ" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "حد کيراٴن ميسيج سيمبڠ" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "فورمت ميسيج سيمبڠ" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "نيلاي امبڠ تندڠ ميسيج سيمبڠ" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "ڤنجڠ مکسيموم ميسيج سيمبڠ" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "ککونچي توݢول سيمبڠ" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "مود سينماتيک" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "ککونچي مود سينماتيک" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "برسيهکن تيکستور لوت سينر" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "کليئن" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "مودس کليئن" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "ججاري اون" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "اون" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "اون ايت ايفيک ڤد ڤيهق کليئن." + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "اون دالم مينو" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "کابوت برورنا" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "ککونچي ارهن" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "سمبوڠ کاچ" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "سمبوڠ کڤلاين ميديا لوارن" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "سمبوڠکن کاچ جيک دسوکوڠ اوليه نود." #: src/settings_translation_file.cpp msgid "Console alpha" msgstr "نيلاي الڤا کونسول" #: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgid "Console color" +msgstr "ورنا کونسول" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "کتيڠݢين کونسول" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" msgstr "" -"نيلاي الفا لاتر بلاکڠ کونسول سيمبڠ دالم ڤرماٴينن (کلݢڤن⹁ انتارا 0 دان 255)." #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "کلݢڤن لاتر بلاکڠ سکرين-ڤنوه فورمسڤيک" +msgid "ContentDB Max Concurrent Downloads" +msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "کلݢڤن لاتر بلاکڠ سکرين-ڤنوه فورمسڤيک (انتارا 0 دان 255)." +msgid "ContentDB URL" +msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" -msgstr "ورنا لاتر بلاکڠ سکرين-ڤنوه فورمسڤيک" +msgid "Continuous forward" +msgstr "کدڤن برتروسن" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "ورنا لاتر بلاکڠ سکرين-ڤنوه فورمسڤيک (R,G,B)." +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" +"ڤرݢرقن کدڤن برتروسن⹁ دتوݢول اوليه ککونچي أوتوڤرݢرقن.\n" +"تکن ککونچي أوتوڤرݢرقن لاݢي اتاو ڤرݢرقن کبلاکڠ اونتوق ملومڤوهکنڽ." #: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "کلݢڤن لاتر بلاکڠ لالاي فورمسڤيک" +msgid "Controls" +msgstr "کاولن" #: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "کلݢڤن اصل لاتر بلاکڠ فورمسڤيک (انتارا 0 دان 255)." +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" +"مڠاول ڤنجڠ کيترن سياڠ\\مالم.\n" +"چونتوهڽ:\n" +"72 اونتوق 20 مينيت⹁ 360 اونتوق 4 مينيت⹁ 1 اونتوق 24 جم⹁ 0 اونتوق سياڠ\\مالم" +"\\لاٴين٢ ککل تيدق بروبه." #: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "ورنا لاتر بلاکڠ لالاي فورمسڤيک" +msgid "Controls sinking speed in liquid." +msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "ورنا لاتر بلاکڠ اصل فورمسڤيک (R,G,B)." +msgid "Controls steepness/depth of lake depressions." +msgstr "" #: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "ورنا کوتق ڤميليهن" +msgid "Controls steepness/height of hills." +msgstr "" #: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "ورنا سمڤادن کوتق ڤميليهن (R,G,B)." +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" #: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "ليبر کوتق ڤميليهن" +msgid "Crash message" +msgstr "ميسيج کرونتوهن" #: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "ليبر ݢاريسن کوتق ڤميليهن سکليليڠ نود." - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "ورنا ررمبوت سيلڠ" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "ورنا باݢي کورسور ررمبوت سيلڠ (R,G,B)." +msgid "Creative" +msgstr "کرياتيف" #: src/settings_translation_file.cpp msgid "Crosshair alpha" msgstr "نيلاي الفا ررمبوت سيلڠ" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "نيلاي الفا ررمبوت سيلڠ (کلݢڤن⹁ انتارا 0 دان 255)." #: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "ميسيج سيمبڠ ترکيني" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "جومله مکسيموم ميسيج سيمبڠ تربارو اونتوق دتونجوقکن" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "مڽهسݢرقکن انيماسي بلوک" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "سام اد انيماسي تيکستور نود ڤرلو دڽهسݢرقکن ڤد ستياڤ بلوک ڤتا." - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "ليبر هوتبر مکسيما" +msgid "Crosshair color" +msgstr "ورنا ررمبوت سيلڠ" #: src/settings_translation_file.cpp msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" -"ڤرکادرن مکسيما اونتوق تتيڠکڤ سماس يڠ دݢوناکن اونتوق هوتبر.\n" -"برݢونا جيک اد سسواتو يڠ اکن دڤاڤرکن دسبله کانن اتاو کيري هوتبر." #: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "فکتور سکالا ڤاڤر ڤندو (HUD)" +msgid "DPI" +msgstr "DPI" #: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "مڠاوبه سايز ايليمن ڤالڠ ڤاڤر ڤندو (hudbar)." +msgid "Damage" +msgstr "بوليه چدرا" #: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "کيش ججاريڠ" +msgid "Debug info toggle key" +msgstr "ککونچي توݢول معلومت ڽهڤڤيجت" #: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "ممبوليهکن ڤڠاݢريݢتن ججاريڠ يڠ دڤوتر دڤکسي Y ايايت (facedir)." +msgid "Debug log file size threshold" +msgstr "" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "لڠه ماس ڤنجاناٴن ججاريڠ بلوک ڤتا" +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "ککونچي ڤرلاهنکن بوڽي" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "ڤچوتن لالاي" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "ڤرماٴينن لالاي" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" +"ڤرماٴينن لالاي يڠ اکن دݢوناکن کتيک منچيڤتا دنيا بارو.\n" +"تتڤن اين اکن دأتسي اڤابيلا ممبوات دنيا دري مينو اوتام." + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "کات لالوان لالاي" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "کأيستيميواٴن لالاي" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default stack size" +msgstr "ساٴيز تيندنن لالاي" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" +"منتعريفکن جارق مکسيموم اونتوق ڤميندهن ڤماٴين دالم اونيت بلوک (0 = تيادا حد)." + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -4057,232 +2839,429 @@ msgstr "" "ڤرلاهن." #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "ساٴيز کيش بلوکڤتا اونتوق ڤنجان ججاريڠ بلوکڤتا دالم اونيت ميݢاباٴيت (MB)" - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" -"ساٴيز کيش بلوکڤتا اونتوق ڤنجان ججاريڠ. مناٴيقکن نيلاي اين\n" -"اکن منيڠکتکن جومله % هيت کيش⹁ مڠورڠکن داتا يڠ ڤرلو دسالين\n" -"درڤد جالور اوتام⹁ لالو مڠورڠکن کترن." - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "ڤتا ميني" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "ممبوليهکن ڤتا ميني." - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "ڤتا ميني بولت" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "بنتوق ڤتا ميني. دبوليهکن = بولت⹁ دلومڤوهکن = ڤيتق." - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "کتيڠݢين ايمبسن ڤتا ميني" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" -"True = 256\n" -"False = 128\n" -"بوليه دݢوناکن اونتوق ملنچرکن ڤتا ميني ڤد ميسين يڠ ڤرلاهن." - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "کابوت برورنا" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" -"بواتکن ورنا کابوت دان لاڠيت برݢنتوڠ کڤد وقتو (فجر\\ماتاهاري) دان اره ڤندڠ." - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "ݢام اوکلوسي سکيتر" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" -"ککواتن (کݢلڤن) ڤمبايڠ نود اوکلوسي-سکيتر.\n" -"لبيه رنده لبيه ݢلڤ⹁ لبيه تيڠݢي لبيه تراڠ. نيلاي يڠ صح\n" -"اونتوق تتڤن اين هاڽله دري 0.25 هيڠݢ 4.0. جيک نيلاي\n" -"دلوار جولت⹁ اي اکن دتتڤکن کڤد نيلاي صح يڠ تردکت." - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "انيماسي ايتم اينۏينتوري" - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "ممبوليهکن انيماسي ايتم دالم اينۏينتوري." - -#: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "مولا کابوت" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "بهاݢين درڤد جارق بوليه ليهت دمان کابوت مولا دجان" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "چچاٴير لݢڤ" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "بواتکن سموا چچاٴير منجادي لݢڤ" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "مود تيکستور جاجرن دنيا" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" -"تيکستور ڤد نود بوليه دجاجرکن سام اد کڤد نود اتاو دنيا.\n" -"مود ڤرتام لبيه سسواي اونتوق بندا ماچم ميسين⹁ ڤرابوت⹁ دان لاٴين٢⹁ ماناکال\n" -"مود کدوا ممبواتکن تڠݢ دان بلوک ميکرو لبيه سسواي دڠن ڤرسکيترنڽ.\n" -"نامون بݢيتو⹁ کران اين چيري بارو⹁ ماک اي موڠکين تيدق دݢوناکن دڤلاين لام⹁\n" -"ڤيليهن اين ممبوليهکن ڤمقساٴن اي اونتوق جنيس نود ترتنتو. امبيل ڤرهاتين\n" -"بهاوا اياڽ داڠݢڤ دالم اوجيکاجي دان موڠکين تيدق برفوڠسي دڠن بتول." - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "مود سکال أوتوماتيک" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" -"تيکستور جاجرن دنيا بوليه دسسوايکن اونتوق منجڠکاو ببراڤ نود.\n" -"نامون بݢيتو⹁ ڤلاين موڠکين تيدق داڤت مڠهنتر سکال يڠ اندا\n" -"ايڠينکن⹁ تراوتاماڽ جيک اندا ݢوناکن ڤيک تيکستور يڠ دريک سچارا\n" -"خصوص⁏ دڠن ڤيليهن اين⹁ کليئن اکن چوبا اونتوق مننتوکن سکال سچارا\n" -"أوتوماتيک برداسرکن سايز تيکستور. جوݢ ليهت texture_min_size.\n" -"امرن: ڤيليهن اين دالم اوجيکاجي!" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "تونجوقکن کوتق ڤميليهن اينتيتي" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "مينو" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "اون دالم مينو" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "ݢوناکن انيماسي اون سباݢاي لاتر بلاکڠ مينو اوتام." - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "سکال GUI" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" -"مڽسوايکن GUI دڠن نيلاي دتنتوکن اوليه ڤڠݢونا.\n" -"ݢوناکن ڤناڤيس انتيألياس جيرن تردکت اونتوق مڽسوايکن GUI.\n" -"اين ممبوليهکن سيسي تاجم دلمبوتکن⹁ دان سباتيکن ڤيکسل اڤابيلا\n" -"مڽسوايتورونکن⹁ نامون اي اکن مڠابورکن سستڠه ڤيکسل دسيسي\n" -"اڤابيلا ايميج دسسوايکن دڠن سايز بوکن اينتيݢر." - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "ڤناڤيس سکال GUI" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" -"اڤابيلا ڤناڤيس سکال GUI ايايتgui_scaling_filter دتتڤکن کڤد \"true\"⹁ سموا\n" -"ايميج GUI ڤرلو دتاڤيس دالم ڤرايسين⹁ تتاڤي سستڠه ايميج دجان سچارا تروس\n" -"کڤرکاکسن (چونتوهڽ⹁ ڤنرجمهن-ک-تيکستور اونتوق نود دالم اينۏينتوري)." - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "ڤناڤيس سکال GUI جنيس txr2img" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" -"اڤابيلا gui_scaling_filter_txr2img دتتڤکن کڤد \"true\"⹁ سالين سمولا کسموا\n" -"ايميج ترسبوت دري ڤرکاکسن کڤرايسين اونتوق دسسوايکن. سکيراڽ دتتڤکن کڤد\n" -"\"false\"⹁ برباليق کڤد قاعده ڤڽسواين يڠ لام⹁ اونتوق ڤماچو ۏيديو يڠ تيدق " -"ممڤو\n" -"مڽوکوڠ دڠن سمڤورنا فوڠسي موات تورون سمولا تيکستور درڤد ڤرکاکسن." - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "لڠه تيڤ التن" +msgid "Delay in sending blocks after building" +msgstr "لڠه ڤڠهنترن بلوک سلڤس ڤمبيناٴن" #: src/settings_translation_file.cpp msgid "Delay showing tooltips, stated in milliseconds." msgstr "جومله لڠه اونتوق منونجوقکن تيڤ التن⹁ دڽاتاکن دالم ميليساٴت." #: src/settings_translation_file.cpp -msgid "Append item name" -msgstr "تمبه نام ايتم" +msgid "Deprecated Lua API handling" +msgstr "" #: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "تمبه نام ايتم کتيڤ التن." +msgid "Depth below which you'll find giant caverns." +msgstr "" #: src/settings_translation_file.cpp -msgid "FreeType fonts" -msgstr "فون FreeType" +msgid "Depth below which you'll find large caves." +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." +"Description of server, to be displayed when players join and in the " +"serverlist." msgstr "" -"منتڤکن سام اد فون FreeType دݢوناکن⹁ ممرلوکن سوکوڠن Freetype\n" -"دکومڤيل برسام. جيک دلومڤوهکن⹁ فون ڤتا بيت دان ۏيکتور XML اکن دݢوناکن." +"ڤريهل ڤلاين ڤرماٴينن⹁ اونتوق دڤاڤرکن اڤابيلا ڤماٴين ماسوق دان جوݢ دالم " +"سناراٴي ڤلاين." + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "مڽهسݢرقکن انيماسي بلوک" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "ککومچي ککانن" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "ڤرتيکل کتيک مڠݢالي" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "ملومڤوهکن انتيتيڤو" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "منولق کات لالوان کوسوڠ" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "نام دوماٴين ڤلاين ڤرماٴينن⹁ اونتوق دڤاڤرکن دالم سناراي ڤلاين ڤرماٴينن." + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "تکن \"لومڤت\" دوا کالي اونتوق تربڠ" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "تکن بوتڠ \"لومڤت\" سچارا چڤت دوا کالي اونتوق منوݢول مود تربڠ." + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "ککونچي جاتوهکن ايتم" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" +"ممبوليهکن سوکوڠن ڤمبواتن مودس Lua دکت کليئن.\n" +"سوکوڠن اين دالم اوجيکاجي دان API بوليه براوبه." + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "ممبوليهکن تتيڠکڤ کونسول" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "ممبوليهکن مود کرياتيف اونتوق ڤتا بارو دچيڤتا." + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "ممبوليهکن کايو بديق" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "ممبوليهکن سوکوڠن سالوران مودس." + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "ممبوليهکن ڤماٴين منريما کچدراٴن دان ماتي." + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "ممبوليهکن اينڤوت ڤڠݢونا سچارا راوق (هاڽ اونتوق ڤرچوباٴن)." + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "بوليهکن ڤڠصحن ڤندفترن" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" +"ممبوليهکن ڤڠصحن ڤندفترن اڤابيلا مڽمبوڠ کڤد ڤلاين.\n" +"جک دلومڤوهکن⹁ اکاٴون بارو اکن ددفترکن سچارا اٴوتوماتيک." + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" +"ممبوليهکن ڤنچهاياٴن لمبوت دڠن اوکلوسي سکيتر يڠ ريڠکس.\n" +"لومڤوهکنڽ اونتوق کلاجوان اتاو اونتوق کليهتن بربيذا." + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" +"بوليهکن تتڤن اونتوق ملارڠ کليئن لام درڤد مڽمبوڠ.\n" +"کليئن لام ماسيه سسواي دݢوناکن جک مريک تيدق رونتوه (کريش) اڤابيلا چوبا اونتوق " +"مڽمبوڠ کڤلاين بهارو⹁\n" +"تتاڤي مريک موڠکين تيدق ممڤو مڽوکوڠ سموا صيفت بهارو يڠ اندا سڠکاکن." + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" +"ممبوليهکن ڤڠݢوناٴن ڤلاين ميديا جارق جاٴوه (جک دبريکن اوليه ڤلاين).\n" +"ڤلاين جارق جاٴوه مناورکن چارا لبيه چڤت اونتوق موات تورون ميديا (چونتوه " +"تيکستور)\n" +"اڤابيلا مڽمبوڠ کڤلاين ڤرماٴينن." + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" +"ممبوليهکن اوبجيک ڤنيمبل بوچو.\n" +"اي ڤاتوت منيڠکتکن ڤريستاسي ݢرافيک دڠن باڽق." + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" +"ڤندارب اونتوق ڤڠاڤوڠن ڤندڠن.\n" +"چونتوهڽ: 0 اونتوق تيادا اڤوڠن⁏ 1.0 اونتوق بياسا⁏ 2.0 اونتوق دوا کالي ݢندا." + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" +"ممبوليهکن\\ملومڤوهکن ڤنجالنن ڤلاين IPv6.\n" +"دأبايکن جک تتڤن bind_address دتتڤکن.\n" +"ممرلوکن تتڤن enable_ipv6 دبوليهکن." + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" +"ممبوليهکن ڤمتاٴن تونا سينماتيک 'Uncharted 2' (انچرتد ثو) اوليه Hable " +"(هيبل).\n" +"مڽلاکوکن لڠکوڠ تونا فيلم فوتوݢرافي دان چارا اي مڠاڠݢرکن ڤنمڤيلن ايميج جارق\n" +"ديناميک تيڠݢي. بيذا جلس ڤرتڠهن جولت دتيڠکتکن سديکيت⹁ تونجولن دان بايڠن\n" +"دممڤتکن سچارا برانسور." + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "ممبوليهکن انيماسي ايتم دالم اينۏينتوري." + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "ممبوليهکن ڤڠاݢريݢتن ججاريڠ يڠ دڤوتر دڤکسي Y ايايت (facedir)." + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "ممبوليهکن ڤتا ميني." + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" +"ممبوليهکن سيستم بوڽي.\n" +"جک دلومڤوهکن⹁ اي اکن ملومڤوهکن کسموا بوڽي دسموا تمڤت\n" +"دان کاولن بوڽي دالم ڤرماٴينن تيدق اکن برفوڠسي.\n" +"ڤڠوبهن تتڤن اين ممرلوکن ڤرمولاٴن سمولا." + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "بيڠکاي ڤر ساٴت (FPS) مکسيما اڤابيلا ڤرماٴينن دجيداکن." + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "FSAA" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "فکتور اڤوڠن کجاتوهن" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "لالوان فون برباليق" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "بايڠ فون برباليق" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "نيلاي الفا بايڠ فون برباليق" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "سايز فون برباليق" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "ککونچي ڤرݢرقن ڤنتس" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "ڤرݢرقن ڤنتس" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" +"برݢرق ڤنتس (دڠن ککونچي \"ايستيميوا\").\n" +"اين ممرلوکن کأيستيميواٴن \"ڤرݢرقن ڤنتس\" دالم ڤلاين ترسبوت." + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "ميدن ڤندڠ" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "ميدن ڤندڠ دالم درجه سودوت." + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" +"فاٴيل دالم لالوان client/serverlist/ يڠ مڠندوڠي سناراي\n" +"ڤلاين کݢمرن يڠ دڤاڤرکن دالم تب ڤماٴين راماي." + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "ڤمتاٴن تونا سينماتيک" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" +"تيکستور يڠ دتاڤيس بوليه سباتيکن نيلاي RGB دڠن جيرن يڠ لوت سينر سڤنوهڽ⹁\n" +"يڠ مان ڤڠاوڤتيموم PNG سريڠ ابايکن⹁ کادڠکال مڽببکن سيسي ݢلڤ اتاو تراڠ ڤد\n" +"تيکستور لوت سينر. ݢونا ڤناڤيسن اين اونتوق ممبرسيهکن تيکستور ترسبوت کتيک\n" +"اي سدڠ دمواتکن." + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "ڤناڤيسن" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "بنيه ڤتا تتڤ" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "کايو بديق ماي تتڤ" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "ککونچي تربڠ" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "تربڠ" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "کابوت" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "مولا کابوت" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "ککونچي توݢول کابوت" #: src/settings_translation_file.cpp msgid "Font bold by default" @@ -4296,22 +3275,10 @@ msgstr "فون ايتاليک سچارا لالايڽ" msgid "Font shadow" msgstr "بايڠ فون" -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" -"اوفسيت بايڠ فون لالاي (دالم اونيت ڤيکسل). جيک 0⹁ ماک بايڠ تيدق اکن دلوکيس." - #: src/settings_translation_file.cpp msgid "Font shadow alpha" msgstr "نيلاي الفا بايڠ فون" -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "کلݢڤن (الفا) بايڠ بلاکڠ فون لالاي⹁ نيلاي انتارا 0 دان 225." - #: src/settings_translation_file.cpp msgid "Font size" msgstr "سايز فون" @@ -4321,91 +3288,2194 @@ msgid "Font size of the default font in point (pt)." msgstr "سايز فون باݢي فون لالاي دالم اونيت تيتيق (pt)." #: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "لالوان فون بياسا" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" -"لالوان فون لالاي.\n" -"جيک تتڤن “freetype” دبوليهکن: اي مستيله فون TrueType.\n" -"جيک تتڤن “freetype” دلومڤوهکن: اي مستيله فون ڤتا بيت اتاو ۏيکتور XML.\n" -"فون برباليق اکن دݢوناکن سکيراڽ فون اين تيدق داڤت دمواتکن." - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "لالوان فون تبل" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "لالوان فون ايتاليک" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "لالوان فون تبل دان ايتاليک" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "سايز فون monospace" +msgid "Font size of the fallback font in point (pt)." +msgstr "سايز فون باݢي فون برباليق دالم اونيت تيتيق (pt)." #: src/settings_translation_file.cpp msgid "Font size of the monospace font in point (pt)." msgstr "سايز فون باݢي فون monospace دالم اونيت تيتيق (pt)." #: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "لالوان فون monospace" +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" +"سايز فون توليسن سيمبڠ بارو٢ اين دان ڤروم دالم اونيت تيتيق (pt).\n" +"نيلاي 0 اکن مڠݢوناکن سايز فون لالاي." #: src/settings_translation_file.cpp msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" msgstr "" -"لالوان فون monospace.\n" -"جيک تتڤن “freetype” دبوليهکن: اي مستيله فون TrueType.\n" -"جيک تتڤن “freetype” دلومڤوهکن: اي مستيله فون ڤتا بيت اتاو ۏيکتور XML.\n" -"فون اين دݢوناکن اونتوق عنصور سڤرتي کونسول دان سکرين ڤمبوکه." +"فورمت ميسيج سيمبڠ ڤماٴين. رينتيتن بريکوت اياله ڤمݢڠ تمڤت يڠ صح:\n" +"@name (اونتوق نام)⹁ @message (اونتوق ميسيج)⹁ @timestamp (ڤيليهن⹁ اونتوق چوڤ " +"ماس)" #: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "لالوان فون monospace تبل" +msgid "Format of screenshots." +msgstr "فورمت يڠ دݢوناکن اونتوق تڠکڤ لاير." + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "ورنا لاتر بلاکڠ لالاي فورمسڤيک" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "کلݢڤن لاتر بلاکڠ لالاي فورمسڤيک" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "ورنا لاتر بلاکڠ سکرين-ڤنوه فورمسڤيک" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "کلݢڤن لاتر بلاکڠ سکرين-ڤنوه فورمسڤيک" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "ورنا لاتر بلاکڠ اصل فورمسڤيک (R,G,B)." + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "کلݢڤن اصل لاتر بلاکڠ فورمسڤيک (انتارا 0 دان 255)." + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "ورنا لاتر بلاکڠ سکرين-ڤنوه فورمسڤيک (R,G,B)." + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "کلݢڤن لاتر بلاکڠ سکرين-ڤنوه فورمسڤيک (انتارا 0 دان 255)." + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "ککونچي کدڤن" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "بهاݢين درڤد جارق بوليه ليهت دمان کابوت مولا دجان" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "فون FreeType" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" +"سجاٴوه ماناکه بلوک٢ دهنتر کڤد کليئن⹁ دڽاتاکن دالم اونيت بلوکڤتا (16 نود)." + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" +"درڤد جارق کليئن داڤت تاهو تنتڠ اوبجيک⹁ دڽاتاکن دالم بلوکڤتا (16 نود).\n" +"\n" +"منتڤکن نيلاي اين لبيه تيڠݢي درڤد جارق بلوک اکتيف (active_block_range) جوݢ\n" +"اکن مڽببکن ڤلاين اونتوق مڠکلکن اوبجيک اکتيف سهيڠݢ کجارق اين\n" +"دالم اره ڤندڠن ڤماٴين. (اين بوليه ايلقکن موب تيبا٢ هيلڠ دري ڤندڠن)" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "سکرين ڤنوه" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "BPP سکرين ڤنوه" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "مود سکرين ڤنوه." + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "سکال GUI" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "ڤناڤيس سکال GUI" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "ڤناڤيس سکال GUI جنيس txr2img" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" +"کچرونن لڠکوڠ چهاي ڤد تاهڤ چهاي مکسيموم.\n" +"مڠاول بيذا جلس تاهڤ چهاي ترتيڠݢي." + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" +"کچرونن لڠکوڠ چهاي ڤد تاهڤ چهاي مينيموم.\n" +"مڠاول بيذا جلس تاهڤ چهاي ترنده." + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "ݢرافيک" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "فکتور سکالا ڤاڤر ڤندو (HUD)" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "ککونچي منوݢول ڤاڤر ڤندو (HUD)" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "کومڤونن تيڠݢي سايز تتيڠکڤ اول." + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "لامن اوتام ڤلاين ڤرماٴينن⹁ اونتوق دڤاڤرکن دالم سناراي ڤلاين ڤرماٴينن." + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" +"ڤچوتن منداتر دأودارا اڤابيلا ملومڤت اتاو جاتوه⹁\n" +"دالم اونيت نود ڤر ساٴت ڤر ساٴت." + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" +"ڤچوتن منداتر دان منݢق اتس تانه اتاو کتيک ممنجت⹁\n" +"دالم اونيت نود ڤر ساٴت ڤر ساٴت." + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "ککونچي ايتم ستروسڽ دالم هوتبر" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "ککونچي ايتم سبلومڽ دالم هوتبر" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "ککونچي سلوت هوتبر 1" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "ککونچي سلوت هوتبر 10" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "ککونچي سلوت هوتبر 11" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "ککونچي سلوت هوتبر 12" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "ککونچي سلوت هوتبر 13" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "ککونچي سلوت هوتبر 14" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "ککونچي سلوت هوتبر 15" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "ککونچي سلوت هوتبر 16" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "ککونچي سلوت هوتبر 17" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "ککونچي سلوت هوتبر 18" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "ککونچي سلوت هوتبر 19" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "ککونچي سلوت هوتبر 2" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "ککونچي سلوت هوتبر 20" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "ککونچي سلوت هوتبر 21" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "ککونچي سلوت هوتبر 22" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "ککونچي سلوت هوتبر 23" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "ککونچي سلوت هوتبر 24" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "ککونچي سلوت هوتبر 25" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "ککونچي سلوت هوتبر 26" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "ککونچي سلوت هوتبر 27" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "ککونچي سلوت هوتبر 28" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "ککونچي سلوت هوتبر 29" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "ککونچي سلوت هوتبر 3" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "ککونچي سلوت هوتبر 30" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "ککونچي سلوت هوتبر 31" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "ککونچي سلوت هوتبر 32" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "ککونچي سلوت هوتبر 4" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "ککونچي سلوت هوتبر 5" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "ککونچي سلوت هوتبر 6" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "ککونچي سلوت هوتبر 7" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "ککونچي سلوت هوتبر 8" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "ککونچي سلوت هوتبر 9" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" +"سچڤت مان ݢلورا چچاٴير اکن برݢرق. نيلاي تيڠݢي = لبيه لاجو.\n" +"جيک نيلاي نيݢاتيف⹁ ݢلورا چچاٴير اکن برݢرق کبلاکڠ.\n" +"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن." + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "ڤلاين IPv6" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" +"جيک بيڠکاي ڤر ساٴت (FPS) اکن ناٴيق لبيه تيڠݢي درڤد نيلاي اين⹁\n" +"حدکن اي دڠن تيدورکنڽ سوڤايا تيدق بازيرکن کواسا CPU دڠن سيا٢." + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." +msgstr "" +"جيک دلومڤوهکن⹁ ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق تربڠ لاجو\n" +"سکيراڽ کدوا-دوا مود تربڠ دان مود ڤرݢرقن ڤنتس دبوليهکن." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" +"جيک دبوليهکن برسام مود تربڠ⹁ ڤماٴين بوليه تربڠ منروسي نود ڤڤجل.\n" +"اين ممرلوکن کأيستيميواٴن \"تمبوس بلوک\" دالم ڤلاين ترسبوت." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" +"جيک دبوليهکن⹁ ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق ڤنجت کباوه دان\n" +"تورون دالم مود تربڠ⹁ مڠݢنتيکن ککونچي \"سلينڤ\"." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" +"جک دبوليهکن⹁ سموا تيندقن اکن دراکم اونتوق ݢولوڠ باليق.\n" +"ڤيليهن اين هاڽ دباچ کتيک ڤلاين برمولا." + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "جک دبوليهکن⹁ اي اکن ملومڤوهکن ڤنچݢهن ڤنيڤوان دالم ڤماٴين راماي." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" +"جيک دبوليهکن⹁ اي ممبواتکن اره ڤرݢرقن ريلاتيف دڠن ڤيچ ڤماٴين اڤابيلا تربڠ " +"اتاو برنڠ." + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "جک دبوليهکن⹁ ڤماٴين٢ بارو تيدق بوليه ماسوق دڠن کات لالوان يڠ کوسوڠ." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" +"جيک دبوليهکن⹁ اندا بوليه ملتق بلوک دکدودوقن برديري (کاکي + ارس مات).\n" +"اين ساڠت برݢونا اڤابيلا بکرجا دڠن کوتق نود دکاوسن يڠ کچيل." + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" +"جک تتڤن اين دتتڤکن⹁ ڤماٴين اکن سنتياسا دلاهيرکن (سمولا) دکت کدودوقن يڠ " +"دبريکن." + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "دالم ڤرماٴينن" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" +"نيلاي الفا لاتر بلاکڠ کونسول سيمبڠ دالم ڤرماٴينن (کلݢڤن⹁ انتارا 0 دان 255)." + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "ورنا لاتر بلاکڠ کونسول سيمبڠ دالم ڤرماٴينن (R,G,B)." + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" +"نيلاي کتيڠݢين کونسول سيمبڠ دالم ڤرماٴينن⹁ انتارا 0.1 (10%) دان 1.0 (100%)." + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "ککونچي کواتکن بوڽي" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" +"سلڠ ماس دأنتارا ڤڽيمڤنن ڤروبهن ڤنتيڠ دالم دنيا⹁ دڽاتاکن دالم اونيت ساٴت." + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "سلڠ دأنتارا ڤڠهنترن معلومت ماس ڤلاين کڤد کليئن." + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "انيماسي ايتم اينۏينتوري" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "ککونچي اينۏينتوري" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "تتيکوس سوڠسڠ" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "مڽوڠسڠکن ڤرݢرقن تتيکوس منݢق." + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "لالوان فون ايتاليک" #: src/settings_translation_file.cpp msgid "Italic monospace font path" msgstr "لالوان فون monospace ايتاليک" #: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "لالوان فون monospace تبل دان ايتاليک" +msgid "Item entity TTL" +msgstr "TTL اينتيتي ايتم" #: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "سايز فون برباليق" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "سايز فون باݢي فون برباليق دالم اونيت تيتيق (pt)." - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "بايڠ فون برباليق" +msgid "Iterations" +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" -"اوفسيت بايڠ فون برباليق (دالم اونيت ڤيکسل). جيک 0⹁ ماک بايڠ تيدق اکن دلوکيس." #: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "نيلاي الفا بايڠ فون برباليق" +msgid "Joystick ID" +msgstr "ID کايو بديق" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "سلڠ ماس ڤڠاولڠن بوتڠ کايو بديق" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "جنيس کايو بديق" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "کڤيکاٴن فروستوم کايو بديق" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "جنيس کايو بديق" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "ککونچي لومڤت" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مڠورڠکن جارق ڤندڠ.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق ممڤرلاهنکن بوڽي.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق ملومڤت.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منجاتوهکن ايتم يڠ سدڠ دڤيليه.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منمبه جارق ڤندڠ.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مڠواتکن بوڽي.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق ملومڤت.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق برݢرق ڤنتس دالم مود ڤرݢرقن ڤنتس.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مڠݢرقکن ڤماٴين کبلاکڠ.\n" +"جوݢ اکن ملومڤوهکن أوتوڤرݢرقن⹁ اڤابيلا اکتيف.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مڠݢرقکن ڤماٴين کدڤن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مڠݢرقکن ڤماٴين ککيري.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مڠݢرقکن ڤماٴين ککانن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق ممبيسوکن ڤرماٴينن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ اونتوق مناٴيڤ ارهن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ اونتوق مناٴيڤ ارهن تمڤتن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق ممبوک اينۏينتوري.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق ملومڤت.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-11 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-12 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-13 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-14 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-15 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-16 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-17 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-18 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-19 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-20 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-21 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-22 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-23 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-24 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-25 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-26 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-27 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-28 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-29 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-30 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-31 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-32 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-8 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-5 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ڤرتام دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-4 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه ايتم ستروسڽ ددالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-9 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه بارڠ سبلومڽ دهوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-2 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-7 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-6 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-10 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مميليه سلوت ک-3 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مڽلينڤ.\n" +"جوݢ دݢوناکن اونتوق تورون باواه کتيک ممنجت دان دالم اٴير جيک تتڤن " +"aux1_descends دلومڤوهکن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق برتوکر انتارا کاميرا اورڠ ڤرتام دان کتيݢ.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منڠکڤ ݢمبر لاير.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول أوتوڤرݢرقن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول مود سينماتيک.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن ڤتا ميني.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤنتس.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول مود تربڠ.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول مود تمبوس بلوک.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤيچ.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول ڤڠمسکينين کاميرا. هاڽ دݢوناکن اونتوق ڤمباڠونن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن سيمبڠ.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن معلومت ڽهڤڤيجت.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن کابوت.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول ڤاڤر ڤندو (HUD).\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن کونسول سيمبڠ بسر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول ڤمبوکه. دݢوناکن اونتوق ڤمباڠونن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق منوݢول جارق ڤندڠن تيادا حد.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ککونچي اونتوق مڠݢوناکن ڤندڠن زوم اڤابيلا دبنرکن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "تندڠ ڤماٴين يڠ مڠهنتر ميسيج لبيه درڤد X ستياڤ 10 ساٴت." + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "ککونچي کونسول سيمبڠ بسر" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "ݢاي داٴون" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" +"ݢاي داٴون:\n" +"- براݢم: سموا سيسي کليهتن\n" +"- ريڠکس: هاڽ سيسي لوار کليهتن⹁ جيک special_tiles يڠ دتنتوکن دݢوناکن\n" +"- لݢڤ: ملومڤوهکن لوت سينر" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "ککونچي ککيري" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" +"ڤنجڠ ݢلورا چچاٴير.\n" +"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن." + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost" +msgstr "تولقن لڠکوڠ چهاي" + +#: src/settings_translation_file.cpp +msgid "Light curve boost center" +msgstr "تيتيق تڠه تولقن لڠکوڠ چهاي" + +#: src/settings_translation_file.cpp +msgid "Light curve boost spread" +msgstr "سيبرن تولقن لڠکوڠ چهاي" + +#: src/settings_translation_file.cpp +msgid "Light curve gamma" +msgstr "ݢام لڠکوڠ چهاي" + +#: src/settings_translation_file.cpp +msgid "Light curve high gradient" +msgstr "کچرونن تيڠݢي لڠکوڠ چهاي" + +#: src/settings_translation_file.cpp +msgid "Light curve low gradient" +msgstr "کچرونن رنده لڠکوڠ چهاي" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" +"بواتکن ورنا کابوت دان لاڠيت برݢنتوڠ کڤد وقتو (فجر\\ماتاهاري) دان اره ڤندڠ." + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "بواتکن سموا چچاٴير منجادي لݢڤ" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "ديريکتوري ڤتا" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "سلڠ ماس ڤڽيمڤنن ڤتا" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "حد بلوک ڤتا" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "لڠه ماس ڤنجاناٴن ججاريڠ بلوک ڤتا" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" +"ساٴيز کيش بلوکڤتا اونتوق ڤنجان ججاريڠ بلوکڤتا دالم اونيت ميݢاباٴيت (MB)" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "حد ماس ڽهموات بلوک ڤتا" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "جارق مکسيموم ڤڠهنترن بلوک" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "بيڠکيسن مکسيما ستياڤ للرن" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "FPS مکسيما" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "بيڠکاي ڤر ساٴت (FPS) مکسيما اڤابيلا ڤرماٴينن دجيداکن." + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "جومله مکسيموم بلوک يڠ دڤقسا موات" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "ليبر هوتبر مکسيما" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" +"جومله بلوک مکسيموم يڠ دهنتر سرنتق ڤر کليئن.\n" +"جومله مکسيموم دکيرا سچارا ديناميک:\n" +"جومله_مکس = بولت_ناٴيق((#کليئن + ڤڠݢونا_مکس) * ڤر_کليئن \\ 4 )" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "جومله مکسيموم بلوکڤتا يڠ دڤقسا موات." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" +"جومله بلوک ڤتا مکسيموم يڠ کليئن بوليه سيمڤن دالم ميموري.\n" +"تتڤکن کڤد -1 اونتوق جومله تنڤ حد." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" +"جومله مکسيما بيڠکيسن يڠ دهنتر ڤد ستياڤ لڠکه ڤڠهنترن⹁\n" +"جک اندا ممڤوڽاٴي سمبوڠن يڠ ڤرلاهن ماک چوبا کورڠکنڽ⹁\n" +"نامون جاڠن کورڠکن کڤد نيلاي دباوه ݢندا دوا جومله کليئن ساسرن." + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "حد جومله ڤماٴين مکسيموم يڠ بوليه مڽمبوڠ سرنتق." + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "جومله مکسيموم ميسيج سيمبڠ تربارو اونتوق دتونجوقکن" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" +"ڤرکادرن مکسيما اونتوق تتيڠکڤ سماس يڠ دݢوناکن اونتوق هوتبر.\n" +"برݢونا جيک اد سسواتو يڠ اکن دڤاڤرکن دسبله کانن اتاو کيري هوتبر." + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "جومله بلوک مکسيموم يڠ دهنتر سرنتق کڤد ستياڤ کليئن" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "ساٴيز مکسيموم باريس ݢيلير کلوار سيمبڠ" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" +"ساٴيز مکسيموم باريس ݢيلير کلوار سيمبڠ.\n" +"0 اونتوق لومڤوهکن باريس ݢيلير دان -1 اونتوق بواتکن ساٴيز باريس ݢيلير تيادا " +"حد." + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "حد جومله ڤڠݢونا" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "مينو" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "کيش ججاريڠ" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "ميسيج هاري اين" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "ميسيج هاري اين يڠ اکن دڤاڤرکن کڤد ڤماٴين يڠ مڽمبوڠ." + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "قاعده يڠ دݢوناکن اونتوق منونجولکن اوبجيک دڤيليه." + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "ڤتا ميني" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "ککونچي ڤتا ميني" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "کتيڠݢين ايمبسن ڤتا ميني" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "سايز تيکستور مينيموم" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "ڤمتاٴن ميڤ" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "سالوران مودس" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "مڠاوبه سايز ايليمن ڤالڠ ڤاڤر ڤندو (hudbar)." + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "لالوان فون monospace" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "سايز فون monospace" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "کڤيکاٴن تتيکوس" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "ڤندارب کڤيکاٴن تتيکوس." + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" +"ڤندارب اونتوق اڤوڠن تيمبول تڠݢلم.\n" +"چونتوهڽ: 0 اونتوق تيادا اڤوڠن⁏ 1.0 اونتوق بياسا⁏ 2.0 اونتوق دوا کالي ݢندا." + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "ککونچي بيسو" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "بيسوکن بوڽي" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" +"نام ڤلاين ڤرماٴينن⹁ اونتوق دڤاڤرکن اڤابيلا ڤماٴين ماسوق دان جوݢ دالم سناراي " +"ڤلاين." + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "دکت ساته" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "رڠکاين" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" +"ڤورت رڠکاين اونتوق دڠر (UDP).\n" +"نيلاي اين اکن دأتسي اڤابيلا ممولاکن ڤلاين دري مينو اوتام." + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "ڤڠݢونا بارو مستي مماسوقکن کات لالوان اين." + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "تمبوس بلوک" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "ککونچي تمبوس بلوک" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "تونجولن نود" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "چچاٴير لݢڤ" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "کلݢڤن (الفا) بايڠ بلاکڠ فون لالاي⹁ نيلاي انتارا 0 دان 225." #: src/settings_translation_file.cpp msgid "" @@ -4413,8 +5483,13 @@ msgid "" msgstr "کلݢڤن (الفا) بايڠ بلاکڠ فون برباليق⹁ نيلاي انتارا 0 دان 225." #: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "لالوان فون برباليق" +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" +"بوک مينو جيدا اڤابيلا فوکوس تتيڠکڤ هيلڠ.\n" +"تيدق جيدا جيک فورمسڤيک دبوک." #: src/settings_translation_file.cpp msgid "" @@ -4429,22 +5504,6 @@ msgstr "" "جيک تتڤن “freetype” دلومڤوهکن: اي مستيله فون ڤتا بيت اتاو ۏيکتور XML.\n" "فون اين اکن دݢوناکن باݢي سستڠه بهاس اتاو جيک فون لالاي تيدق ترسديا." -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "سايز فون سيمبڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" -"سايز فون توليسن سيمبڠ بارو٢ اين دان ڤروم دالم اونيت تيتيق (pt).\n" -"نيلاي 0 اکن مڠݢوناکن سايز فون لالاي." - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "فولدر تڠکڤ لاير" - #: src/settings_translation_file.cpp msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" @@ -4454,121 +5513,94 @@ msgstr "" "فولدر اکن دچيڤتا سکيراڽ اي بلوم وجود." #: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "فورمت تڠکڤ لاير" +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" +"لالوان کديريکتوري ڤمبايڠ. جيک تيادا لالوان دتعريفکن⹁ لوکاسي لالاي اکن " +"دݢوناکن." #: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "فورمت يڠ دݢوناکن اونتوق تڠکڤ لاير." - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "کواليتي تڠکڤ لاير" +msgid "Path to texture directory. All textures are first searched from here." +msgstr "لالوان کديريکتوري تيکستور. سموا تيکستور دچاري دري سيني داهولو." #: src/settings_translation_file.cpp msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." msgstr "" -"کواليتي تڠکڤ لاير. هاڽ دݢوناکن اونتوق فورمت JPEG.\n" -"1 مقصودڽ ڤاليڠ تروق⁏ 100 مقصودڽ ڤاليڠ باݢوس.\n" -"ݢوناکن 0 اونتوق کواليتي لالاي." - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "DPI" +"لالوان فون لالاي.\n" +"جيک تتڤن “freetype” دبوليهکن: اي مستيله فون TrueType.\n" +"جيک تتڤن “freetype” دلومڤوهکن: اي مستيله فون ڤتا بيت اتاو ۏيکتور XML.\n" +"فون برباليق اکن دݢوناکن سکيراڽ فون اين تيدق داڤت دمواتکن." #: src/settings_translation_file.cpp msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." msgstr "" -"لارسکن کونفيݢوراسي DPI کسکرين اندا (بوکن X11/Android سهاج) چونتوه اونتوق " -"سکرين 4K." +"لالوان فون monospace.\n" +"جيک تتڤن “freetype” دبوليهکن: اي مستيله فون TrueType.\n" +"جيک تتڤن “freetype” دلومڤوهکن: اي مستيله فون ڤتا بيت اتاو ۏيکتور XML.\n" +"فون اين دݢوناکن اونتوق عنصور سڤرتي کونسول دان سکرين ڤمبوکه." #: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "ممبوليهکن تتيڠکڤ کونسول" +msgid "Pause on lost window focus" +msgstr "جيدا کتيک هيلڠ فوکوس تتيڠکڤ" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "ايکوت فيزيک" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "ککونچي ڤرݢرقن ڤيچ" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "مود ڤرݢرقن ڤيچ" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "ککونچي تربڠ" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "سلڠ ڤڠاولڠن کليک کانن" #: src/settings_translation_file.cpp msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." msgstr "" -"سيستم Windows سهاج: مولاکن Minetest دڠن تتيڠکڤ ݢاريس ڤرينة دکت لاتر بلاکڠ.\n" -"مڠندوڠي معلومت يڠ سام سڤرتي فاٴيل debug.txt (نام لالاي)." +"ڤماٴين بوليه تربڠ تنڤ ترکسن دڠن ݢراۏيتي.\n" +"اين ممرلوکن کأيستيميواٴن \"تربڠ\" دالم ڤلاين ترسبوت." #: src/settings_translation_file.cpp -msgid "Sound" -msgstr "بوڽي" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." +msgid "Player name" msgstr "" -"ممبوليهکن سيستم بوڽي.\n" -"جک دلومڤوهکن⹁ اي اکن ملومڤوهکن کسموا بوڽي دسموا تمڤت\n" -"دان کاولن بوڽي دالم ڤرماٴينن تيدق اکن برفوڠسي.\n" -"ڤڠوبهن تتڤن اين ممرلوکن ڤرمولاٴن سمولا." #: src/settings_translation_file.cpp -msgid "Volume" -msgstr "کقواتن بوڽي" +msgid "Player transfer distance" +msgstr "جارق وميندهن ڤماٴين" #: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" -"کقواتن سموا بوڽي.\n" -"ممرلوکن سيستم بوڽي دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "بيسوکن بوڽي" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" -"سام اد ايڠين ممبيسوکن بوڽي. اندا بوليه مڽهبيسو ڤد بيلا٢\n" -"ماس⹁ ملاٴينکن سيستم بوڽي دلومڤوهکن (enable_sound=false).\n" -"دالم ڤرماٴينن⹁ اندا بوليه منوݢول کأداٴن بيسو مڠݢوناکن ککونچي\n" -"بيسو اتاو مڠݢوناکن مينو جيدا." - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "کليئن" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "رڠکاين" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "علامت ڤلاين" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" -"علامت اونتوق مڽمبوڠ.\n" -"بيار کوسوڠ اونتوق ممولاکن ڤلاين ڤرماٴينن تمڤتن.\n" -"امبيل ڤرهاتيان بهاوا ميدن علامت دالم مينو اوتام مڠاتسي تتڤن اين." - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "ڤورت جارق جاٴوه" +msgid "Player versus player" +msgstr "ڤماٴين لاون ڤماٴين" #: src/settings_translation_file.cpp msgid "" @@ -4578,6 +5610,42 @@ msgstr "" "ڤورت اونتوق مڽمبوڠ (UDP).\n" "امبيل ڤرهاتيان بهاوا ميدن ڤورت دالم مينو اوتام مڠاتسي تتڤن اين." +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" +"منچݢه ݢالي دان ڤلتقن درڤد براولڠ کتيک تروس منکن بوتڠ تتيکوس.\n" +"بوليهکن تتڤن اين اڤابيلا اندا ݢالي اتاو لتق سچارا تيدق سڠاج ترلالو کرڤ." + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" +"کأيستيميواٴن٢ يڠ بوليه دبريکن اوليه ڤماين يڠ ممڤوڽاٴي کأيستيميواٴن " +"basic_privs" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "ککونچي توݢول ڤمبوکه" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + #: src/settings_translation_file.cpp msgid "Prometheus listener address" msgstr "علامت ڤندڠر Prometheus" @@ -4595,171 +5663,45 @@ msgstr "" "ميتريک بوليه دأمبيل د http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "سيمڤن ڤتا دتريما دري ڤلاين ڤرماٴينن" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "سيمڤن ڤتا يڠ دتريما اوليه کليئن دالم چکرا." - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "سمبوڠ کڤلاين ميديا لوارن" +msgid "Proportion of large caves that contain liquid." +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." msgstr "" -"ممبوليهکن ڤڠݢوناٴن ڤلاين ميديا جارق جاٴوه (جک دبريکن اوليه ڤلاين).\n" -"ڤلاين جارق جاٴوه مناورکن چارا لبيه چڤت اونتوق موات تورون ميديا (چونتوه " -"تيکستور)\n" -"اڤابيلا مڽمبوڠ کڤلاين ڤرماٴينن." +"ججاري کلواسن اون دڽاتاکن دالم جومله 64 نود ڤيتق اون.\n" +"نيلاي لبيه دري 26 اکن مولا مڠهاسيلکن ڤموتوڠن تاجم دسودوت کاوسن اون." #: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "مودس کليئن" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." +msgid "Raises terrain to make valleys around the rivers." msgstr "" -"ممبوليهکن سوکوڠن ڤمبواتن مودس Lua دکت کليئن.\n" -"سوکوڠن اين دالم اوجيکاجي دان API بوليه براوبه." #: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "URL سناراي ڤلاين" +msgid "Random input" +msgstr "اينڤوت راوق" #: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "URL کڤد سناراي ڤلاين يڠ دڤاڤرکن دالم تب ڤرماٴينن راماي." +msgid "Range select key" +msgstr "ککونچي جارق ڤميليهن" #: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "فاٴيل سناراي ڤلاين" +msgid "Recent Chat Messages" +msgstr "ميسيج سيمبڠ ترکيني" #: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" -"فاٴيل دالم لالوان client/serverlist/ يڠ مڠندوڠي سناراي\n" -"ڤلاين کݢمرن يڠ دڤاڤرکن دالم تب ڤماٴين راماي." +msgid "Regular font path" +msgstr "لالوان فون بياسا" #: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "ساٴيز مکسيموم باريس ݢيلير کلوار سيمبڠ" +msgid "Remote media" +msgstr "ميديا جارق جاٴوه" #: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" -"ساٴيز مکسيموم باريس ݢيلير کلوار سيمبڠ.\n" -"0 اونتوق لومڤوهکن باريس ݢيلير دان -1 اونتوق بواتکن ساٴيز باريس ݢيلير تيادا " -"حد." - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "بوليهکن ڤڠصحن ڤندفترن" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" -"ممبوليهکن ڤڠصحن ڤندفترن اڤابيلا مڽمبوڠ کڤد ڤلاين.\n" -"جک دلومڤوهکن⹁ اکاٴون بارو اکن ددفترکن سچارا اٴوتوماتيک." - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "حد ماس ڽهموات بلوک ڤتا" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "حد ماس اونتوق کليئن ممبواڠ ڤتا يڠ تيدق دݢوناکن دري ميموري." - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "حد بلوک ڤتا" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" -"جومله بلوک ڤتا مکسيموم يڠ کليئن بوليه سيمڤن دالم ميموري.\n" -"تتڤکن کڤد -1 اونتوق جومله تنڤ حد." - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "تونجوقکن معلومت ڽهڤڤيجت" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" -"تتڤکن سام اد هندق منونجوقکن معلومت ڽهڤڤيجت (کسنڽ سام سڤرتي منکن بوتڠ F5)." - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "ڤلاين ڤرماٴينن \\ ڤماٴين ڤرسأورڠن" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "نام ڤلاين ڤرماٴينن" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" -"نام ڤلاين ڤرماٴينن⹁ اونتوق دڤاڤرکن اڤابيلا ڤماٴين ماسوق دان جوݢ دالم سناراي " -"ڤلاين." - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "ڤريهل ڤلاين ڤرماٴينن" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" -"ڤريهل ڤلاين ڤرماٴينن⹁ اونتوق دڤاڤرکن اڤابيلا ڤماٴين ماسوق دان جوݢ دالم " -"سناراٴي ڤلاين." - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "نام دوماٴين ڤلاين ڤرماٴينن⹁ اونتوق دڤاڤرکن دالم سناراي ڤلاين ڤرماٴينن." - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "URL ڤلاين" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "لامن اوتام ڤلاين ڤرماٴينن⹁ اونتوق دڤاڤرکن دالم سناراي ڤلاين ڤرماٴينن." - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "عمومکن ڤلاين" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "ملاڤورکن کڤد سناراي ڤلاين سچارا اٴوتوماتيک." - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "عمومکن کسناراي ڤلاين اين." - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "بواڠ کود ورنا" +msgid "Remote port" +msgstr "ڤورت جارق جاٴوه" #: src/settings_translation_file.cpp msgid "" @@ -4770,748 +5712,11 @@ msgstr "" "ݢوناکن اين اونتوق هنتيکن ڤماٴين درڤد مڠݢوناکن ورنا دالم ميسيج مريک" #: src/settings_translation_file.cpp -msgid "Server port" -msgstr "ڤورت ڤلاين" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" -"ڤورت رڠکاين اونتوق دڠر (UDP).\n" -"نيلاي اين اکن دأتسي اڤابيلا ممولاکن ڤلاين دري مينو اوتام." - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "علامت ايکتن" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "انتاراموک رڠکاين يڠ ڤلاين دڠر." - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "ڤمريقساٴن ڤروتوکول کتت" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" -"بوليهکن تتڤن اونتوق ملارڠ کليئن لام درڤد مڽمبوڠ.\n" -"کليئن لام ماسيه سسواي دݢوناکن جک مريک تيدق رونتوه (کريش) اڤابيلا چوبا اونتوق " -"مڽمبوڠ کڤلاين بهارو⹁\n" -"تتاڤي مريک موڠکين تيدق ممڤو مڽوکوڠ سموا صيفت بهارو يڠ اندا سڠکاکن." - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "ميديا جارق جاٴوه" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" -"منتڤکن URL دري مان کليئن مڠمبيل ميديا⹁ مڠݢنتيکن UDP.\n" -"$filename مستيله بوليه دأکسيس درڤد $remote_media$filename ملالوٴي\n" -"cURL (سوده تنتو⹁ remote_media مستي براخير دڠن تندا چوندوڠ).\n" -"فاٴيل يڠ تيدق وجود اکن دأمبيل دڠن چارا بياسا." - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "ڤلاين IPv6" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" -"ممبوليهکن\\ملومڤوهکن ڤنجالنن ڤلاين IPv6.\n" -"دأبايکن جک تتڤن bind_address دتتڤکن.\n" -"ممرلوکن تتڤن enable_ipv6 دبوليهکن." - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "جومله بلوک مکسيموم يڠ دهنتر سرنتق کڤد ستياڤ کليئن" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" -"جومله بلوک مکسيموم يڠ دهنتر سرنتق ڤر کليئن.\n" -"جومله مکسيموم دکيرا سچارا ديناميک:\n" -"جومله_مکس = بولت_ناٴيق((#کليئن + ڤڠݢونا_مکس) * ڤر_کليئن \\ 4 )" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "لڠه ڤڠهنترن بلوک سلڤس ڤمبيناٴن" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" -"اونتوق مڠورڠکن لمبڤڽ تيندق بالس⹁ ڤميندهن بلوک دڤرلاهنکن اڤابيلا ڤماٴين " -"ممبينا سسوات.\n" -"تتڤن اين منتڤکن براڤ لام اياڽ دڤرلاهنکن ستله ملتقکن اتاٴو مڠاليهکن سسبواه " -"نود." - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "بيڠکيسن مکسيما ستياڤ للرن" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" -"جومله مکسيما بيڠکيسن يڠ دهنتر ڤد ستياڤ لڠکه ڤڠهنترن⹁\n" -"جک اندا ممڤوڽاٴي سمبوڠن يڠ ڤرلاهن ماک چوبا کورڠکنڽ⹁\n" -"نامون جاڠن کورڠکن کڤد نيلاي دباوه ݢندا دوا جومله کليئن ساسرن." - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "ڤرماٴينن لالاي" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" -"ڤرماٴينن لالاي يڠ اکن دݢوناکن کتيک منچيڤتا دنيا بارو.\n" -"تتڤن اين اکن دأتسي اڤابيلا ممبوات دنيا دري مينو اوتام." - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "ميسيج هاري اين" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "ميسيج هاري اين يڠ اکن دڤاڤرکن کڤد ڤماٴين يڠ مڽمبوڠ." - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "حد جومله ڤڠݢونا" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "حد جومله ڤماٴين مکسيموم يڠ بوليه مڽمبوڠ سرنتق." - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "ديريکتوري ڤتا" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" -"ديريکتوري دنيا (سموا بندا دالم دنيا دسيمڤن دسيني).\n" -"تيدق دڤرلوکن جک برمولا دري مينو اوتام." - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "TTL اينتيتي ايتم" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" -"ماس اونتوق اينتيتي ايتم (ايتم يڠ دجاتوهکن) تروس هيدوڤ دالم اونيت ساٴت.\n" -"تتڤکن کڤد -1 اونتوق ملومڤوهکن صيفت ترسبوت." - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "ساٴيز تيندنن لالاي" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" -"منتڤکن ساٴيز تيندنن لالاي باݢي نود⹁ ايتم دان التن.\n" -"امبيل ڤرهاتيان بهاوا مودس اتاو ڤرماٴينن بوليه تتڤکن سچارا خصوص تيندنن اونتوق " -"سستڠه (اتاو سموا) ايتم." - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "بوليه چدرا" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "ممبوليهکن ڤماٴين منريما کچدراٴن دان ماتي." - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "کرياتيف" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "ممبوليهکن مود کرياتيف اونتوق ڤتا بارو دچيڤتا." - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "بنيه ڤتا تتڤ" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" -"بنيه ڤتا يڠ دڤيليه اونتوق ڤتا بارو⹁ بيارکن کوسوڠ اونتوق بنيه راوق.\n" -"تيدق دݢوناڤاکاي سکيراڽ منچيڤتا دنيا بارو ملالوٴي مينو اوتام." - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "کات لالوان لالاي" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "ڤڠݢونا بارو مستي مماسوقکن کات لالوان اين." - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "کأيستيميواٴن لالاي" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" -"کأيستيميواٴن يڠ ڤڠݢونا٢ بارو داڤت سچارا اٴوتوماتيک.\n" -"ليهت /privs دالم ڤرماٴينن اونتوق سناراي ڤنوه کأيستيميواٴن ڤلاين دان " -"کونفيݢوراسي مودس." - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "کأيستيميواٴن اساس" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" -"کأيستيميواٴن٢ يڠ بوليه دبريکن اوليه ڤماين يڠ ممڤوڽاٴي کأيستيميواٴن " -"basic_privs" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "جارق ڤميندهن ڤماٴين تنڤ حد" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" -"تتڤکن سام اد ڤماٴين دتونجوقکن کڤد کليئن تنڤا حد جارق.\n" -"تتڤن اين ترکچم⹁ ݢوناکن تتڤن player_transfer_distance سباݢاي ݢنتي." - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "جارق وميندهن ڤماٴين" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" -"منتعريفکن جارق مکسيموم اونتوق ڤميندهن ڤماٴين دالم اونيت بلوک (0 = تيادا حد)." - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "ڤماٴين لاون ڤماٴين" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" -"منتڤکن سام اد ايڠين ممبنرکن ڤماٴين اونتوق منچدراکن دان ممبونوه ساتو سام " -"لاٴين." - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "سالوران مودس" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "ممبوليهکن سوکوڠن سالوران مودس." - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "تيتيق لاهير ستاتيک" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" -"جک تتڤن اين دتتڤکن⹁ ڤماٴين اکن سنتياسا دلاهيرکن (سمولا) دکت کدودوقن يڠ " -"دبريکن." - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "منولق کات لالوان کوسوڠ" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "جک دبوليهکن⹁ ڤماٴين٢ بارو تيدق بوليه ماسوق دڠن کات لالوان يڠ کوسوڠ." - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "ملومڤوهکن انتيتيڤو" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "جک دبوليهکن⹁ اي اکن ملومڤوهکن ڤنچݢهن ڤنيڤوان دالم ڤماٴين راماي." - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "راکمن ݢولوڠ باليق" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" -"جک دبوليهکن⹁ سموا تيندقن اکن دراکم اونتوق ݢولوڠ باليق.\n" -"ڤيليهن اين هاڽ دباچ کتيک ڤلاين برمولا." - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "فورمت ميسيج سيمبڠ" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" -"فورمت ميسيج سيمبڠ ڤماٴين. رينتيتن بريکوت اياله ڤمݢڠ تمڤت يڠ صح:\n" -"@name (اونتوق نام)⹁ @message (اونتوق ميسيج)⹁ @timestamp (ڤيليهن⹁ اونتوق چوڤ " -"ماس)" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "ميسيج ڤنوتوڤن" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "ميسيج يڠ اکن دڤاڤرکن دکت سموا کليئن اڤابيلا ڤلاين دتوتوڤ." - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "ميسيج کرونتوهن" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "ميسيج يڠ اکن دڤاڤرکن کڤد سموا کليئن اڤابيلا ڤلاين رونتوه." - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "مينتا سمبوڠ سمولا سلڤس کرونتوهن" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" -"تتڤن سام اد اونتوق ممينتا مڽمبوڠ سمولا سلڤس برلاکوڽ کرونتوهن (Lua).\n" -"تتڤکن کڤد \"true\" جک ڤلاين اندا دتتڤکن اونتوق مولا سمولا سچارا اٴوتوماتيک." - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "جارق ڤڠهنترن اوبجيک اکتيف" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" -"درڤد جارق کليئن داڤت تاهو تنتڠ اوبجيک⹁ دڽاتاکن دالم بلوکڤتا (16 نود).\n" -"\n" -"منتڤکن نيلاي اين لبيه تيڠݢي درڤد جارق بلوک اکتيف (active_block_range) جوݢ\n" -"اکن مڽببکن ڤلاين اونتوق مڠکلکن اوبجيک اکتيف سهيڠݢ کجارق اين\n" -"دالم اره ڤندڠن ڤماٴين. (اين بوليه ايلقکن موب تيبا٢ هيلڠ دري ڤندڠن)" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "جارق بلوک اکتيف" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" -"راديوس جيليد بلوک دسکيتر ستياڤ ڤماٴين يڠ ترتعلوق کڤد\n" -"بندا بلوک اکتيف⹁ دڽاتاکن دالم بلوکڤتا (16 نود).\n" -"دالم بلوک اکتيف⹁ اوبجيک دمواتکن دان ABM دجالنکن.\n" -"اين جوݢ جارق مينيموم دمان اوبجيک اکتيف (موب) دککلکن.\n" -"اين ڤرلو دتتڤکن برسام نيلاي بلوک جارق ڤڠهنترن اوبجيک اکتيف " -"(active_object_send_range_blocks)." - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "جارق مکسيموم ڤڠهنترن بلوک" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" -"سجاٴوه ماناکه بلوک٢ دهنتر کڤد کليئن⹁ دڽاتاکن دالم اونيت بلوکڤتا (16 نود)." - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "جومله مکسيموم بلوک يڠ دڤقسا موات" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "جومله مکسيموم بلوکڤتا يڠ دڤقسا موات." - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "سلڠ ڤڠهنترن ماس" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "سلڠ دأنتارا ڤڠهنترن معلومت ماس ڤلاين کڤد کليئن." - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "کلاجوان ماس" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" -"مڠاول ڤنجڠ کيترن سياڠ\\مالم.\n" -"چونتوهڽ:\n" -"72 اونتوق 20 مينيت⹁ 360 اونتوق 4 مينيت⹁ 1 اونتوق 24 جم⹁ 0 اونتوق سياڠ\\مالم" -"\\لاٴين٢ ککل تيدق بروبه." - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "ماس مولا دنيا" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "وقتو دالم هاري اڤابيلا دنيا بارو دمولاکن⹁ دالم ميليجم (0-23999)." - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "سلڠ ماس ڤڽيمڤنن ڤتا" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" -"سلڠ ماس دأنتارا ڤڽيمڤنن ڤروبهن ڤنتيڠ دالم دنيا⹁ دڽاتاکن دالم اونيت ساٴت." - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "ڤنجڠ مکسيموم ميسيج سيمبڠ" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "تتڤکن ڤنجڠ اکسارا مکسيموم ميسيج سيمبڠ دهنتر اوليه کليئن." - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "حد کيراٴن ميسيج سيمبڠ" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "جومله ميسيج ڤماٴين بوليه هنتر ستياڤ 10 ساٴت." - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "نيلاي امبڠ تندڠ ميسيج سيمبڠ" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "تندڠ ڤماٴين يڠ مڠهنتر ميسيج لبيه درڤد X ستياڤ 10 ساٴت." - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "ايکوت فيزيک" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "ڤچوتن لالاي" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" -"ڤچوتن منداتر دان منݢق اتس تانه اتاو کتيک ممنجت⹁\n" -"دالم اونيت نود ڤر ساٴت ڤر ساٴت." - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "ڤچوتن دأودارا" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" -"ڤچوتن منداتر دأودارا اڤابيلا ملومڤت اتاو جاتوه⹁\n" -"دالم اونيت نود ڤر ساٴت ڤر ساٴت." - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to\n" -"clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible\n" -"rendering glitches (some blocks will not be rendered under water and in " -"caves,\n" -"as well as sometimes on land).\n" -"Setting this to a value greater than max_block_send_distance disables this\n" -"optimization.\n" -"Stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." +msgid "Replaces the default main menu with a custom one." msgstr "" #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" +msgid "Report path" msgstr "" #: src/settings_translation_file.cpp @@ -5529,812 +5734,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." +msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp @@ -6342,127 +5742,7 @@ msgid "Ridge noise" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." +msgid "Ridge underwater noise" msgstr "" #: src/settings_translation_file.cpp @@ -6470,15 +5750,19 @@ msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." +msgid "Right key" +msgstr "ککومچي ککانن" + +#: src/settings_translation_file.cpp +msgid "River channel depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Step mountain size noise" +msgid "River channel width" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." +msgid "River depth" msgstr "" #: src/settings_translation_file.cpp @@ -6486,103 +5770,124 @@ msgid "River noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." +msgid "River size" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain variation noise" +msgid "River valley width" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgid "Rollback recording" +msgstr "راکمن ݢولوڠ باليق" + +#: src/settings_translation_file.cpp +msgid "Rolling hill size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" +msgid "Rolling hills spread noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" +msgid "Round minimap" +msgstr "ڤتا ميني بولت" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "ڤڠݢالين دان ڤلتقن سلامت" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." msgstr "" +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "سيمڤن ڤتا يڠ دتريما اوليه کليئن دالم چکرا." + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "سيمڤن سايز تتيڠکڤ سچارا أوتوماتيک کتيک داوبه." + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "سيمڤن ڤتا دتريما دري ڤلاين ڤرماٴينن" + #: src/settings_translation_file.cpp msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." msgstr "" +"مڽسوايکن GUI دڠن نيلاي دتنتوکن اوليه ڤڠݢونا.\n" +"ݢوناکن ڤناڤيس انتيألياس جيرن تردکت اونتوق مڽسوايکن GUI.\n" +"اين ممبوليهکن سيسي تاجم دلمبوتکن⹁ دان سباتيکن ڤيکسل اڤابيلا\n" +"مڽسوايتورونکن⹁ نامون اي اکن مڠابورکن سستڠه ڤيکسل دسيسي\n" +"اڤابيلا ايميج دسسوايکن دڠن سايز بوکن اينتيݢر." #: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" +msgid "Screen height" +msgstr "تيڠݢي سکرين" #: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" +msgid "Screen width" +msgstr "ليبر سکرين" #: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" +msgid "Screenshot folder" +msgstr "فولدر تڠکڤ لاير" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "فورمت تڠکڤ لاير" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "کواليتي تڠکڤ لاير" #: src/settings_translation_file.cpp msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" +"کواليتي تڠکڤ لاير. هاڽ دݢوناکن اونتوق فورمت JPEG.\n" +"1 مقصودڽ ڤاليڠ تروق⁏ 100 مقصودڽ ڤاليڠ باݢوس.\n" +"ݢوناکن 0 اونتوق کواليتي لالاي." + +#: src/settings_translation_file.cpp +msgid "Seabed noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Lake steepness" +msgid "Second of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." +msgid "Second of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "Hill threshold" +msgid "Security" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" #: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" +msgid "Selection box border color (R,G,B)." +msgstr "ورنا سمڤادن کوتق ڤميليهن (R,G,B)." #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" +msgid "Selection box color" +msgstr "ورنا کوتق ڤميليهن" #: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "" +msgid "Selection box width" +msgstr "ليبر کوتق ڤميليهن" #: src/settings_translation_file.cpp msgid "" @@ -6608,226 +5913,125 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Iterations" +msgid "Server / Singleplayer" +msgstr "ڤلاين ڤرماٴينن \\ ڤماٴين ڤرسأورڠن" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "URL ڤلاين" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "علامت ڤلاين" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "ڤريهل ڤلاين ڤرماٴينن" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "نام ڤلاين ڤرماٴينن" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "ڤورت ڤلاين" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" msgstr "" +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "URL سناراي ڤلاين" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "فاٴيل سناراي ڤلاين" + #: src/settings_translation_file.cpp msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." msgstr "" +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." +msgstr "تتڤکن ڤنجڠ اکسارا مکسيموم ميسيج سيمبڠ دهنتر اوليه کليئن." + #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." msgstr "" +"تتڤکن کڤد \"true\" اونتوق ممبوليهکن داٴون برݢويڠ.\n" +"ممرلوکن ڤمبايڠ اونتوق دبوليهکن." #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" -"(X,Y,Z) اوفسيت فراکتل دري ڤوست دنيا دالم اونيت 'سکال'.\n" -"بوليه ݢونا اونتوق ڤيندهکن تيتيق يڠ دايڠيني ک(0, 0)\n" -"اونتوق چيڤت تيتيق کلاهيرن يڠ سسواي⹁ اتاو اونتوق\n" -"ممبوليهکن 'زوم ماسوق' ڤد تيتيق يڠ دايڠينکن\n" -"دڠن مناٴيقکن 'سکال'.\n" -"نيلاي لالاي دسسوايکن اونتوق تيتيق کلاهيرن سسواي اونتوق سيت Mandelbrot\n" -"دڠن ڤاراميتر لالاي⹁ اي موڠکين ڤرلو داوبه اونتوق سيتواسي يڠ لاٴين.\n" -"جولت کاسرڽ -2 سهيڠݢ 2. داربکن دڠن 'سکال' اونتوق اوفسيت دالم نود." - -#: src/settings_translation_file.cpp -msgid "Slice w" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." msgstr "" +"تتڤکن کڤد \"true\" اونتوق ممبوليهکن چچاٴير برݢلورا (ماچم اٴير).\n" +"ممرلوکن ڤمبايڠ اونتوق دبوليهکن." #: src/settings_translation_file.cpp msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." msgstr "" +"تتڤکن کڤد \"true\" اونتوق ممبوليهکن تومبوهن برݢويڠ.\n" +"ممرلوکن ڤمبايڠ اونتوق دبوليهکن." #: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" +msgid "Shader path" +msgstr "لالوان ڤمبايڠ" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." msgstr "" +"ڤمبايڠ ممبوليهکن کسن ۏيسوال مندالم دان بوليه منيڠکتکن\n" +"ڤريستاسي اونتوق سستڠه کد ۏيديو.\n" +"نامون اي هاڽ برفوڠسي دڠن ڤمبهاݢين بلاکڠ ۏيديو OpenGL." #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." msgstr "" +"اوفسيت بايڠ فون لالاي (دالم اونيت ڤيکسل). جيک 0⹁ ماک بايڠ تيدق اکن دلوکيس." #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." msgstr "" +"اوفسيت بايڠ فون برباليق (دالم اونيت ڤيکسل). جيک 0⹁ ماک بايڠ تيدق اکن دلوکيس." #: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "" +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "بنتوق ڤتا ميني. دبوليهکن = بولت⹁ دلومڤوهکن = ڤيتق." + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "تونجوقکن معلومت ڽهڤڤيجت" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "تونجوقکن کوتق ڤميليهن اينتيتي" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Show entity selection boxes\n" +"A restart is required after changing this." msgstr "" #: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "" +msgid "Shutdown message" +msgstr "ميسيج ڤنوتوڤن" #: src/settings_translation_file.cpp msgid "" @@ -6840,82 +6044,1069 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen debug" +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" +"ساٴيز کيش بلوکڤتا اونتوق ڤنجان ججاريڠ. مناٴيقکن نيلاي اين\n" +"اکن منيڠکتکن جومله % هيت کيش⹁ مڠورڠکن داتا يڠ ڤرلو دسالين\n" +"درڤد جالور اوتام⹁ لالو مڠورڠکن کترن." + +#: src/settings_translation_file.cpp +msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." +msgid "Slope and fill work together to modify the heights." msgstr "" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" +msgid "Small cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." +msgid "Small cave minimum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "ڤنچهاياٴن لمبوت" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" +"ملمبوتکن کاميرا اڤابيلا مليهت سکليليڠ. جوݢ دکنلي سباݢاي ڤلمبوتن ڤڠليهتن اتاو " +"ڤلمبوتن تتيکوس.\n" +"برݢونا اونتوق مراکم ۏيديو." + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" +"ملمبوتکن ڤموترن کاميرا دالم مود سينماتيک. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ." + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "ملمبوتکن ڤموترن کاميرا. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ." + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "ککونچي سلينڤ" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "بوڽي" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "ککونچي ايستيميوا" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" +msgstr "ککونچي اونتوق ممنجت\\منورون" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" +"منتڤکن URL دري مان کليئن مڠمبيل ميديا⹁ مڠݢنتيکن UDP.\n" +"$filename مستيله بوليه دأکسيس درڤد $remote_media$filename ملالوٴي\n" +"cURL (سوده تنتو⹁ remote_media مستي براخير دڠن تندا چوندوڠ).\n" +"فاٴيل يڠ تيدق وجود اکن دأمبيل دڠن چارا بياسا." + +#: src/settings_translation_file.cpp +msgid "" +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." +msgstr "" +"منتڤکن ساٴيز تيندنن لالاي باݢي نود⹁ ايتم دان التن.\n" +"امبيل ڤرهاتيان بهاوا مودس اتاو ڤرماٴينن بوليه تتڤکن سچارا خصوص تيندنن اونتوق " +"سستڠه (اتاو سموا) ايتم." + +#: src/settings_translation_file.cpp +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." +msgstr "" +"سيبر جولت تولقن لڠکوڠ چهاي.\n" +"مڠاول ليبر جولت اونتوق دتولق.\n" +"سيسيهن ڤياواي Gauss (ݢاٴوس) تولقن لڠکوڠ چهاي." + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "تيتيق لاهير ستاتيک" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "ککواتن ڤارالکس مود 3D." + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" +"ککواتن تولقن چهاي.\n" +"تيݢ ڤاراميتر 'تولقن' منتعريفکن جولت لڠکوڠ\n" +"چهاي يڠ دتولق دالم ڤنچهاياٴن." + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "ڤمريقساٴن ڤروتوکول کتت" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "بواڠ کود ورنا" + +#: src/settings_translation_file.cpp +msgid "" +"Surface level of optional water placed on a solid floatland layer.\n" +"Water is disabled by default and will only be placed if this value is set\n" +"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" +"upper tapering).\n" +"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" +"When enabling water placement the floatlands must be configured and tested\n" +"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" +"required value depending on 'mgv7_np_floatland'), to avoid\n" +"server-intensive extreme water flow and to avoid vast flooding of the\n" +"world surface below." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." msgstr "" #: src/settings_translation_file.cpp -msgid "Number of emerge threads" +msgid "Terrain persistence noise" msgstr "" +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "لالوان تيکستور" + #: src/settings_translation_file.cpp msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB URL" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." msgstr "" +"تيکستور ڤد نود بوليه دجاجرکن سام اد کڤد نود اتاو دنيا.\n" +"مود ڤرتام لبيه سسواي اونتوق بندا ماچم ميسين⹁ ڤرابوت⹁ دان لاٴين٢⹁ ماناکال\n" +"مود کدوا ممبواتکن تڠݢ دان بلوک ميکرو لبيه سسواي دڠن ڤرسکيترنڽ.\n" +"نامون بݢيتو⹁ کران اين چيري بارو⹁ ماک اي موڠکين تيدق دݢوناکن دڤلاين لام⹁\n" +"ڤيليهن اين ممبوليهکن ڤمقساٴن اي اونتوق جنيس نود ترتنتو. امبيل ڤرهاتين\n" +"بهاوا اياڽ داڠݢڤ دالم اوجيکاجي دان موڠکين تيدق برفوڠسي دڠن بتول." #: src/settings_translation_file.cpp msgid "The URL for the content repository" msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "ڤڠنل ڤستي کايو بديق يڠ دݢوناکن" + +#: src/settings_translation_file.cpp +msgid "" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" +"The file path relative to your worldpath in which profiles will be saved to." msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "ڤڠنل ڤستي کايو بديق يڠ دݢوناکن" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "ڤنجڠ دالم ڤيکسيل اونتوق ممولاکن اينتراکسي سکرين سنتوه." + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" +"تيڠݢي مکسيموم ڤرموکاٴن چچاٴير برݢلورا.\n" +"4.0 = تيڠݢي ݢلورا اياله دوا نود.\n" +"0.0 = ݢلورا تيدق برݢرق لڠسوڠ.\n" +"نيلاي اصلڽ 1.0 (1/2 نود).\n" +"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن." + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "انتاراموک رڠکاين يڠ ڤلاين دڠر." + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" +"کأيستيميواٴن يڠ ڤڠݢونا٢ بارو داڤت سچارا اٴوتوماتيک.\n" +"ليهت /privs دالم ڤرماٴينن اونتوق سناراي ڤنوه کأيستيميواٴن ڤلاين دان " +"کونفيݢوراسي مودس." + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" +"راديوس جيليد بلوک دسکيتر ستياڤ ڤماٴين يڠ ترتعلوق کڤد\n" +"بندا بلوک اکتيف⹁ دڽاتاکن دالم بلوکڤتا (16 نود).\n" +"دالم بلوک اکتيف⹁ اوبجيک دمواتکن دان ABM دجالنکن.\n" +"اين جوݢ جارق مينيموم دمان اوبجيک اکتيف (موب) دککلکن.\n" +"اين ڤرلو دتتڤکن برسام نيلاي بلوک جارق ڤڠهنترن اوبجيک اکتيف " +"(active_object_send_range_blocks)." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +msgstr "" +"ترجمهن بهاݢين بلاکڠ اونتوق Irrlicht.\n" +"اندا ڤرلو ممولاکن سمولا سلڤس مڠاوبه تتڤن اين.\n" +"نوت: دAndroid⹁ ککلکن دڠن OGLES1 جيک تيدق ڤستي! اڤليکاسي موڠکين تيدق\n" +"بوليه دمولاکن جيک مڠݢوناکن تتڤن لاٴين. دڤلاتفورم لاٴين⹁ OpenGL دشورکن⹁\n" +"دان اي اياله ساتو-ساتوڽ ڤماچو يڠ ممڤوڽاٴي سوکوڠن ڤمبايڠ کتيک اين." + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" +"کڤيکاٴن ڤکسي کايو بديق اونتوق مڠݢرقکن\n" +"فروستوم ڤڠليهتن دالم ڤرماٴينن." + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" +"ککواتن (کݢلڤن) ڤمبايڠ نود اوکلوسي-سکيتر.\n" +"لبيه رنده لبيه ݢلڤ⹁ لبيه تيڠݢي لبيه تراڠ. نيلاي يڠ صح\n" +"اونتوق تتڤن اين هاڽله دري 0.25 هيڠݢ 4.0. جيک نيلاي\n" +"دلوار جولت⹁ اي اکن دتتڤکن کڤد نيلاي صح يڠ تردکت." + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" +"سلڠ ماس دالم ساٴت⹁ دامبيل انتارا ڤريستيوا يڠ براولڠن\n" +"اڤابيلا منکن کومبيناسي بوتڠ کايو بديق." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." +msgstr "" +"جومله ماس دالم ساٴت دامبيل اونتوق ملاکوکن کليک کانن يڠ براولڠ اڤابيلا\n" +"ڤماٴين منکن بوتڠ تتيکوس کانن تنڤ ملڤسکنڽ." + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "جنيس کايو بديق" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" +"ماس اونتوق اينتيتي ايتم (ايتم يڠ دجاتوهکن) تروس هيدوڤ دالم اونيت ساٴت.\n" +"تتڤکن کڤد -1 اونتوق ملومڤوهکن صيفت ترسبوت." + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "وقتو دالم هاري اڤابيلا دنيا بارو دمولاکن⹁ دالم ميليجم (0-23999)." + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "سلڠ ڤڠهنترن ماس" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "کلاجوان ماس" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "حد ماس اونتوق کليئن ممبواڠ ڤتا يڠ تيدق دݢوناکن دري ميموري." + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" +"اونتوق مڠورڠکن لمبڤڽ تيندق بالس⹁ ڤميندهن بلوک دڤرلاهنکن اڤابيلا ڤماٴين " +"ممبينا سسوات.\n" +"تتڤن اين منتڤکن براڤ لام اياڽ دڤرلاهنکن ستله ملتقکن اتاٴو مڠاليهکن سسبواه " +"نود." + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "ککونچي توݢول مود کاميرا" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "لڠه تيڤ التن" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "نيلاي امبڠ سکرين سنتوه" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "ڤناڤيسن تريلينيار" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" +"True = 256\n" +"False = 128\n" +"بوليه دݢوناکن اونتوق ملنچرکن ڤتا ميني ڤد ميسين يڠ ڤرلاهن." + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "URL کڤد سناراي ڤلاين يڠ دڤاڤرکن دالم تب ڤرماٴينن راماي." + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "ڤنسمڤلن ڤڠورڠن" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" +"ڤنسمڤلن ڤڠورڠن سروڤ سڤرتي مڠݢوناکن ريسولوسي سکرين رنده⹁\n" +"تتاڤي اي هاڽ داڤليکاسيکن کڤد دنيا ڤرماٴينن سهاج⹁ تيدق مڠاوبه GUI.\n" +"اي بوليه منيڠکتکن ڤريستاسي دڠن مڠوربنکن ڤراينچين ايميج.\n" +"نيلاي لبيه تيڠݢي ممبواتکن ايميج يڠ کورڠ ڤراينچين." + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "جارق ڤميندهن ڤماٴين تنڤ حد" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "ݢونا ڤاڤرن اون 3D مڠݢنتيکن اون رات." + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "ݢوناکن انيماسي اون سباݢاي لاتر بلاکڠ مينو اوتام." + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "ݢوناکن ڤناڤيسن انيسوتروڤيک اڤابيلا مليهت تيکستور دري سواتو سودوت." + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "ݢوناکن ڤناڤيسن بيلينيار اڤابيلا مڽسوايکن تيکستور." + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" +"ݢوناکن ڤمتاٴن ميڤ اونتوق مڽسوايکن تيکستور. بوليه منيڠکتکن\n" +"سديکيت ڤريستاسي⹁ تراوتاماڽ اڤابيلا مڠݢوناکن ڤيک تيکستور\n" +"برديفينيسي تيڠݢي. ڤڽسواي-تورون ݢام سچار تڤت تيدق دسوکوڠ." + +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "ݢوناکن ڤناڤيسن تريلينيار اڤابيلا مڽسوايکن تيکستور." + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "VBO" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "VSync" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "ڤڽݢرقن منݢق سکرين." + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "ڤماچو ۏيديو" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "فکتور اڤوڠن ڤندڠ" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "جارق ڤندڠ دالم اونيت نود." + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "ککونچي مڠورڠ جارق ڤندڠ" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "ککونچي منمبه جارق ڤندڠ" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "ککونچي زوم ڤندڠن" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "جارق ڤندڠ" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "کايو بديق ماي مميچو بوتڠ aux" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "کقواتن بوڽي" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." +msgstr "" +"کقواتن سموا بوڽي.\n" +"ممرلوکن سيستم بوڽي دبوليهکن." + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "نود برݢويڠ" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "داٴون برݢويڠ" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "چچاٴير برݢلورا" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "کتيڠݢين اومبق چچاٴير برݢلورا" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "کلاجوان اومبق چچاٴير برݢلورا" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "ڤنجڠ اومبق چچاٴير برݢلورا" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "تومبوهن برݢويڠ" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" +"اڤابيلا ڤناڤيس سکال GUI ايايتgui_scaling_filter دتتڤکن کڤد \"true\"⹁ سموا\n" +"ايميج GUI ڤرلو دتاڤيس دالم ڤرايسين⹁ تتاڤي سستڠه ايميج دجان سچارا تروس\n" +"کڤرکاکسن (چونتوهڽ⹁ ڤنرجمهن-ک-تيکستور اونتوق نود دالم اينۏينتوري)." + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" +"اڤابيلا gui_scaling_filter_txr2img دتتڤکن کڤد \"true\"⹁ سالين سمولا کسموا\n" +"ايميج ترسبوت دري ڤرکاکسن کڤرايسين اونتوق دسسوايکن. سکيراڽ دتتڤکن کڤد\n" +"\"false\"⹁ برباليق کڤد قاعده ڤڽسواين يڠ لام⹁ اونتوق ڤماچو ۏيديو يڠ تيدق " +"ممڤو\n" +"مڽوکوڠ دڠن سمڤورنا فوڠسي موات تورون سمولا تيکستور درڤد ڤرکاکسن." + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" +"اڤابيلا مڠݢوناکن تاڤيسن بيلينيار\\تريلينيار\\انيسوتروڤيک⹁ تيکستور\n" +"ريسولوسي رنده بوليه جادي کابور⹁ جادي سسواي-ناٴيقکن مريک\n" +"سچارا أوتوماتيک دڠن سيسيڤن جيرن تردکت اونتوق ممليهارا ڤيکسل\n" +"کراس. تتڤن اين منتڤکن سايز تيکستور مينيما اونتوق تيکستور\n" +"ڤڽسواي-ناٴيقکن⁏ نيلاي لبيه تيڠݢي تمڤق لبيه تاجم⹁ تتاڤي ممرلوکن\n" +"ميموري يڠ لبيه باڽق. نيلاي کواسا 2 دشورکن. منتڤکن نيلاي اين لبيه\n" +"تيڠݢي دري 1 تيدق اکن منمڤقکن کسن يڠ ڽات ملاٴينکن تاڤيسن\n" +"بيلينيار\\تريلينيار\\انيسوتروڤيک دبوليهکن. اين جوݢ دݢوناکن سباݢاي\n" +"سايز تيکستور نود اساس اونتوق أوتوڤڽسواين تيکستور جاجرن دنيا." + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." +msgstr "" +"منتڤکن سام اد فون FreeType دݢوناکن⹁ ممرلوکن سوکوڠن Freetype\n" +"دکومڤيل برسام. جيک دلومڤوهکن⹁ فون ڤتا بيت دان ۏيکتور XML اکن دݢوناکن." + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "سام اد انيماسي تيکستور نود ڤرلو دڽهسݢرقکن ڤد ستياڤ بلوک ڤتا." + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" +"تتڤکن سام اد ڤماٴين دتونجوقکن کڤد کليئن تنڤا حد جارق.\n" +"تتڤن اين ترکچم⹁ ݢوناکن تتڤن player_transfer_distance سباݢاي ݢنتي." + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" +"منتڤکن سام اد ايڠين ممبنرکن ڤماٴين اونتوق منچدراکن دان ممبونوه ساتو سام " +"لاٴين." + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" +"تتڤن سام اد اونتوق ممينتا مڽمبوڠ سمولا سلڤس برلاکوڽ کرونتوهن (Lua).\n" +"تتڤکن کڤد \"true\" جک ڤلاين اندا دتتڤکن اونتوق مولا سمولا سچارا اٴوتوماتيک." + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "سام اد اندا هندق مڠکابوتکن ڤڠهوجوڠ کاوسن يڠ کليهتن." + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" +"سام اد ايڠين ممبيسوکن بوڽي. اندا بوليه مڽهبيسو ڤد بيلا٢\n" +"ماس⹁ ملاٴينکن سيستم بوڽي دلومڤوهکن (enable_sound=false).\n" +"دالم ڤرماٴينن⹁ اندا بوليه منوݢول کأداٴن بيسو مڠݢوناکن ککونچي\n" +"بيسو اتاو مڠݢوناکن مينو جيدا." + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" +"تتڤکن سام اد هندق منونجوقکن معلومت ڽهڤڤيجت (کسنڽ سام سڤرتي منکن بوتڠ F5)." + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "کومڤونن ليبر سايز تتيڠکڤ اول." + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "ليبر ݢاريسن کوتق ڤميليهن سکليليڠ نود." + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" +"سيستم Windows سهاج: مولاکن Minetest دڠن تتيڠکڤ ݢاريس ڤرينة دکت لاتر بلاکڠ.\n" +"مڠندوڠي معلومت يڠ سام سڤرتي فاٴيل debug.txt (نام لالاي)." + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" +"ديريکتوري دنيا (سموا بندا دالم دنيا دسيمڤن دسيني).\n" +"تيدق دڤرلوکن جک برمولا دري مينو اوتام." + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "ماس مولا دنيا" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" +"تيکستور جاجرن دنيا بوليه دسسوايکن اونتوق منجڠکاو ببراڤ نود.\n" +"نامون بݢيتو⹁ ڤلاين موڠکين تيدق داڤت مڠهنتر سکال يڠ اندا\n" +"ايڠينکن⹁ تراوتاماڽ جيک اندا ݢوناکن ڤيک تيکستور يڠ دريک سچارا\n" +"خصوص⁏ دڠن ڤيليهن اين⹁ کليئن اکن چوبا اونتوق مننتوکن سکال سچارا\n" +"أوتوماتيک برداسرکن سايز تيکستور. جوݢ ليهت texture_min_size.\n" +"امرن: ڤيليهن اين دالم اوجيکاجي!" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "مود تيکستور جاجرن دنيا" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "" + +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = اوکلوسي ڤارالکس دڠن معلومت چرون (لبيه چڤت).\n" +#~ "1 = ڤمتاٴن بنتوق موک بومي (لبيه لمبت⹁ لبيه تڤت)." + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "اداکه اندا ماهو سيت سمولا دنيا ڤماٴين ڤرساورڠن؟" + +#~ msgid "Bump Mapping" +#~ msgstr "ڤمتاٴن برتومڤوق" + +#~ msgid "Bumpmapping" +#~ msgstr "ڤمتاٴن برتومڤوق" + +#~ msgid "Config mods" +#~ msgstr "کونفيݢوراسي مودس" + +#~ msgid "Configure" +#~ msgstr "کونفيݢوراسي" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "ورنا باݢي کورسور ررمبوت سيلڠ (R,G,B)." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "منتعريفکن تاهڤ ڤرسمڤلن تيکستور.\n" +#~ "نيلاي لبيه تيڠݢي مڠحاصيلکن ڤتا نورمل لبيه لمبوت." + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "ممبوليهکن ڤمتاٴن برتومڤوق ڤد تيکستور. ڤتا نورمل ڤرلو دسدياکن\n" +#~ "اوليه ڤيک تيکستور اتاو ڤرلو دجان سچارا أوتوماتيک.\n" +#~ "ڤرلوکن ڤمبايڠ دبوليهکن." + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "ممبوليهکن ڤنجاناٴن ڤتا نورمل سچارا لايڠ (کسن چيتق تيمبول).\n" +#~ "ڤرلوکن ڤمتاٴن برتومڤوق اونتوق دبوليهکن." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "ممبوليهکن ڤمتاٴن اوکلوسي ڤارالکس.\n" +#~ "ممرلوکن ڤمبايڠ اونتوق دبوليهکن." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "ڤيليهن ڤرچوباٴن⹁ موڠکين منمڤقکن رواڠ ڽات دانتارا\n" +#~ "بلوک اڤابيلا دتتڤکن دڠن نومبور لبيه بسر درڤد 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS دمينو جيدا" + +#~ msgid "Generate Normal Maps" +#~ msgstr "جان ڤتا نورمل" + +#~ msgid "Generate normalmaps" +#~ msgstr "جان ڤتا نورمل" + +#~ msgid "Main" +#~ msgstr "اوتام" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "ڤتا ميني دالم مود رادر⹁ زوم 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "ڤتا ميني دالم مود رادر⹁ زوم 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹁ زوم 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹁ زوم 4x" + +#~ msgid "Name/Password" +#~ msgstr "نام\\کات لالوان" + +#~ msgid "No" +#~ msgstr "تيدق" + +#~ msgid "Normalmaps sampling" +#~ msgstr "ڤرسمڤلن ڤتا نورمل" + +#~ msgid "Normalmaps strength" +#~ msgstr "ککواتن ڤتا نورمل" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "جومله للرن اوکلوسي ڤارالکس." + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "ڤڠاروه کسن اوکلوسي ڤارالکس ڤد کسلوروهنڽ⹁ کبياساٴنڽ سکال\\2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "سکال کسلوروهن کسن اوکلوسي ڤارالکس." + +#~ msgid "Parallax Occlusion" +#~ msgstr "اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion" +#~ msgstr "اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "ڤڠاروه اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "للرن اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "مود اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "سکال اوکلوسي ڤارالکس" + +#~ msgid "Reset singleplayer world" +#~ msgstr "سيت سمولا دنيا ڤماٴين ڤرساورڠن" + +#~ msgid "Start Singleplayer" +#~ msgstr "مولا ماٴين ساورڠ" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "ککواتن ڤتا نورمل يڠ دجان." + +#~ msgid "View" +#~ msgstr "ليهت" + +#~ msgid "Yes" +#~ msgstr "ياٴ" diff --git a/po/nb/minetest.po b/po/nb/minetest.po index f2e22b967..b3d6ae154 100644 --- a/po/nb/minetest.po +++ b/po/nb/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Norwegian Bokmål (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-01-10 01:32+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål \n" "Language-Team: Dutch 1.0 maakt een vloeiende afschuining voor standaard gescheiden\n" "zwevende eilanden.\n" @@ -3189,8 +3186,9 @@ msgstr "" "platte laaglanden, geschikt voor een solide zwevende eilanden laag." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS in het pauze-menu" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Maximum FPS als het spel gepauzeerd is." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3521,10 +3519,6 @@ msgstr "GUI schalingsfilter" msgid "GUI scaling filter txr2img" msgstr "GUI schalingsfilter: txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Genereer normaalmappen" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Algemene callbacks" @@ -3589,10 +3583,11 @@ msgid "HUD toggle key" msgstr "HUD aan/uitschakelen toets" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Behandeling van verouderde lua api aanroepen:\n" @@ -4135,6 +4130,11 @@ msgstr "Stuurknuppel ID" msgid "Joystick button repetition interval" msgstr "Joystick-knop herhalingsinterval" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Joystick type" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Joystick frustrum gevoeligheid" @@ -4237,6 +4237,17 @@ msgstr "" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Toets voor springen.\n" +"Zie http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4379,6 +4390,17 @@ msgstr "" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Toets voor springen.\n" +"Zie http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5131,10 +5153,6 @@ msgstr "Onderste Y-limiet van zwevende eilanden." msgid "Main menu script" msgstr "Hoofdmenu script" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Hoofdmenu stijl" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5151,6 +5169,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Maak alle vloeistoffen ondoorzichtig" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Wereld map" @@ -5217,8 +5243,8 @@ msgid "" "'caverns': Giant caves deep underground." msgstr "" "Wereldgenerator instellingen specifiek voor generator v7.\n" -"'ridges': dit zijn uithollingen in het landschap die rivieren mogelijk maken." -"\n" +"'ridges': dit zijn uithollingen in het landschap die rivieren mogelijk " +"maken.\n" "'floatlands': dit zijn zwevende landmassa's in de atmosfeer.\n" "'caverns': grote grotten diep onder de grond." @@ -5337,7 +5363,8 @@ msgid "Maximum FPS" msgstr "Maximum FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Maximum FPS als het spel gepauzeerd is." #: src/settings_translation_file.cpp @@ -5396,6 +5423,13 @@ msgstr "" "geladen te worden.\n" "Deze limiet is opgelegd per speler." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Maximaal aantal geforceerd geladen blokken." @@ -5661,14 +5695,6 @@ msgstr "Interval voor node-timers" msgid "Noises" msgstr "Ruis" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Normal-maps bemonstering" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Sterkte van normal-maps" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Aantal 'emerge' threads" @@ -5717,10 +5743,6 @@ msgstr "" "van een sqlite\n" "transactie), en geheugengebruik anderzijds (4096 = ca. 100MB)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Aantal parallax occlusie iteraties." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Online inhoud repository" @@ -5752,35 +5774,6 @@ msgstr "" "Pauzemenu openen als het venster focus verliest. Pauzeert niet als er\n" "een formspec geopend is." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" -"Algemene afwijking van het parallax occlusie effect. Normaal: schaal/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Algemene schaal van het parallax occlusie effect." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Parallax occlusie" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Parallax occlusie afwijking" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Parallax occlusie iteraties" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Parallax occlusie modus" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Parallax occlusie schaal" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5854,7 +5847,8 @@ msgstr "Pauzeer als venster focus verliest" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" -msgstr "Per speler limiet van gevraagde blokken om te laden van de harde schijf" +msgstr "" +"Per speler limiet van gevraagde blokken om te laden van de harde schijf" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks to generate" @@ -5872,6 +5866,16 @@ msgstr "Vrij vliegen toets" msgid "Pitch move mode" msgstr "Pitch beweeg modus" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Vliegen toets" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Rechts-klik herhalingsinterval" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6058,10 +6062,6 @@ msgstr "Bergtoppen grootte ruis" msgid "Right key" msgstr "Toets voor rechts" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Rechts-klik herhalingsinterval" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Diepte van rivieren" @@ -6356,6 +6356,15 @@ msgstr "Toon debug informatie" msgid "Show entity selection boxes" msgstr "Toon selectie-box voor objecten" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Stel de taal in. De systeem-taal wordt gebruikt indien leeg.\n" +"Een herstart is noodzakelijk om de nieuwe taal te activeren." + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Afsluitbericht van server" @@ -6478,8 +6487,8 @@ msgid "" "items." msgstr "" "Bepaalt de standaard stack grootte van nodes, items en tools.\n" -"Merk op dat mods of spellen expliciet een stack kunnen maken voor sommige (" -"of alle) items." +"Merk op dat mods of spellen expliciet een stack kunnen maken voor sommige " +"(of alle) items." #: src/settings_translation_file.cpp msgid "" @@ -6511,10 +6520,6 @@ msgstr "Trap-Bergen verspreiding ruis" msgid "Strength of 3D mode parallax." msgstr "Sterkte van de 3D modus parallax." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Sterkte van de normal-maps." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6643,6 +6648,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "De URL voor de inhoudsrepository" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "De identificatie van de stuurknuppel die u gebruikt" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6717,13 +6727,14 @@ msgstr "" "Dit moet samen met active_object_send_range_blocks worden geconfigureerd." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "De rendering back-end voor Irrlicht. \n" "Na het wijzigen hiervan is een herstart vereist. \n" @@ -6763,6 +6774,12 @@ msgstr "" "items\n" "uit de rij verwijderd. Gebruik 0 om dit uit te zetten." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6772,10 +6789,10 @@ msgstr "" " ingedrukt gehouden wordt." #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" "De tijd in seconden tussen herhaalde rechts-klikken als de rechter muisknop\n" "ingedrukt gehouden wordt." @@ -6941,6 +6958,17 @@ msgstr "" "vooral bij gebruik van een textuurpakket met hoge resolutie. \n" "Gamma-correcte verkleining wordt niet ondersteund." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Gebruik tri-lineaire filtering om texturen te schalen." @@ -7341,6 +7369,24 @@ msgstr "Y-niveau van lager terrein en vijver/zee bodems." msgid "Y-level of seabed." msgstr "Y-niveau van zee bodem." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "timeout voor cURL download" @@ -7353,97 +7399,12 @@ msgstr "Maximaal parallellisme in cURL" msgid "cURL timeout" msgstr "cURL time-out" -#~ msgid "Toggle Cinematic" -#~ msgstr "Cinematic modus aan/uit" - -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Selecteer Modbestand:" - -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Minimale diepte van grote semi-willekeurige grotten." - -#~ msgid "Waving Water" -#~ msgstr "Golvend water" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-niveau tot waar de schaduw van drijvend land reikt." - -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Y-niveau van drijvend land middelpunt en vijver oppervlak." - -#~ msgid "Waving water" -#~ msgstr "Golvend water" - -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Variatie van de heuvel hoogte en vijver diepte op drijvend egaal terrein." - -#, fuzzy #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Typisch maximum hoogte, boven en onder het middelpunt van drijvend berg " -#~ "terrein." - -#~ msgid "This font will be used for certain languages." -#~ msgstr "Dit font wordt gebruikt voor bepaalde talen." - -#~ msgid "Shadow limit" -#~ msgstr "Schaduw limiet" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Pad van TrueType font of bitmap." - -#, fuzzy -#~ msgid "Lava depth" -#~ msgstr "Diepte van grote grotten" - -#~ msgid "IPv6 support." -#~ msgstr "IPv6 ondersteuning." - -#, fuzzy -#~ msgid "Gamma" -#~ msgstr "Gamma" - -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Fontschaduw alphawaarde (ondoorzichtigheid, tussen 0 en 255)." - -#~ msgid "Floatland mountain height" -#~ msgstr "Drijvend gebergte hoogte" - -#~ msgid "Floatland base height noise" -#~ msgstr "Drijvend land basis hoogte ruis" - -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Schakelt filmisch tone-mapping in" - -#~ msgid "Enable VBO" -#~ msgstr "VBO aanzetten" - -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "Bepaalt gebieden van drijvend glijdend terrein.\n" -#~ "Drijvend glijdend terrein ontstaat wanneer ruis > 0." - -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "Steilheid Van de meren" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Bepaalt breedte van tunnels, een kleinere waarde maakt bredere tunnels." - -#, fuzzy -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Bepaalt de dichtheid van drijvende bergen.\n" -#~ "Dit wordt bijgevoegd bij de 'np_mountain' ruis waarde." +#~ "0 = parallax occlusie met helling-informatie (sneller).\n" +#~ "1 = 'reliëf mapping' (lanzamer, nauwkeuriger)." #, fuzzy #~ msgid "" @@ -7455,20 +7416,266 @@ msgstr "cURL time-out" #~ "Deze instelling wordt enkel gebruikt door de cliënt, en wordt genegeerd " #~ "door de server." -#~ msgid "Path to save screenshots at." -#~ msgstr "Pad waar screenshots bewaard worden." - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Parallax occlusie sterkte" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Emerge-wachtrij voor lezen" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 wordt gedownload, een ogenblik geduld alstublieft..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Weet je zeker dat je jouw wereld wilt resetten?" #~ msgid "Back" #~ msgstr "Terug" +#~ msgid "Bump Mapping" +#~ msgstr "Bumpmapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Verandert de gebruikersinterface van het hoofdmenu: \n" +#~ "- Volledig: meerdere werelden voor één speler, spelkeuze, de kiezer van " +#~ "textuurpak, etc. \n" +#~ "- Eenvoudig: één wereld voor één speler, geen game- of texture pack-" +#~ "kiezers. Kan zijn \n" +#~ "noodzakelijk voor kleinere schermen." + +#~ msgid "Config mods" +#~ msgstr "Mods configureren" + +#~ msgid "Configure" +#~ msgstr "Instellingen" + +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Bepaalt de dichtheid van drijvende bergen.\n" +#~ "Dit wordt bijgevoegd bij de 'np_mountain' ruis waarde." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Bepaalt breedte van tunnels, een kleinere waarde maakt bredere tunnels." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Draadkruis-kleur (R,G,B)." + +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "Steilheid Van de meren" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Bepaalt gebieden van drijvend glijdend terrein.\n" +#~ "Drijvend glijdend terrein ontstaat wanneer ruis > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Bemonsterings-interval voor texturen.\n" +#~ "Een hogere waarde geeft vloeiender normal maps." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 wordt gedownload, een ogenblik geduld alstublieft..." + +#~ msgid "Enable VBO" +#~ msgstr "VBO aanzetten" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Bumpmapping aanzetten voor texturen. Normalmaps moeten al in de texture " +#~ "pack zitten\n" +#~ "of ze moeten automatisch gegenereerd worden.\n" +#~ "Schaduwen moeten aanstaan." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Schakelt filmisch tone-mapping in" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Schakelt het genereren van normal maps in (emboss effect).\n" +#~ "Dit vereist dat bumpmapping ook aan staat." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Schakelt parallax occlusie mappen in.\n" +#~ "Dit vereist dat shaders ook aanstaan." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentele optie. Kan bij een waarde groter dan 0 zichtbare\n" +#~ "ruimtes tussen blokken tot gevolg hebben." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS in het pauze-menu" + +#~ msgid "Floatland base height noise" +#~ msgstr "Drijvend land basis hoogte ruis" + +#~ msgid "Floatland mountain height" +#~ msgstr "Drijvend gebergte hoogte" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Fontschaduw alphawaarde (ondoorzichtigheid, tussen 0 en 255)." + +#, fuzzy +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Genereer normale werelden" + +#~ msgid "Generate normalmaps" +#~ msgstr "Genereer normaalmappen" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 ondersteuning." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "Diepte van grote grotten" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Emerge-wachtrij voor lezen" + +#~ msgid "Main" +#~ msgstr "Hoofdmenu" + +#~ msgid "Main menu style" +#~ msgstr "Hoofdmenu stijl" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Mini-kaart in radar modus, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Mini-kaart in radar modus, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimap in oppervlaktemodus, Zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimap in oppervlaktemodus, Zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Naam / Wachtwoord" + +#~ msgid "No" +#~ msgstr "Nee" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normal-maps bemonstering" + +#~ msgid "Normalmaps strength" +#~ msgstr "Sterkte van normal-maps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Aantal parallax occlusie iteraties." + #~ msgid "Ok" #~ msgstr "Oké" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Algemene afwijking van het parallax occlusie effect. Normaal: schaal/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Algemene schaal van het parallax occlusie effect." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax occlusie" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusie" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Parallax occlusie afwijking" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Parallax occlusie iteraties" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Parallax occlusie modus" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax occlusie schaal" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Parallax occlusie sterkte" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Pad van TrueType font of bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Pad waar screenshots bewaard worden." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reset Singleplayer wereld" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "Selecteer Modbestand:" + +#~ msgid "Shadow limit" +#~ msgstr "Schaduw limiet" + +#~ msgid "Start Singleplayer" +#~ msgstr "Start Singleplayer" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Sterkte van de normal-maps." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Dit font wordt gebruikt voor bepaalde talen." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Cinematic modus aan/uit" + +#, fuzzy +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Typisch maximum hoogte, boven en onder het middelpunt van drijvend berg " +#~ "terrein." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variatie van de heuvel hoogte en vijver diepte op drijvend egaal terrein." + +#~ msgid "View" +#~ msgstr "Bekijk" + +#~ msgid "Waving Water" +#~ msgstr "Golvend water" + +#~ msgid "Waving water" +#~ msgstr "Golvend water" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Minimale diepte van grote semi-willekeurige grotten." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Y-niveau van drijvend land middelpunt en vijver oppervlak." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-niveau tot waar de schaduw van drijvend land reikt." + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/nn/minetest.po b/po/nn/minetest.po index a1483e996..2968d5a1a 100644 --- a/po/nn/minetest.po +++ b/po/nn/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Norwegian Nynorsk (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-01-10 01:32+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Nynorsk \n" "Language-Team: Polish 0." -#~ msgstr "" -#~ "Określa obszary wznoszącego się gładkiego terenu.\n" -#~ "Wygładzone powierzchnie pojawiają się gdy szum > 0." - -#~ msgid "Darkness sharpness" -#~ msgstr "Ostrość ciemności" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Kontroluje szerokość tuneli, mniejsze wartości tworzą szersze tunele." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Kontroluje gęstość wznoszącego się terenu górzystego.\n" -#~ "Jest to wartość dodana do wartość szumu 'np_mountain'." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Centrum przyśpieszenia środkowego krzywej światła." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Zmienia sposób w jaki podobne do gór latające wyspy zwężają się ku " -#~ "środkowi nad i pod punktem środkowym." +#~ "0 = parallax occlusion z informacją nachylenia (szybsze).\n" +#~ "1 = relief mapping (wolniejsze, bardziej dokładne)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7420,20 +7362,280 @@ msgstr "Limit czasu cURL" #~ "jasność.\n" #~ "To ustawienie jest tylko dla klientów, ignorowane przez serwer." -#~ msgid "Path to save screenshots at." -#~ msgstr "Ścieżka, pod którą zapisywane są zrzuty ekranu." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Zmienia sposób w jaki podobne do gór latające wyspy zwężają się ku " +#~ "środkowi nad i pod punktem środkowym." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Siła zamknięcia paralaksy" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limit oczekiwań na dysku" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Pobieranie i instalowanie $1, proszę czekaj..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Jesteś pewny że chcesz zresetować świat singleplayer?" #~ msgid "Back" #~ msgstr "Backspace" +#~ msgid "Bump Mapping" +#~ msgstr "Mapowanie wypukłości" + +#~ msgid "Bumpmapping" +#~ msgstr "Mapowanie wypukłości" + +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Centrum przyśpieszenia środkowego krzywej światła." + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Zmienia interfejs użytkownika menu głównego:\n" +#~ "- Pełny: Wiele światów jednoosobowych, wybór gry, wybór paczki " +#~ "tekstur, itd.\n" +#~ "- Prosty: Jeden świat jednoosobowy, brak wyboru gry lub paczki " +#~ "tekstur. Może być konieczny dla mniejszych ekranów." + +#~ msgid "Config mods" +#~ msgstr "Ustawienia modów" + +#~ msgid "Configure" +#~ msgstr "Ustaw" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Kontroluje gęstość wznoszącego się terenu górzystego.\n" +#~ "Jest to wartość dodana do wartość szumu 'np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Kontroluje szerokość tuneli, mniejsze wartości tworzą szersze tunele." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Kolor celownika (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Ostrość ciemności" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Określa obszary wznoszącego się gładkiego terenu.\n" +#~ "Wygładzone powierzchnie pojawiają się gdy szum > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Definiuje krok próbkowania tekstury.\n" +#~ "Wyższa wartość reprezentuje łagodniejszą mapę normalnych." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Pobieranie i instalowanie $1, proszę czekaj..." + +#~ msgid "Enable VBO" +#~ msgstr "Włącz VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Włącza mapowanie wypukłości dla tekstur. Mapy normalnych muszą być dodane " +#~ "w paczce tekstur\n" +#~ "lub muszą być automatycznie wygenerowane.\n" +#~ "Wymaga włączonych shaderów." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Włącz filmic tone mapping" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Włącza generację map normalnych w locie (efekt płaskorzeźby).\n" +#~ "Wymaga włączenia mapowania wypukłości." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Włącza mapowanie paralaksy.\n" +#~ "Wymaga włączenia shaderów." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Eksperymentalna opcja, może powodować widoczne przestrzenie\n" +#~ "pomiędzy blokami kiedy ustawiona powyżej 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS podczas pauzy w menu" + +#~ msgid "Floatland base height noise" +#~ msgstr "Podstawowy szum wysokości wznoszącego się terenu" + +#~ msgid "Floatland mountain height" +#~ msgstr "Wysokość gór latających wysp" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Kanał alfa cienia czcionki (nieprzeźroczystość, od 0 do 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Generuj normalne mapy" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generuj mapy normalnych" + +#~ msgid "IPv6 support." +#~ msgstr "Wsparcie IPv6." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "Głębia dużej jaskini" + +#~ msgid "Lightness sharpness" +#~ msgstr "Ostrość naświetlenia" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limit oczekiwań na dysku" + +#~ msgid "Main" +#~ msgstr "Menu główne" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Skrypt głównego menu" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa w trybie radaru, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa w trybie radaru, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa w trybie powierzchniowym, powiększenie x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa w trybie powierzchniowym, powiększenie x4" + +#~ msgid "Name/Password" +#~ msgstr "Nazwa gracza/Hasło" + +#~ msgid "No" +#~ msgstr "Nie" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Próbkowanie normalnych map" + +#~ msgid "Normalmaps strength" +#~ msgstr "Siła map normlanych" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Liczba iteracji dla parallax occlusion." + #~ msgid "Ok" #~ msgstr "OK" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Ogólny błąd systematyczny efektu zamykania paralaksy, zwykle skala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Całkowity efekt skalowania zamknięcia paralaksy." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Mapowanie paralaksy" + +#~ msgid "Parallax occlusion" +#~ msgstr "Zamknięcie paralaksy" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Błąd systematyczny zamknięcia paralaksy" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iteracje zamknięcia paralaksy" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Tryb zamknięcia paralaksy" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skala parallax occlusion" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Siła zamknięcia paralaksy" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Ścieżka do pliku .ttf lub bitmapy." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Ścieżka, pod którą zapisywane są zrzuty ekranu." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projekcja lochów" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Resetuj świat pojedynczego gracza" + +#~ msgid "Select Package File:" +#~ msgstr "Wybierz plik paczki:" + +#~ msgid "Shadow limit" +#~ msgstr "Limit cieni" + +#~ msgid "Start Singleplayer" +#~ msgstr "Tryb jednoosobowy" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Siła generowanych zwykłych map." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Siłą przyśpieszenia środkowego krzywej światła." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Ta czcionka zostanie użyta w niektórych językach." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Przełącz na tryb Cinematic" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Maksymalna, standardowa wysokość, powyżej lub poniżej średniego punktu " +#~ "górzystego terenu." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Zmienność wysokości wzgórz oraz głębokości jezior na gładkim terenie " +#~ "wznoszącym się." + +#~ msgid "Waving Water" +#~ msgstr "Falująca woda" + +#~ msgid "Waving water" +#~ msgstr "Falująca woda" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Określa czy lochy mają być czasem przez generowane teren." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y górnej granicy lawy dużych jaskiń." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "Wysokość średniego punktu wznoszącego się terenu oraz powierzchni jezior." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Wysokość do której rozciągają się cienie wznoszącego terenu." + +#~ msgid "Yes" +#~ msgstr "Tak" diff --git a/po/pt/minetest.po b/po/pt/minetest.po index cb8f1ee65..e79a3841d 100644 --- a/po/pt/minetest.po +++ b/po/pt/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Portuguese (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-12-10 19:29+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese 1.0 criam um afunilamento suave, adequado para a separação padrão." -"\n" +"Valores > 1.0 criam um afunilamento suave, adequado para a separação " +"padrão.\n" "terras flutuantes.\n" "Valores < 1,0 (por exemplo, 0,25) criam um nível de superfície mais definido " "com\n" @@ -3177,8 +3174,9 @@ msgstr "" "terrenos flutuantes." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS em menu de pausa" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Máximo FPS quando o jogo é pausado." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3502,10 +3500,6 @@ msgstr "Filtro de redimensionamento do interface gráfico" msgid "GUI scaling filter txr2img" msgstr "Filtro txr2img de redimensionamento do interface gráfico" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Gerar mapa de normais" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Chamadas de retorno Globais" @@ -3568,8 +3562,8 @@ msgstr "Tecla de comutação HUD" #, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Tratamento de chamadas ao API Lua obsoletas:\n" @@ -4109,6 +4103,11 @@ msgstr "ID do Joystick" msgid "Joystick button repetition interval" msgstr "Intervalo de repetição do botão do Joystick" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Tipo do Joystick" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Sensibilidade do frustum do Joystick" @@ -4209,6 +4208,17 @@ msgstr "" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para pular. \n" +"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4351,6 +4361,17 @@ msgstr "" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para pular. \n" +"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5106,10 +5127,6 @@ msgstr "Menor limite Y de dungeons." msgid "Main menu script" msgstr "Menu principal de scripts" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Estilo do menu principal" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5125,6 +5142,14 @@ msgstr "Faz o DirectX trabalhar com LuaJIT. Desative se causa problemas." msgid "Makes all liquids opaque" msgstr "Torna todos os líquidos opacos" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Diretório do mapa" @@ -5312,7 +5337,8 @@ msgid "Maximum FPS" msgstr "FPS máximo" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Máximo FPS quando o jogo é pausado." #: src/settings_translation_file.cpp @@ -5377,6 +5403,13 @@ msgstr "" "Definido em branco para uma quantidade apropriada ser escolhida " "automaticamente." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Número máximo de chunks carregados forçadamente." @@ -5634,14 +5667,6 @@ msgstr "Intervalo de NodeTimer" msgid "Noises" msgstr "Ruidos" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Amostragem de normalmaps" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Intensidade de normalmaps" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Número de seguimentos de emersão" @@ -5688,10 +5713,6 @@ msgstr "" "Esta é uma troca entre sobrecarga de transação do sqlite e consumo de " "memória (4096 = 100 MB, como uma regra de ouro)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Número de iterações de oclusão de paralaxe." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Repositório de conteúdo online" @@ -5719,34 +5740,6 @@ msgstr "" "Abre o menu de pausa quando o foco da janela é perdido.Não pausa se um " "formspec está aberto." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Enviesamento do efeito de oclusão de paralaxe, normalmente escala/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Escala do efeito de oclusão de paralaxe." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Oclusão de paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Enviesamento de oclusão paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Iterações de oclusão paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Modo de oclusão paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Escala de Oclusão de paralaxe" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5817,6 +5810,16 @@ msgstr "Tecla de movimento pitch" msgid "Pitch move mode" msgstr "Modo movimento pitch" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Tecla de voar" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Intervalo de repetição do clique direito" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5997,10 +6000,6 @@ msgstr "Ruído do tamanho de montanhas acidentadas" msgid "Right key" msgstr "Tecla para a direita" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Intervalo de repetição do clique direito" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Profundidade do canal do rio" @@ -6299,6 +6298,15 @@ msgstr "Mostrar informação de depuração" msgid "Show entity selection boxes" msgstr "Mostrar as caixas de seleção entidades" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Defina o idioma. Deixe vazio para usar a linguagem do sistema.\n" +"Apos mudar isso uma reinicialização é necessária." + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Mensagem de desligamento" @@ -6406,8 +6414,8 @@ msgid "" "(obviously, remote_media should end with a slash).\n" "Files that are not present will be fetched the usual way." msgstr "" -"Especifica a URL no qual os clientes buscam a mídia ao em vez de usar o UDP." -"\n" +"Especifica a URL no qual os clientes buscam a mídia ao em vez de usar o " +"UDP.\n" "$filename deve ser acessível de $remote_media$filename via cURL \n" "(obviamente, remote_media deve terminar com uma barra \"/\").\n" "Ficheiros que não estão presentes serão obtidos da maneira usual por UDP." @@ -6450,10 +6458,6 @@ msgstr "Extensão do ruído da montanha de passo" msgid "Strength of 3D mode parallax." msgstr "Intensidade de paralaxe." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Intensidade de normalmaps gerados." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6560,6 +6564,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "A url para o repositório de conteúdo" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "O identificador do joystick para usar" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6628,20 +6637,21 @@ msgstr "" "Isto deve ser configurado junto com o alcance_objeto_ativo." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Renderizador de fundo para o Irrlicht.\n" "Uma reinicialização é necessária após alterar isso.\n" "Note: no Android, use o OGLES1 caso em dúvida! A app pode falhar ao abrir em " "outro caso.\n" -"Em outras plataformas, OpenGL é recomdado, e é o único driver com suporte a " -"\n" +"Em outras plataformas, OpenGL é recomdado, e é o único driver com suporte " +"a \n" "sombreamento atualmente." #: src/settings_translation_file.cpp @@ -6677,6 +6687,12 @@ msgstr "" "pelo despejo \n" "de antigas filas de itens. Um valor 0 desativa a funcionalidade." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6686,10 +6702,10 @@ msgstr "" "quando pressionando uma combinação de botão no joystick." #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" "O tempo em segundos entre repetidos cliques direitos ao segurar o botão " "direito do mouse." @@ -6852,6 +6868,17 @@ msgstr "" "resolução.\n" "O downscaling correto de gama não é suportado." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Use a filtragem trilinear ao dimensionamento de texturas." @@ -7240,6 +7267,24 @@ msgstr "Nível Y de terreno inferior e solo oceânico." msgid "Y-level of seabed." msgstr "Nível Y do fundo do mar." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Tempo limite de descarregamento de ficheiro via cURL" @@ -7252,120 +7297,12 @@ msgstr "limite paralelo de cURL" msgid "cURL timeout" msgstr "Tempo limite de cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Ativar/Desativar câmera cinemática" - -#~ msgid "Select Package File:" -#~ msgstr "Selecionar o ficheiro do pacote:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Limite Y máximo de lava em grandes cavernas." - -#~ msgid "Waving Water" -#~ msgstr "Água ondulante" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." - -#~ msgid "Projecting dungeons" -#~ msgstr "Projetando dungeons" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Nível Y para o qual as sombras de ilhas flutuantes se estendem." - -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "" -#~ "Nível em Y do ponto médio da montanha flutuante e da superfície do lago." - -#~ msgid "Waving water" -#~ msgstr "Balançar das Ondas" - -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Variação da altura da colina e profundidade do lago no terreno liso da " -#~ "Terra Flutuante." - #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Altura máxima típica, acima e abaixo do ponto médio, do terreno da " -#~ "montanha flutuante." - -#~ msgid "This font will be used for certain languages." -#~ msgstr "Esta fonte será usada para determinados idiomas." - -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Força do aumento médio da curva de luz." - -#~ msgid "Shadow limit" -#~ msgstr "Limite de mapblock" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Caminho para TrueTypeFont ou bitmap." - -#~ msgid "Lightness sharpness" -#~ msgstr "Nitidez da iluminação" - -#~ msgid "Lava depth" -#~ msgstr "Profundidade da lava" - -#~ msgid "IPv6 support." -#~ msgstr "Suporte IPv6." - -#~ msgid "Gamma" -#~ msgstr "Gama" - -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Opacidade da sombra da fonte (entre 0 e 255)." - -#~ msgid "Floatland mountain height" -#~ msgstr "Altura da terra flutuante montanhosa" - -#~ msgid "Floatland base height noise" -#~ msgstr "Altura base de ruído de terra flutuante" - -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Ativa mapeamento de tons fílmico" - -#~ msgid "Enable VBO" -#~ msgstr "Ativar VBO" - -#~ msgid "" -#~ "Deprecated, define and locate cave liquids using biome definitions " -#~ "instead.\n" -#~ "Y of upper limit of lava in large caves." -#~ msgstr "" -#~ "Depreciar, definir e localizar líquidos de cavernas usando definições de " -#~ "biomas.\n" -#~ "Y do limite superior de lava em grandes cavernas." - -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "Define áreas de terra flutuante em terreno suavizado.\n" -#~ "Terrenos suavizados ocorrem quando o ruído é menor que zero." - -#~ msgid "Darkness sharpness" -#~ msgstr "Nitidez da escuridão" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "Controla a largura dos túneis, um valor menor cria túneis maiores." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n" -#~ "É um parâmetro adicionado ao valor de ruído 'mgv7_np_mountain'." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Centro do aumento da curva de luz." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " -#~ "ponto médio." +#~ "0 = oclusão paralaxe com dados de inclinação (mais rápido).\n" +#~ "1 = mapeamento de relevo (mais lento, mais preciso)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7376,20 +7313,289 @@ msgstr "Tempo limite de cURL" #~ "elevados são mais brilhantes.\n" #~ "Esta configuração é somente para o cliente e é ignorada pelo servidor." -#~ msgid "Path to save screenshots at." -#~ msgstr "Caminho para onde salvar screenshots." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " +#~ "ponto médio." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Força da oclusão paralaxe" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limite de filas emerge no disco" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Descarregando e instalando $1, por favor aguarde..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Tem a certeza que deseja reiniciar o seu mundo?" #~ msgid "Back" #~ msgstr "Voltar" +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapping" + +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Centro do aumento da curva de luz." + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Mudanças para a interface do menu principal:\n" +#~ "- Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de " +#~ "pacote de texturas, etc.\n" +#~ "- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de " +#~ "texturas. Pode ser \n" +#~ "necessário para ecrãs menores." + +#~ msgid "Config mods" +#~ msgstr "Configurar mods" + +#~ msgid "Configure" +#~ msgstr "Configurar" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n" +#~ "É um parâmetro adicionado ao valor de ruído 'mgv7_np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "Controla a largura dos túneis, um valor menor cria túneis maiores." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Cor do cursor (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Nitidez da escuridão" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Define áreas de terra flutuante em terreno suavizado.\n" +#~ "Terrenos suavizados ocorrem quando o ruído é menor que zero." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Define nível de amostragem de textura.\n" +#~ "Um valor mais alto resulta em mapas normais mais suaves." + +#~ msgid "" +#~ "Deprecated, define and locate cave liquids using biome definitions " +#~ "instead.\n" +#~ "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Depreciar, definir e localizar líquidos de cavernas usando definições de " +#~ "biomas.\n" +#~ "Y do limite superior de lava em grandes cavernas." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Descarregando e instalando $1, por favor aguarde..." + +#~ msgid "Enable VBO" +#~ msgstr "Ativar VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ativa o bumpmapping para texturas. Mapas normais devem ser fornecidos " +#~ "pelo pack de\n" +#~ "texturas ou gerado automaticamente.\n" +#~ "Requer que as sombras sejam ativadas." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Ativa mapeamento de tons fílmico" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Ativa geração de normalmap (efeito de relevo) ao voar.\n" +#~ "Requer texturização bump mapping para ser ativado." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ativa mapeamento de oclusão de paralaxe.\n" +#~ "Requer sombreadores ativados." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Opção experimental, pode causar espaços visíveis entre blocos\n" +#~ "quando definido com num úmero superior a 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS em menu de pausa" + +#~ msgid "Floatland base height noise" +#~ msgstr "Altura base de ruído de terra flutuante" + +#~ msgid "Floatland mountain height" +#~ msgstr "Altura da terra flutuante montanhosa" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Opacidade da sombra da fonte (entre 0 e 255)." + +#~ msgid "Gamma" +#~ msgstr "Gama" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Gerar Normal maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Gerar mapa de normais" + +#~ msgid "IPv6 support." +#~ msgstr "Suporte IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Profundidade da lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Nitidez da iluminação" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limite de filas emerge no disco" + +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Estilo do menu principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa em modo radar, zoom 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa em modo radar, zoom 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa em modo de superfície, zoom 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa em modo de superfície, zoom 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nome/palavra-passe" + +#~ msgid "No" +#~ msgstr "Não" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Amostragem de normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intensidade de normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Número de iterações de oclusão de paralaxe." + #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Enviesamento do efeito de oclusão de paralaxe, normalmente escala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Escala do efeito de oclusão de paralaxe." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Enviesamento de oclusão paralaxe" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iterações de oclusão paralaxe" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Modo de oclusão paralaxe" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Escala de Oclusão de paralaxe" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Força da oclusão paralaxe" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Caminho para TrueTypeFont ou bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Caminho para onde salvar screenshots." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projetando dungeons" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reiniciar mundo singleplayer" + +#~ msgid "Select Package File:" +#~ msgstr "Selecionar o ficheiro do pacote:" + +#~ msgid "Shadow limit" +#~ msgstr "Limite de mapblock" + +#~ msgid "Start Singleplayer" +#~ msgstr "Iniciar Um Jogador" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intensidade de normalmaps gerados." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Força do aumento médio da curva de luz." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Esta fonte será usada para determinados idiomas." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Ativar/Desativar câmera cinemática" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Altura máxima típica, acima e abaixo do ponto médio, do terreno da " +#~ "montanha flutuante." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variação da altura da colina e profundidade do lago no terreno liso da " +#~ "Terra Flutuante." + +#~ msgid "View" +#~ msgstr "Vista" + +#~ msgid "Waving Water" +#~ msgstr "Água ondulante" + +#~ msgid "Waving water" +#~ msgstr "Balançar das Ondas" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Limite Y máximo de lava em grandes cavernas." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "Nível em Y do ponto médio da montanha flutuante e da superfície do lago." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Nível Y para o qual as sombras de ilhas flutuantes se estendem." + +#~ msgid "Yes" +#~ msgstr "Sim" diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index 0deada45a..811834c6b 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-01-22 03:32+0000\n" "Last-Translator: Ronoaldo Pereira \n" "Language-Team: Portuguese (Brazil) 0." -#~ msgstr "" -#~ "Define áreas de Ilha Flutuante em terreno suavizado.\n" -#~ "Terrenos suavizados ocorrem quando o ruído é menor que zero." - -#~ msgid "Darkness sharpness" -#~ msgstr "Nitidez da escuridão" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Controla a largura dos túneis, um valor menor cria túneis mais largos." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n" -#~ "É um parâmetro adicionado ao valor de ruído 'mgv7_np_mountain'." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Centro do aumento da curva de luz." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " -#~ "ponto médio." +#~ "0 = oclusão paralaxe com dados de inclinação (mais rápido).\n" +#~ "1 = mapeamento de relevo (mais lento, mais preciso)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7365,20 +7312,280 @@ msgstr "Tempo limite de cURL" #~ "elevados são mais brilhantes.\n" #~ "Esta configuração é somente para o cliente e é ignorada pelo servidor." -#~ msgid "Path to save screenshots at." -#~ msgstr "Caminho para onde salvar screenshots." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " +#~ "ponto médio." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Insinsidade de oclusão de paralaxe" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limite de filas emerge no disco" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Baixando e instalando $1, por favor aguarde..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Você tem certeza que deseja resetar seu mundo um-jogador?" #~ msgid "Back" #~ msgstr "Backspace" +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapping" + +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Centro do aumento da curva de luz." + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Mudanças para a interface do menu principal:\n" +#~ " - Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de " +#~ "pacote de texturas, etc.\n" +#~ "- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de " +#~ "texturas. Pode ser necessário para telas menores." + +#~ msgid "Config mods" +#~ msgstr "Configurar Mods" + +#~ msgid "Configure" +#~ msgstr "Configurar" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n" +#~ "É um parâmetro adicionado ao valor de ruído 'mgv7_np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Controla a largura dos túneis, um valor menor cria túneis mais largos." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Cor do cursor (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Nitidez da escuridão" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Define áreas de Ilha Flutuante em terreno suavizado.\n" +#~ "Terrenos suavizados ocorrem quando o ruído é menor que zero." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Define processo amostral de textura.\n" +#~ "Um valor mais alto resulta em mapas de normais mais suaves." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Baixando e instalando $1, por favor aguarde..." + +#~ msgid "Enable VBO" +#~ msgstr "Habilitar VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ativar texturização bump mapping para texturas. Normalmaps precisam ser " +#~ "fornecidos pelo\n" +#~ "pacote de textura ou a necessidade de ser auto-gerada.\n" +#~ "Requer shaders a serem ativados." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Habilitar efeito \"filmic tone mapping\"" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Ativa geração de normalmap (efeito de relevo) ao voar.\n" +#~ "Requer texturização bump mapping para ser ativado." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ativar mapeamento de oclusão de paralaxe.\n" +#~ "Requer shaders a serem ativados." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Opção experimental, pode causar espaços visíveis entre blocos\n" +#~ "quando definido como número maior do que 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS no menu de pausa" + +#~ msgid "Floatland base height noise" +#~ msgstr "Altura base de ruído de Ilha Flutuante" + +#~ msgid "Floatland mountain height" +#~ msgstr "Altura da Ilha Flutuante montanhosa" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Fonte alpha de sombra (opacidade, entre 0 e 255)." + +#~ msgid "Gamma" +#~ msgstr "Gama" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Gerar Normal maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Gerar mapa de normais" + +#~ msgid "IPv6 support." +#~ msgstr "Suporte a IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Profundidade da lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Nitidez da iluminação" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limite de filas emerge no disco" + +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Estilo do menu principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa em modo radar, zoom 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa em modo radar, zoom 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa em modo de superfície, zoom 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa em modo de superfície, zoom 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nome / Senha" + +#~ msgid "No" +#~ msgstr "Não" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Amostragem de normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intensidade de normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Número de iterações de oclusão de paralaxe." + #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Viés geral do efeito de oclusão de paralaxe, geralmente de escala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Escala global do efeito de oclusão de paralaxe." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Viés de oclusão de paralaxe" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iterações de oclusão de paralaxe" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Modo de oclusão de paralaxe" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Escala de Oclusão de paralaxe" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Insinsidade de oclusão de paralaxe" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Caminho para TrueTypeFont ou bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Caminho para onde salvar screenshots." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projetando dungeons" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Resetar mundo um-jogador" + +#~ msgid "Select Package File:" +#~ msgstr "Selecionar o arquivo do pacote:" + +#~ msgid "Shadow limit" +#~ msgstr "Limite de mapblock" + +#~ msgid "Start Singleplayer" +#~ msgstr "Iniciar Um jogador" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intensidade de normalmaps gerados." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Força do aumento médio da curva de luz." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Esta fonte será usada para determinados idiomas." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Alternar modo de câmera cinemática" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Altura máxima típica, acima e abaixo do ponto médio, do terreno da " +#~ "montanha flutuante." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variação da altura da colina e profundidade do lago no terreno liso da " +#~ "Terra Flutuante." + +#~ msgid "View" +#~ msgstr "Vista" + +#~ msgid "Waving Water" +#~ msgstr "Ondas na água" + +#~ msgid "Waving water" +#~ msgstr "Balanço da água" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Limite Y máximo de lava em grandes cavernas." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "Nível em Y do ponto médio da montanha flutuante e da superfície do lago." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Nível Y para o qual as sombras de ilhas flutuantes se estendem." + +#~ msgid "Yes" +#~ msgstr "Sim" diff --git a/po/ro/minetest.po b/po/ro/minetest.po index cf239c0c8..ba54a3f65 100644 --- a/po/ro/minetest.po +++ b/po/ro/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Romanian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-11-24 11:29+0000\n" "Last-Translator: Nicolae Crefelean \n" "Language-Team: Romanian \n" "Language-Team: Russian 0." -#~ msgstr "" -#~ "Определяет области гладкой поверхности на парящих островах.\n" -#~ "Гладкие парящие острова появляются, когда шум больше ноля." - -#~ msgid "Darkness sharpness" -#~ msgstr "Резкость темноты" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Контролирует ширину тоннелей. Меньшие значения создают более широкие " -#~ "тоннели." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Контролирует плотность горной местности парящих островов.\n" -#~ "Является смещением, добавляемым к значению шума 'mgv7_np_mountain'." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Центр среднего подъёма кривой света." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "Управляет сужением островов горного типа ниже средней точки." +#~ "0 = Параллакс окклюзии с информацией о склоне (быстро).\n" +#~ "1 = Рельефный маппинг (медленно, но качественно)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7379,22 +7324,286 @@ msgstr "cURL тайм-аут" #~ "ярче.\n" #~ "Этот параметр предназначен только для клиента и игнорируется сервером." -#~ msgid "Path to save screenshots at." -#~ msgstr "Путь для сохранения скриншотов." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "Управляет сужением островов горного типа ниже средней точки." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Сила параллакса" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Уверены, что хотите сбросить мир одиночной игры?" -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Ограничение очередей emerge на диске" +#~ msgid "Back" +#~ msgstr "Назад" + +#~ msgid "Bump Mapping" +#~ msgstr "Бампмаппинг" + +#~ msgid "Bumpmapping" +#~ msgstr "Бампмаппинг" + +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Центр среднего подъёма кривой света." + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Изменение интерфейса в главном меню:\n" +#~ "- Full: несколько однопользовательских миров, выбор игры, выбор пакета " +#~ "текстур и т. д.\n" +#~ "- Simple: один однопользовательский мир без выбора игр или текстур. " +#~ "Может быть полезно для небольших экранов." + +#~ msgid "Config mods" +#~ msgstr "Настройка модов" + +#~ msgid "Configure" +#~ msgstr "Настроить" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Контролирует плотность горной местности парящих островов.\n" +#~ "Является смещением, добавляемым к значению шума 'mgv7_np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Контролирует ширину тоннелей. Меньшие значения создают более широкие " +#~ "тоннели." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Цвет перекрестия (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Резкость темноты" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Определяет области гладкой поверхности на парящих островах.\n" +#~ "Гладкие парящие острова появляются, когда шум больше ноля." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Определяет шаг выборки текстуры.\n" +#~ "Более высокое значение приводит к более гладким картам нормалей." + +#~ msgid "" +#~ "Deprecated, define and locate cave liquids using biome definitions " +#~ "instead.\n" +#~ "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Устарело, определяет и располагает жидкости в пещерах с использованием " +#~ "определений биома.\n" +#~ "Y верхней границы лавы в больших пещерах." #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "" #~ "Загружается и устанавливается $1.\n" #~ "Пожалуйста, подождите..." -#~ msgid "Back" -#~ msgstr "Назад" +#~ msgid "Enable VBO" +#~ msgstr "Включить объекты буфера вершин (VBO)" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Включает бампмаппинг для текстур. Карты нормалей должны быть " +#~ "предоставлены\n" +#~ "пакетом текстур или сгенерированы автоматически.\n" +#~ "Требует, чтобы шейдеры были включены." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Включить кинематографическое тональное отображение" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Включает генерацию карт нормалей \"на лету\" (эффект тиснения).\n" +#~ "Требует, чтобы бампмаппинг был включён." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Включает Parallax Occlusion.\n" +#~ "Требует, чтобы шейдеры были включены." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Экспериментальная опция, может привести к видимым зазорам\n" +#~ "между блоками, когда значение больше, чем 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "Кадровая частота во время паузы" + +#~ msgid "Floatland base height noise" +#~ msgstr "Шум базовой высоты парящих островов" + +#~ msgid "Floatland mountain height" +#~ msgstr "Высота гор на парящих островах" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Прозрачность тени шрифта (непрозрачность от 0 до 255)." + +#~ msgid "Gamma" +#~ msgstr "Гамма" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Создавать карты нормалей" + +#~ msgid "Generate normalmaps" +#~ msgstr "Генерировать карты нормалей" + +#~ msgid "IPv6 support." +#~ msgstr "Поддержка IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Глубина лавы" + +#~ msgid "Lightness sharpness" +#~ msgstr "Резкость освещённости" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Ограничение очередей emerge на диске" + +#~ msgid "Main" +#~ msgstr "Главное меню" + +#~ msgid "Main menu style" +#~ msgstr "Стиль главного меню" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Миникарта в режиме радара, увеличение x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Миникарта в режиме радара, увеличение x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Миникарта в поверхностном режиме, увеличение x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Миникарта в поверхностном режиме, увеличение x4" + +#~ msgid "Name/Password" +#~ msgstr "Имя/Пароль" + +#~ msgid "No" +#~ msgstr "Нет" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Выборка карт нормалей" + +#~ msgid "Normalmaps strength" +#~ msgstr "Сила карт нормалей" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Количество итераций Parallax Occlusion." #~ msgid "Ok" #~ msgstr "Oк" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Общее смещение эффекта Parallax Occlusion, обычно масштаб/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Общее смещение эффекта Parallax Occlusion." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Объёмные текстуры" + +#~ msgid "Parallax occlusion" +#~ msgstr "Включить параллакс" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Смещение параллакса" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Повторение параллакса" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Режим параллакса" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Масштаб параллаксной окклюзии" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Сила параллакса" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Путь к шрифту TrueType или картинке со шрифтом." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Путь для сохранения скриншотов." + +#~ msgid "Projecting dungeons" +#~ msgstr "Проступающие подземелья" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Сброс одиночной игры" + +#~ msgid "Select Package File:" +#~ msgstr "Выберите файл дополнения:" + +#~ msgid "Shadow limit" +#~ msgstr "Лимит теней" + +#~ msgid "Start Singleplayer" +#~ msgstr "Начать одиночную игру" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Сила сгенерированных карт нормалей." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Сила среднего подъёма кривой света." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Этот шрифт будет использован для некоторых языков." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Кино" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Типичная максимальная высота, выше и ниже средней точки гор парящих " +#~ "островов." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Вариация высоты холмов и глубин озёр на гладкой местности парящих " +#~ "островов." + +#~ msgid "View" +#~ msgstr "Вид" + +#~ msgid "Waving Water" +#~ msgstr "Волны на воде" + +#~ msgid "Waving water" +#~ msgstr "Волны на воде" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Верхний предел по Y для больших псевдослучайных пещер." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Y-уровень середины поплавка и поверхности озера." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-уровень, на который распространяются тени с плавающей точкой." + +#~ msgid "Yes" +#~ msgstr "Да" diff --git a/po/sk/minetest.po b/po/sk/minetest.po index 62e4dcae5..3c4009c00 100644 --- a/po/sk/minetest.po +++ b/po/sk/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-11-17 08:28+0000\n" "Last-Translator: Marian \n" "Language-Team: Slovak =2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 4.4-dev\n" -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "Zomrel si" - #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" msgstr "Oživiť" +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Zomrel si" + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "OK" -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "Server požadoval obnovu spojenia:" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "Znova pripojiť" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "Hlavné menu" - #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" msgstr "Chyba v lua skripte:" @@ -51,47 +39,81 @@ msgstr "Chyba v lua skripte:" msgid "An error occurred:" msgstr "Chyba:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Nahrávam..." +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "Hlavné menu" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "Znova pripojiť" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "Server požadoval obnovu spojenia:" #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Skús znova povoliť verejný zoznam serverov a skontroluj internetové " -"pripojenie." - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "Server podporuje verzie protokolov: $1 - $2. " +msgid "Protocol version mismatch. " +msgstr "Nesúhlas verzií protokolov. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " msgstr "Server vyžaduje protokol verzie $1. " #: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "Podporujeme verzie protokolov: $1 - $2." +msgid "Server supports protocol versions between $1 and $2. " +msgstr "Server podporuje verzie protokolov: $1 - $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Podporujeme len protokol verzie $1." #: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "Nesúhlas verzií protokolov. " +msgid "We support protocol versions between version $1 and $2." +msgstr "Podporujeme verzie protokolov: $1 - $2." + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "Zruš" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "Závislosti:" #: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "Svet:" +msgid "Disable all" +msgstr "Deaktivuj všetko" #: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "Popis balíka rozšírení nie je k dispozícií." +msgid "Disable modpack" +msgstr "Deaktivuj balíček rozšírení" #: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "Popis hry nie je k dispozícií." +msgid "Enable all" +msgstr "Aktivuj všetko" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "Aktivuj balíček rozšírení" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" +"Nepodarilo sa aktivovať rozšírenie \"$1\" lebo obsahuje nepovolené znaky. " +"Povolené sú len znaky [a-z0-9_]." + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Find More Mods" +msgstr "Nájdi viac rozšírení" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -101,175 +123,249 @@ msgstr "Mod:" msgid "No (optional) dependencies" msgstr "Bez (voliteľných) závislostí" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "Popis hry nie je k dispozícií." + #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" msgstr "Bez povinných závislostí" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "Voliteľné závislosti:" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "Závislosti:" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "Popis balíka rozšírení nie je k dispozícií." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" msgstr "Bez voliteľných závislostí" +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "Voliteľné závislosti:" + #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" msgstr "Ulož" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "Zruš" - #: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "Nájdi viac rozšírení" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "Deaktivuj balíček rozšírení" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "Aktivuj balíček rozšírení" +msgid "World:" +msgstr "Svet:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" msgstr "aktívne" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "Deaktivuj všetko" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "Aktivuj všetko" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" msgstr "" -"Nepodarilo sa aktivovať rozšírenie \"$1\" lebo obsahuje nepovolené znaky. " -"Povolené sú len znaky [a-z0-9_]." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Sťahujem..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "All packages" +msgstr "Všetky balíčky" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Klávesa sa už používa" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back to Main Menu" +msgstr "Naspäť do hlavného menu" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Hosťuj hru" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB nie je k dispozícií ak bol Minetest skompilovaný bez cURL" #: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "Všetky balíčky" +msgid "Downloading..." +msgstr "Sťahujem..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "Nepodarilo sa stiahnuť $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" msgstr "Hry" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "Inštaluj" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Inštaluj" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Voliteľné závislosti:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Rozšírenia" -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "Balíčky textúr" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "Nepodarilo sa stiahnuť $1" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Hľadaj" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" -msgstr "Naspäť do hlavného menu" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "Bez výsledku" - #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" msgstr "Nepodarilo sa stiahnuť žiadne balíčky" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "Sťahujem..." +msgid "No results" +msgstr "Bez výsledku" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "Inštaluj" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" +#, fuzzy +msgid "No updates" msgstr "Aktualizuj" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Not found" +msgstr "Stíš hlasitosť" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "Balíčky textúr" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" msgstr "Odinštaluj" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Zobraziť" +msgid "Update" +msgstr "Aktualizuj" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "Jaskyne" +msgid "A world named \"$1\" already exists" +msgstr "Svet menom \"$1\" už existuje" #: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "Obrovské jaskyne hlboko v podzemí" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "Rieky na úrovni hladiny mora" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "Rieky" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "Hory" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "Lietajúce krajiny (experimentálne)" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "Poletujúce pevniny na oblohe" +msgid "Additional terrain" +msgstr "Dodatočný terén" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "Ochladenie s nadmorskou výškou" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "Znižuje teplotu s nadmorskou výškou" - #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" msgstr "Sucho v nadmorskej výške" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "Znižuje vlhkosť s nadmorskou výškou" +msgid "Biome blending" +msgstr "Miešanie ekosystémov" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biomes" +msgstr "Ekosystémy" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caverns" +msgstr "Jaskyne" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caves" +msgstr "Jaskyne" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "Vytvor" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Decorations" +msgstr "Dekorácie" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "Stiahni si hru, ako napr. Minetest Game z minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "Stiahni jednu z minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Dungeons" +msgstr "Kobky" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Flat terrain" +msgstr "Rovný terén" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floating landmasses in the sky" +msgstr "Poletujúce pevniny na oblohe" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floatlands (experimental)" +msgstr "Lietajúce krajiny (experimentálne)" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "Hra" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Generate non-fractal terrain: Oceans and underground" +msgstr "Generuj nefragmentovaný terén: oceány a podzemie" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Hills" +msgstr "Kopce" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -280,8 +376,8 @@ msgid "Increases humidity around rivers" msgstr "Zvyšuje vlhkosť v okolí riek" #: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "Premenlivá hĺbka riek" +msgid "Lakes" +msgstr "Jazerá" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" @@ -289,69 +385,58 @@ msgstr "" "Nízka vlhkosť a vysoké teploty spôsobujú znižovanie hladín, alebo vysychanie " "riek" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "Kopce" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "Generátor mapy" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "Príznaky generátora máp" #: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "Jazerá" +msgid "Mapgen-specific flags" +msgstr "Špecifické príznaky generátora máp" #: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "Dodatočný terén" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "Generuj nefragmentovaný terén: oceány a podzemie" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "Stromy a vysoká tráva" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "Rovný terén" +msgid "Mountains" +msgstr "Hory" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" msgstr "Prúd bahna" #: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "Erózia terénu" +msgid "Network of tunnels and caves" +msgstr "Sieť tunelov a jaskýň" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "Mierne pásmo, Púšť, Džungľa, Tundra, Tajga" +msgid "No game selected" +msgstr "Nie je zvolená hra" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "Mierne pásmo, Púšť, Džungľa" +msgid "Reduces heat with altitude" +msgstr "Znižuje teplotu s nadmorskou výškou" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "Mierne pásmo, Púšť" +msgid "Reduces humidity with altitude" +msgstr "Znižuje vlhkosť s nadmorskou výškou" #: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "Nie je nainštalovaná žiadna hra." +msgid "Rivers" +msgstr "Rieky" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "Stiahni jednu z minetest.net" +msgid "Sea level rivers" +msgstr "Rieky na úrovni hladiny mora" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "Jaskyne" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "Semienko" #: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "Kobky" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "Dekorácie" +msgid "Smooth transition between biomes" +msgstr "Plynulý prechod medzi ekosystémami" #: builtin/mainmenu/dlg_create_world.lua msgid "" @@ -366,65 +451,44 @@ msgid "Structures appearing on the terrain, typically trees and plants" msgstr "Štruktúry objavujúce sa na povrchu, typicky stromy a rastliny" #: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "Sieť tunelov a jaskýň" +msgid "Temperate, Desert" +msgstr "Mierne pásmo, Púšť" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "Ekosystémy" +msgid "Temperate, Desert, Jungle" +msgstr "Mierne pásmo, Púšť, Džungľa" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "Miešanie ekosystémov" +msgid "Temperate, Desert, Jungle, Tundra, Taiga" +msgstr "Mierne pásmo, Púšť, Džungľa, Tundra, Tajga" #: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "Plynulý prechod medzi ekosystémami" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "Príznaky generátora máp" +msgid "Terrain surface erosion" +msgstr "Erózia terénu" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "Špecifické príznaky generátora máp" +msgid "Trees and jungle grass" +msgstr "Stromy a vysoká tráva" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Vary river depth" +msgstr "Premenlivá hĺbka riek" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Very large caverns deep in the underground" +msgstr "Obrovské jaskyne hlboko v podzemí" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." msgstr "Varovanie: Vývojarský Test je určený vývojárom." -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "Stiahni si hru, ako napr. Minetest Game z minetest.net" - #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "Meno sveta" #: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "Semienko" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "Generátor mapy" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "Hra" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "Vytvor" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "Svet menom \"$1\" už existuje" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "Nie je zvolená hra" +msgid "You have no games installed." +msgstr "Nie je nainštalovaná žiadna hra." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" @@ -452,6 +516,10 @@ msgstr "Zmazať svet \"$1\"?" msgid "Accept" msgstr "Prijať" +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "Premenuj balíček rozšírení:" + #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " @@ -460,57 +528,121 @@ msgstr "" "Tento balíček rozšírení má vo svojom modpack.conf explicitne zadané meno, " "ktoré prepíše akékoľvek tunajšie premenovanie." -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "Premenuj balíček rozšírení:" - #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "Vypnuté" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "Aktivované" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "Prehliadaj" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "Ofset" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "Mierka" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "Rozptyl X" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "Rozptyl Y" +msgid "(No description of setting given)" +msgstr "(Nie je zadaný popis nastavenia)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" msgstr "2D šum" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "Rozptyl Z" +msgid "< Back to Settings page" +msgstr "< Späť na nastavenia" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "Prehliadaj" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "Vypnuté" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "Upraviť" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "Aktivované" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Lacunarity" +msgstr "Lakunarita" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" msgstr "Oktávy" +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "Ofset" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" msgstr "Vytrvalosť" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "Lakunarita" +msgid "Please enter a valid integer." +msgstr "Prosím zadaj platné celé číslo." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "Prosím vlož platné číslo." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "Obnov štandardné hodnoty" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "Mierka" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Hľadaj" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select directory" +msgstr "Zvoľ adresár" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select file" +msgstr "Zvoľ súbor" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "Zobraz technické názvy" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "Hodnota musí byť najmenej $1." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "Hodnota nesmie byť vyššia ako $1." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X" +msgstr "X" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X spread" +msgstr "Rozptyl X" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y" +msgstr "Y" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y spread" +msgstr "Rozptyl Y" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z" +msgstr "Z" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z spread" +msgstr "Rozptyl Z" + +#. ~ "absvalue" is a noise parameter flag. +#. It is short for "absolute value". +#. It can be enabled in noise settings in +#. main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" +msgstr "Absolútna hodnota (absvalue)" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options @@ -527,89 +659,22 @@ msgstr "štandardné hodnoty (defaults)" msgid "eased" msgstr "zjemnené (eased)" -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "Absolútna hodnota (absvalue)" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "X" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "Y" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "Z" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "(Nie je zadaný popis nastavenia)" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "Prosím zadaj platné celé číslo." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "Hodnota musí byť najmenej $1." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "Hodnota nesmie byť vyššia ako $1." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "Prosím vlož platné číslo." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "Zvoľ adresár" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "Zvoľ súbor" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "< Späť na nastavenia" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "Upraviť" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "Obnov štandardné hodnoty" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "Zobraz technické názvy" - #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" msgstr "$1 (Aktivované)" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "Nie je možné nainštalovať $1 ako balíček textúr" +msgid "$1 mods" +msgstr "$1 rozšírenia" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" msgstr "Zlyhala inštalácia $1 na $2" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "Nie je možné nájsť platné rozšírenie, alebo balíček rozšírení" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "Nie je možné nainštalovať balíček rozšírení $1" +msgid "Install Mod: Unable to find real mod name for: $1" +msgstr "" +"Inštalácia rozšírenia: Nie je možné nájsť skutočné meno rozšírenia pre: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" @@ -618,37 +683,66 @@ msgstr "" "rozšírení $1" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "Nie je možné nainštalovať rozšírenie $1" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" -"Inštalácia rozšírenia: Nie je možné nájsť skutočné meno rozšírenia pre: $1" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "Nie je možné nainštalovať hru $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" +msgstr "Inštalácia: Nepodporovaný typ súboru \"$1\", alebo poškodený archív" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" msgstr "Inštalácia: súbor: \"$1\"" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "Inštalácia: Nepodporovaný typ súboru \"$1\", alebo poškodený archív" +msgid "Unable to find a valid mod or modpack" +msgstr "Nie je možné nájsť platné rozšírenie, alebo balíček rozšírení" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "$1 rozšírenia" +msgid "Unable to install a $1 as a texture pack" +msgstr "Nie je možné nainštalovať $1 ako balíček textúr" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "Nie je možné nainštalovať hru $1" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "Nie je možné nainštalovať rozšírenie $1" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "Nie je možné nainštalovať balíček rozšírení $1" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Nahrávam..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Skús znova povoliť verejný zoznam serverov a skontroluj internetové " +"pripojenie." + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "Hľadaj nový obsah na internete" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "Doplnky" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "Deaktivuj balíček textúr" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" +msgstr "Informácie:" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" msgstr "Nainštalované balíčky:" #: builtin/mainmenu/tab_content.lua -msgid "Browse online content" -msgstr "Hľadaj nový obsah na internete" +msgid "No dependencies." +msgstr "Bez závislostí." #: builtin/mainmenu/tab_content.lua msgid "No package description available" @@ -658,109 +752,110 @@ msgstr "Nie je k dispozícií popis balíčka" msgid "Rename" msgstr "Premenuj" -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "Bez závislostí." - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "Deaktivuj balíček textúr" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "Použi balíček textúr" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "Informácie:" - #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" msgstr "Odinštaluj balíček" #: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "Doplnky" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "Poďakovanie" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" -msgstr "Hlavný vývojari" +msgid "Use Texture Pack" +msgstr "Použi balíček textúr" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" msgstr "Aktívny prispievatelia" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "Predchádzajúci hlavný vývojári" +msgid "Core Developers" +msgstr "Hlavný vývojari" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "Poďakovanie" + +#: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Zvoľ adresár" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "Predchádzajúci prispievatelia" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "Inštaluj hry z ContentDB" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurácia" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "Nový" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "Zvoľ si svet:" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "Kreatívny mód" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "Aktivuj zranenie" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "Hosťuj server" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "Hosťuj hru" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "Predchádzajúci hlavný vývojári" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" msgstr "Zverejni server" -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Meno/Heslo" - #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "Priraď adresu" #: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "Port" +msgid "Creative Mode" +msgstr "Kreatívny mód" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "Port servera" +msgid "Enable Damage" +msgstr "Aktivuj zranenie" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "Hosťuj hru" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "Hosťuj server" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "Inštaluj hry z ContentDB" + +#: builtin/mainmenu/tab_local.lua +msgid "Name" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "Nový" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "Nie je vytvorený ani zvolený svet!" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Staré heslo" #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Hraj hru" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "Nie je vytvorený ani zvolený svet!" +msgid "Port" +msgstr "Port" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Zvoľ si svet:" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "Zvoľ si svet:" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "Port servera" #: builtin/mainmenu/tab_local.lua msgid "Start Game" @@ -770,95 +865,51 @@ msgstr "Spusti hru" msgid "Address / Port" msgstr "Adresa / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "Meno / Heslo" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Pripojiť sa" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "Zmaž obľúbené" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "Obľúbené" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "Ping" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Kreatívny mód" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Poškodenie je aktivované" -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "PvP je aktívne" +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" +msgstr "Zmaž obľúbené" + +#: builtin/mainmenu/tab_online.lua +msgid "Favorite" +msgstr "Obľúbené" #: builtin/mainmenu/tab_online.lua msgid "Join Game" msgstr "Pripoj sa do hry" -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "Nepriehľadné listy" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" +msgstr "Meno / Heslo" -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "Jednoduché listy" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" +msgstr "Ping" -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "Ozdobné listy" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "Obrys kocky" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "Nasvietenie kocky" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "Žiadne" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "Žiaden filter" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "Bilineárny filter" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "Trilineárny filter" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "Žiadne Mipmapy" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "Mipmapy" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "Mipmapy + Aniso. filter" +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua +msgid "PvP enabled" +msgstr "PvP je aktívne" #: builtin/mainmenu/tab_settings.lua msgid "2x" msgstr "2x" +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "3D mraky" + #: builtin/mainmenu/tab_settings.lua msgid "4x" msgstr "4x" @@ -868,129 +919,150 @@ msgid "8x" msgstr "8x" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Si si istý, že chceš vynulovať svoj svet jedného hráča?" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Áno" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nie" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "Jemné osvetlenie" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "Častice" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "3D mraky" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "Nepriehľadná voda" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "Prepojené sklo" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "Textúrovanie:" +msgid "All Settings" +msgstr "Všetky nastavenia" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "Vyhladzovanie:" -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "Zobrazenie:" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Automat. ulož. veľkosti okna" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "Shadery" - #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "Shadery (nedostupné)" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Vynuluj svet jedného hráča" +msgid "Bilinear Filter" +msgstr "Bilineárny filter" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Zmeň ovládacie klávesy" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "Všetky nastavenia" +msgid "Connected Glass" +msgstr "Prepojené sklo" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "Dotykový prah: (px)" +msgid "Fancy Leaves" +msgstr "Ozdobné listy" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bump Mapping (Ilúzia nerovnosti)" +msgid "Mipmap" +msgstr "Mipmapy" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "Mipmapy + Aniso. filter" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "Žiaden filter" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "Žiadne Mipmapy" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "Nasvietenie kocky" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "Obrys kocky" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "Žiadne" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "Nepriehľadné listy" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "Nepriehľadná voda" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "Častice" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "Zobrazenie:" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "Nastavenia" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "Shadery" + +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Lietajúce krajiny (experimentálne)" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "Shadery (nedostupné)" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "Jednoduché listy" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "Jemné osvetlenie" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "Textúrovanie:" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "Aby mohli byť aktivované shadery, musí sa použiť OpenGL." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" msgstr "Tone Mapping (Optim. farieb)" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Normal Maps (nerovnosti)" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax Occlusion (nerovnosti)" +msgid "Touchthreshold: (px)" +msgstr "Dotykový prah: (px)" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "Vlniace sa kvapaliny" +msgid "Trilinear Filter" +msgstr "Trilineárny filter" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" msgstr "Vlniace sa listy" +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "Vlniace sa kvapaliny" + #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "Vlniace sa rastliny" -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "Aby mohli byť aktivované shadery, musí sa použiť OpenGL." - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "Nastavenia" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Spusti hru pre jedného hráča" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Nastav rozšírenia" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Hlavné" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Časový limit pripojenia vypršal." +#: src/client/client.cpp +msgid "Done!" +msgstr "Hotovo!" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "Inicializujem kocky" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "Inicializujem kocky..." + #: src/client/client.cpp msgid "Loading textures..." msgstr "Nahrávam textúry..." @@ -999,46 +1071,10 @@ msgstr "Nahrávam textúry..." msgid "Rebuilding shaders..." msgstr "Obnovujem shadery..." -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "Inicializujem kocky..." - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "Inicializujem kocky" - -#: src/client/client.cpp -msgid "Done!" -msgstr "Hotovo!" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "Hlavné menu" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "Meno hráča je príliš dlhé." - #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "Chyba spojenia (časový limit?)" -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "Dodaný súbor s heslom nie je možné otvoriť: " - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "Prosím zvoľ si meno!" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "Nie je zvolený svet ani poskytnutá adresa. Niet čo robiť." - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "Zadaná cesta k svetu neexistuje: " - #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" msgstr "Nie je možné nájsť alebo nahrať hru \"" @@ -1047,6 +1083,30 @@ msgstr "Nie je možné nájsť alebo nahrať hru \"" msgid "Invalid gamespec." msgstr "Chybná špec. hry." +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "Hlavné menu" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "Nie je zvolený svet ani poskytnutá adresa. Niet čo robiť." + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "Meno hráča je príliš dlhé." + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "Prosím zvoľ si meno!" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "Dodaný súbor s heslom nie je možné otvoriť: " + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "Zadaná cesta k svetu neexistuje: " + #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" #. into the translation field (literally). @@ -1060,194 +1120,53 @@ msgid "needs_fallback_font" msgstr "no" #: src/client/game.cpp -msgid "Shutting down..." -msgstr "Vypínam..." - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "Vytváram server..." - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "Vytváram klienta..." - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "Prekladám adresu..." - -#: src/client/game.cpp -msgid "Connecting to server..." -msgstr "Pripájam sa k serveru..." - -#: src/client/game.cpp -msgid "Item definitions..." -msgstr "Definície vecí..." - -#: src/client/game.cpp -msgid "Node definitions..." -msgstr "Definície kocky..." - -#: src/client/game.cpp -msgid "Media..." -msgstr "Média..." - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "KiB/s" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "MiB/s" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "Skriptovanie na strane klienta je zakázané" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "Zvuk je stlmený" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "Zvuk je obnovený" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "Zvukový systém je zakázaný" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "Hlasitosť zmenená na %d%%" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "Zvukový systém nie je podporovaný v tomto zostavení" - -#: src/client/game.cpp -msgid "ok" -msgstr "ok" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "Režim lietania je aktívny" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Režim lietania je aktívny (poznámka: chýba právo 'fly')" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "Režim lietania je zakázaný" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "Režim pohybu podľa sklonu je aktívny" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "Režim pohybu podľa sklonu je zakázaný" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "Rýchly režim je aktívny" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Rýchly režim je aktivovaný (poznámka: chýba právo 'fast')" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "Rýchly režim je zakázaný" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "Režim prechádzania stenami je aktivovaný" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgid "" +"\n" +"Check debug.txt for details." msgstr "" -"Režim prechádzania stenami je aktivovaný (poznámka: chýba právo 'noclip')" +"\n" +"Pozri detaily v debug.txt." #: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "Režim prechádzania stenami je zakázaný" +msgid "- Address: " +msgstr "- Adresa: " #: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "Filmový režim je aktivovaný" +msgid "- Creative Mode: " +msgstr "- Kreatívny mód: " #: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "Filmový režim je zakázaný" +msgid "- Damage: " +msgstr "- Poškodenie: " #: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "Automatický pohyb vpred je aktivovaný" +msgid "- Mode: " +msgstr "- Mode: " + +#: src/client/game.cpp +msgid "- Port: " +msgstr "- Port: " + +#: src/client/game.cpp +msgid "- Public: " +msgstr "- Verejný: " + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +msgid "- PvP: " +msgstr "- PvP: " + +#: src/client/game.cpp +msgid "- Server Name: " +msgstr "- Meno servera: " #: src/client/game.cpp msgid "Automatic forward disabled" msgstr "Automatický pohyb vpred je zakázaný" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minimapa v povrchovom režime, priblíženie x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minimapa v povrchovom režime, priblíženie x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minimapa v povrchovom režime, priblíženie x4" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Minimapa v radarovom režime, priblíženie x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Minimapa v radarovom režime, priblíženie x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Minimapa v radarovom režime, priblíženie x4" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Minimapa je skrytá" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "Minimapa je aktuálne zakázaná hrou, alebo rozšírením" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "Hmla je vypnutá" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "Hmla je aktivovaná" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "Ladiace informácie zobrazené" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "Profilový graf je zobrazený" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "Obrysy zobrazené" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "Ladiace informácie, Profilový graf a Obrysy sú skryté" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "Ladiace informácie a Profilový graf sú skryté" +msgid "Automatic forward enabled" +msgstr "Automatický pohyb vpred je aktivovaný" #: src/client/game.cpp msgid "Camera update disabled" @@ -1258,31 +1177,81 @@ msgid "Camera update enabled" msgstr "Aktualizácia kamery je aktivovaná" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "Dohľadnosť je na maxime: %d" +msgid "Change Password" +msgstr "Zmeniť heslo" #: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "Dohľadnosť je zmenená na %d" +msgid "Cinematic mode disabled" +msgstr "Filmový režim je zakázaný" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "Dohľadnosť je na minime: %d" +msgid "Cinematic mode enabled" +msgstr "Filmový režim je aktivovaný" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "Neobmedzená dohľadnosť je aktivovaná" +msgid "Client side scripting is disabled" +msgstr "Skriptovanie na strane klienta je zakázané" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "Neobmedzená dohľadnosť je zakázaná" +msgid "Connecting to server..." +msgstr "Pripájam sa k serveru..." #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" -msgstr "Zväčšenie je zakázané hrou, alebo rozšírením" +msgid "Continue" +msgstr "Pokračuj" + +#: src/client/game.cpp +#, fuzzy, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" +"Ovládanie:\n" +"- %s: pohyb vpred\n" +"- %s: pohyb vzad\n" +"- %s: pohyb doľava\n" +"- %s: pohyb doprava\n" +"- %s: skoč/vylez\n" +"- %s: zakrádaj sa/choď dole\n" +"- %s: polož vec\n" +"- %s: inventár\n" +"- Myš: otoč sa/obzeraj sa\n" +"- Myš, ľavé tlačítko: kopaj/udri\n" +"- Myš, pravé tlačítko: polož/použi\n" +"- Myš koliesko: zvoľ si vec\n" +"- %s: komunikácia\n" + +#: src/client/game.cpp +msgid "Creating client..." +msgstr "Vytváram klienta..." + +#: src/client/game.cpp +msgid "Creating server..." +msgstr "Vytváram server..." + +#: src/client/game.cpp +msgid "Debug info and profiler graph hidden" +msgstr "Ladiace informácie a Profilový graf sú skryté" + +#: src/client/game.cpp +msgid "Debug info shown" +msgstr "Ladiace informácie zobrazené" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "Ladiace informácie, Profilový graf a Obrysy sú skryté" #: src/client/game.cpp msgid "" @@ -1313,53 +1282,12 @@ msgstr "" " --> polož jednu vec na pozíciu\n" #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" -"Ovládanie:\n" -"- %s: pohyb vpred\n" -"- %s: pohyb vzad\n" -"- %s: pohyb doľava\n" -"- %s: pohyb doprava\n" -"- %s: skoč/vylez\n" -"- %s: zakrádaj sa/choď dole\n" -"- %s: polož vec\n" -"- %s: inventár\n" -"- Myš: otoč sa/obzeraj sa\n" -"- Myš, ľavé tlačítko: kopaj/udri\n" -"- Myš, pravé tlačítko: polož/použi\n" -"- Myš koliesko: zvoľ si vec\n" -"- %s: komunikácia\n" +msgid "Disabled unlimited viewing range" +msgstr "Neobmedzená dohľadnosť je zakázaná" #: src/client/game.cpp -msgid "Continue" -msgstr "Pokračuj" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "Zmeniť heslo" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "Hra je pozastavená" - -#: src/client/game.cpp -msgid "Sound Volume" -msgstr "Hlasitosť" +msgid "Enabled unlimited viewing range" +msgstr "Neobmedzená dohľadnosť je aktivovaná" #: src/client/game.cpp msgid "Exit to Menu" @@ -1369,222 +1297,324 @@ msgstr "Návrat do menu" msgid "Exit to OS" msgstr "Ukončiť hru" +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "Rýchly režim je zakázaný" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "Rýchly režim je aktívny" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "Rýchly režim je aktivovaný (poznámka: chýba právo 'fast')" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "Režim lietania je zakázaný" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "Režim lietania je aktívny" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "Režim lietania je aktívny (poznámka: chýba právo 'fly')" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "Hmla je vypnutá" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "Hmla je aktivovaná" + #: src/client/game.cpp msgid "Game info:" msgstr "Informácie o hre:" #: src/client/game.cpp -msgid "- Mode: " -msgstr "- Mode: " - -#: src/client/game.cpp -msgid "Remote server" -msgstr "Vzdialený server" - -#: src/client/game.cpp -msgid "- Address: " -msgstr "- Adresa: " +msgid "Game paused" +msgstr "Hra je pozastavená" #: src/client/game.cpp msgid "Hosting server" msgstr "Beží server" #: src/client/game.cpp -msgid "- Port: " -msgstr "- Port: " +msgid "Item definitions..." +msgstr "Definície vecí..." #: src/client/game.cpp -msgid "Singleplayer" -msgstr "Hra pre jedného hráča" +msgid "KiB/s" +msgstr "KiB/s" #: src/client/game.cpp -msgid "On" -msgstr "Aktívny" +msgid "Media..." +msgstr "Média..." + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "MiB/s" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "Minimapa je aktuálne zakázaná hrou, alebo rozšírením" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "Režim prechádzania stenami je zakázaný" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "Režim prechádzania stenami je aktivovaný" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" +"Režim prechádzania stenami je aktivovaný (poznámka: chýba právo 'noclip')" + +#: src/client/game.cpp +msgid "Node definitions..." +msgstr "Definície kocky..." #: src/client/game.cpp msgid "Off" msgstr "Vypnutý" #: src/client/game.cpp -msgid "- Damage: " -msgstr "- Poškodenie: " +msgid "On" +msgstr "Aktívny" #: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "- Kreatívny mód: " - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " -msgstr "- PvP: " +msgid "Pitch move mode disabled" +msgstr "Režim pohybu podľa sklonu je zakázaný" #: src/client/game.cpp -msgid "- Public: " -msgstr "- Verejný: " +msgid "Pitch move mode enabled" +msgstr "Režim pohybu podľa sklonu je aktívny" #: src/client/game.cpp -msgid "- Server Name: " -msgstr "- Meno servera: " +msgid "Profiler graph shown" +msgstr "Profilový graf je zobrazený" #: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" -"\n" -"Pozri detaily v debug.txt." +msgid "Remote server" +msgstr "Vzdialený server" -#: src/client/gameui.cpp -msgid "Chat shown" -msgstr "Komunikačná konzola je zobrazená" +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "Prekladám adresu..." + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "Vypínam..." + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "Hra pre jedného hráča" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "Hlasitosť" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "Zvuk je stlmený" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "Zvukový systém je zakázaný" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "Zvukový systém nie je podporovaný v tomto zostavení" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "Zvuk je obnovený" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "Dohľadnosť je zmenená na %d" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "Dohľadnosť je na maxime: %d" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "Dohľadnosť je na minime: %d" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "Hlasitosť zmenená na %d%%" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "Obrysy zobrazené" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "Zväčšenie je zakázané hrou, alebo rozšírením" + +#: src/client/game.cpp +msgid "ok" +msgstr "ok" #: src/client/gameui.cpp msgid "Chat hidden" msgstr "Komunikačná konzola je skrytá" #: src/client/gameui.cpp -msgid "HUD shown" -msgstr "HUD je zobrazený" +msgid "Chat shown" +msgstr "Komunikačná konzola je zobrazená" #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD je skryrý" #: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" -msgstr "Profilovanie je zobrazené (strana %d z %d)" +msgid "HUD shown" +msgstr "HUD je zobrazený" #: src/client/gameui.cpp msgid "Profiler hidden" msgstr "Profilovanie je skryté" -#: src/client/keycode.cpp -msgid "Left Button" -msgstr "Ľavé tlačítko" +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" +msgstr "Profilovanie je zobrazené (strana %d z %d)" #: src/client/keycode.cpp -msgid "Right Button" -msgstr "Pravé tlačítko" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "Stredné tlačítko" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "X tlačidlo 1" - -#: src/client/keycode.cpp -msgid "X Button 2" -msgstr "X tlačidlo 2" +msgid "Apps" +msgstr "Aplikácie" #: src/client/keycode.cpp msgid "Backspace" msgstr "Backspace" #: src/client/keycode.cpp -msgid "Tab" -msgstr "Tab" +msgid "Caps Lock" +msgstr "Caps Lock" #: src/client/keycode.cpp msgid "Clear" msgstr "Zmaž" -#: src/client/keycode.cpp -msgid "Return" -msgstr "Enter" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "Shift" - #: src/client/keycode.cpp msgid "Control" msgstr "CTRL" +#: src/client/keycode.cpp +msgid "Down" +msgstr "Dole" + +#: src/client/keycode.cpp +msgid "End" +msgstr "End" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "Zmaž EOF" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "Spustiť" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "Pomoc" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "Home" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "IME Súhlas" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "IME Konvertuj" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "IME Escape" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "IME Zmena módu" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "IME Nekonvertuj" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "Vlož" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "Vľavo" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "Ľavé tlačítko" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "Ľavý CRTL" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "Ľavé Menu" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "Ľavý Shift" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "Ľavá klávesa Windows" + #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" msgstr "Menu" #: src/client/keycode.cpp -msgid "Pause" -msgstr "Pause" +msgid "Middle Button" +msgstr "Stredné tlačítko" #: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "Caps Lock" +msgid "Num Lock" +msgstr "Num Lock" #: src/client/keycode.cpp -msgid "Space" -msgstr "Medzera" +msgid "Numpad *" +msgstr "Numerická klávesnica *" #: src/client/keycode.cpp -msgid "Page up" -msgstr "Page up" +msgid "Numpad +" +msgstr "Numerická klávesnica +" #: src/client/keycode.cpp -msgid "Page down" -msgstr "Page down" +msgid "Numpad -" +msgstr "Numerická klávesnica -" #: src/client/keycode.cpp -msgid "End" -msgstr "End" +msgid "Numpad ." +msgstr "Numerická klávesnica ." #: src/client/keycode.cpp -msgid "Home" -msgstr "Home" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "Vľavo" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "Hore" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "Vpravo" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "Dole" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "Vybrať" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "PrtSc" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "Spustiť" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "Snímka" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "Vlož" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "Pomoc" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "Ľavá klávesa Windows" - -#: src/client/keycode.cpp -msgid "Right Windows" -msgstr "Pravá klávesa Windows" +msgid "Numpad /" +msgstr "Numerická klávesnica /" #: src/client/keycode.cpp msgid "Numpad 0" @@ -1627,100 +1657,129 @@ msgid "Numpad 9" msgstr "Numerická klávesnica 9" #: src/client/keycode.cpp -msgid "Numpad *" -msgstr "Numerická klávesnica *" +msgid "OEM Clear" +msgstr "OEM Clear" #: src/client/keycode.cpp -msgid "Numpad +" -msgstr "Numerická klávesnica +" +msgid "Page down" +msgstr "Page down" #: src/client/keycode.cpp -msgid "Numpad ." -msgstr "Numerická klávesnica ." +msgid "Page up" +msgstr "Page up" #: src/client/keycode.cpp -msgid "Numpad -" -msgstr "Numerická klávesnica -" +msgid "Pause" +msgstr "Pause" #: src/client/keycode.cpp -msgid "Numpad /" -msgstr "Numerická klávesnica /" +msgid "Play" +msgstr "Hraj" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" +msgstr "PrtSc" #: src/client/keycode.cpp -msgid "Num Lock" -msgstr "Num Lock" +msgid "Return" +msgstr "Enter" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" +msgstr "Vpravo" #: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "Scroll Lock" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "Ľavý Shift" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "Pravý Shift" - -#: src/client/keycode.cpp -msgid "Left Control" -msgstr "Ľavý CRTL" +msgid "Right Button" +msgstr "Pravé tlačítko" #: src/client/keycode.cpp msgid "Right Control" msgstr "Pravý CRTL" -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "Ľavé Menu" - #: src/client/keycode.cpp msgid "Right Menu" msgstr "Pravé Menu" #: src/client/keycode.cpp -msgid "IME Escape" -msgstr "IME Escape" +msgid "Right Shift" +msgstr "Pravý Shift" #: src/client/keycode.cpp -msgid "IME Convert" -msgstr "IME Konvertuj" +msgid "Right Windows" +msgstr "Pravá klávesa Windows" #: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "IME Nekonvertuj" +msgid "Scroll Lock" +msgstr "Scroll Lock" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" +msgstr "Vybrať" #: src/client/keycode.cpp -msgid "IME Accept" -msgstr "IME Súhlas" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "IME Zmena módu" - -#: src/client/keycode.cpp -msgid "Apps" -msgstr "Aplikácie" +msgid "Shift" +msgstr "Shift" #: src/client/keycode.cpp msgid "Sleep" msgstr "Spánok" #: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "Zmaž EOF" +msgid "Snapshot" +msgstr "Snímka" #: src/client/keycode.cpp -msgid "Play" -msgstr "Hraj" +msgid "Space" +msgstr "Medzera" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "Tab" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "Hore" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "X tlačidlo 1" + +#: src/client/keycode.cpp +msgid "X Button 2" +msgstr "X tlačidlo 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "Priblíž" -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "OEM Clear" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minimapa je skrytá" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minimapa v radarovom režime, priblíženie x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minimapa v povrchovom režime, priblíženie x1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Minimálna veľkosť textúry" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "Hesla sa nezhodujú!" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" +msgstr "Registrovať a pripojiť sa" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1737,18 +1796,82 @@ msgstr "" "Zapíš znova prosím svoje heslo a klikni 'Registrovať a pripojiť sa' pre " "potvrdenie súhlasu s vytvorením účtu, alebo klikni 'Zrušiť' pre návrat." -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "Registrovať a pripojiť sa" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "Hesla sa nezhodujú!" - #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "Pokračuj" +#: src/gui/guiKeyChangeMenu.cpp +msgid "\"Special\" = climb down" +msgstr "\"Špeciál\"=šplhaj dole" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Autoforward" +msgstr "Automaticky pohyb vpred" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Automatic jumping" +msgstr "Automatické skákanie" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "Vzad" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Change camera" +msgstr "Zmeň pohľad" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "Komunikácia" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "Príkaz" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "Konzola" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "Zníž dohľad" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "Zníž hlasitosť" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "2x stlač \"skok\" pre prepnutie lietania" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "Zahodiť" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "Vpred" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "Zvýš dohľad" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "Zvýš hlasitosť" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "Inventár" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "Skok" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "Klávesa sa už používa" + #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" @@ -1756,132 +1879,36 @@ msgstr "" "conf)" #: src/gui/guiKeyChangeMenu.cpp -msgid "\"Special\" = climb down" -msgstr "\"Špeciál\"=šplhaj dole" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "2x stlač \"skok\" pre prepnutie lietania" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Automatic jumping" -msgstr "Automatické skákanie" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "Klávesa sa už používa" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "stlač klávesu" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "Vpred" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "Vzad" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "Špeciál" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "Skok" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "Zakrádať sa" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "Zahodiť" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "Inventár" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "Pred. vec" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "Ďalšia vec" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "Zmeň pohľad" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "Prepni minimapu" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "Prepni lietanie" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "Prepni režim pohybu podľa sklonu" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "Prepni rýchly režim" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "Prepni režim prechádzania stenami" +msgid "Local command" +msgstr "Lokálny príkaz" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" msgstr "Vypni zvuk" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "Zníž hlasitosť" +msgid "Next item" +msgstr "Ďalšia vec" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "Zvýš hlasitosť" +msgid "Prev. item" +msgstr "Pred. vec" #: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "Automaticky pohyb vpred" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "Komunikácia" +msgid "Range select" +msgstr "Zmena dohľadu" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" msgstr "Fotka obrazovky" #: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "Zmena dohľadu" +msgid "Sneak" +msgstr "Zakrádať sa" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "Zníž dohľad" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "Zvýš dohľad" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "Konzola" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "Príkaz" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "Lokálny príkaz" +msgid "Special" +msgstr "Špeciál" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" @@ -1891,29 +1918,49 @@ msgstr "Prepni HUD" msgid "Toggle chat log" msgstr "Prepni logovanie komunikácie" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "Prepni rýchly režim" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "Prepni lietanie" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" msgstr "Prepni hmlu" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "Staré heslo" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "Prepni minimapu" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "Prepni režim prechádzania stenami" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "Prepni režim pohybu podľa sklonu" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "stlač klávesu" #: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "Nové heslo" +msgid "Change" +msgstr "Zmeniť" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" msgstr "Potvrď heslo" #: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "Zmeniť" +msgid "New Password" +msgstr "Nové heslo" -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "Hlasitosť: " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "Staré heslo" #: src/gui/guiVolumeChange.cpp msgid "Exit" @@ -1923,6 +1970,10 @@ msgstr "Odísť" msgid "Muted" msgstr "Zvuk stlmený" +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "Hlasitosť: " + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1936,217 +1987,6 @@ msgstr "Vlož " msgid "LANG_CODE" msgstr "sk" -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "Ovládanie" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "Stavanie vnútri hráča" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" -"Ak je aktivované, môžeš dať bloky na miesto kde stojíš (v úrovni päta + oči)." -"\n" -"Je to užitočné ak pracuješ s kockami v stiesnených priestoroch." - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "Lietanie" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" -"Hráč je schopný lietať bez ovplyvnenia gravitáciou.\n" -"Toto si na serveri vyžaduje privilégium \"fly\"." - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "Režim pohybu podľa sklonu" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" -"Ak je aktivované, tak je smer pohybu pri lietaní, alebo plávaní daný sklonom " -"hráča." - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "Rýchly pohyb" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" -"Rýchly pohyb (cez \"špeciálnu\" klávesu).\n" -"Toto si na serveri vyžaduje privilégium \"fast\"." - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "Prechádzanie stenami" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" -"Ak je aktivovaný spolu s režimom lietania, tak je hráč schopný letieť cez " -"pevné kocky.\n" -"Toto si na serveri vyžaduje privilégium \"noclip\"." - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "Filmový mód" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" -"Zjemňuje pohyb kamery pri pohľade po okolí. Tiež sa nazýva zjemnenie " -"pohľady, alebo pohybu myši.\n" -"Užitočné pri nahrávaní videí." - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "Plynulý pohyb kamery" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "Zjemní rotáciu kamery. 0 je pre vypnuté." - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "Plynulý pohyb kamery vo filmovom režime" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "Zjemní rotáciu kamery vo filmovom režime. 0 je pre vypnuté." - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "Obrátiť smer myši" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "Obráti vertikálny pohyb myši." - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "Citlivosť myši" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "Multiplikátor citlivosti myši." - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "Špeciálna klávesa pre šplhanie hore/dole" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" -"Ak je aktivované, použije sa namiesto klávesy pre \"zakrádanie\" \"špeciálnu " -"klávesu\"\n" -"pre klesanie a šplhanie dole." - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "Dvakrát skok pre lietanie" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "Dvojnásobné stlačenie klávesy pre skok prepne režim lietania." - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "Vždy zapnuté lietanie a rýchlosť" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" -"Ak je aktivované, použije sa \"špeciálna\" klávesa na lietanie, v prípade,\n" -"že je povolený režim lietania aj rýchlosti." - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Interval opakovania pravého kliknutia" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" -"Čas v sekundách pre zopakovanie pravého kliknutia v prípade\n" -"držania pravého tlačítka myši." - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "Automaticky vyskočí na prekážku vysokú jedna kocka." - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "Bezpečné kopanie a ukladanie" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" -"Zabráni opakovanému kopaniu a ukladaniu blokov pri držaní tlačítka myši.\n" -"Aktivuj, ak príliš často omylom niečo vykopeš, alebo položíš blok." - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "Náhodný vstup" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "Aktivuje náhodný užívateľský vstup (používa sa len pre testovanie)." - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "Neustály pohyb vpred" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" -"Neustály pohyb vpred, prepína sa klávesou pre \"Automatický pohyb vpred\".\n" -"Opätovne stlač klávesu pre \"Automatický pohyb vpred\", alebo pohyb vzad pre " -"vypnutie." - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "Prah citlivosti dotykovej obrazovky" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" -"Dĺžka v pixloch, ktorú potrebuje dotyková obrazovka pre začiatok interakcie." - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "Pevný virtuálny joystick" - #: src/settings_translation_file.cpp msgid "" "(Android) Fixes the position of virtual joystick.\n" @@ -2155,10 +1995,6 @@ msgstr "" "(Android) Zafixuje pozíciu virtuálneho joysticku.\n" "Ak je vypnuté, virtuálny joystick sa vycentruje na pozícií prvého dotyku." -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "Virtuálny joystick stlačí tlačidlo aux" - #: src/settings_translation_file.cpp msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" @@ -2169,1731 +2005,125 @@ msgstr "" "Ak je aktivované, virtuálny joystick stlačí tlačidlo \"aux\" keď je mimo " "hlavný kruh." -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "Aktivuj joysticky" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "ID joysticku" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "Identifikátor joysticku na použitie" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "Typ joysticku" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "Typ joysticku" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "Interval opakovania tlačidla joysticku" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" -"Čas v sekundách medzi opakovanými udalosťami\n" -"pri stlačenej kombinácií tlačidiel na joysticku." - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "Citlivosť otáčania pohľadu joystickom" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" -"Citlivosť osí joysticku pre pohyb\n" -"otáčania pohľadu v hre." - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "Tlačidlo Vpred" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre pohyb hráča vpred.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "Tlačidlo Vzad" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre pohyb hráča vzad.\n" -"Zároveň vypne automatický pohyb hráča dopredu, ak je aktívny.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "Tlačidlo Vľavo" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre pohyb hráča vľavo.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "Tlačidlo Vpravo" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre pohyb hráča vpravo.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "Tlačidlo Skok" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre skákanie.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "Tlačidlo zakrádania sa" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre utajený pohyb (zakrádanie) hráča.\n" -"Tiež sa používa pre zliezanie a ponáranie vo vode ak aux1_descends je " -"vypnutý.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "Tlačidlo Inventár" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre otvorenie inventára.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "Špeciálne tlačidlo" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre rýchly pohyb hráča v rýchlom móde.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "Tlačidlo Komunikácia" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre otvorenie komunikačného okna.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "Tlačidlo Príkaz" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre otvorenie komunikačného okna pre zadávanie príkazov.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre otvorenie komunikačného okna pre zadávanie lokálnych príkazov.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "Tlačidlo Dohľad" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie neobmedzeného dohľadu.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "Tlačidlo Lietanie" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie lietania.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "Tlačidlo Pohyb podľa sklonu" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie režimu pohyb podľa sklonu.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "Tlačidlo Rýchlosť" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie režimu rýchlosť.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "Tlačidlo Prechádzanie stenami" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie režimu prechádzania stenami.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "Tlačidlo Nasledujúca vec na opasku" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber ďalšej veci na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "Tlačidlo Predchádzajúcu vec na opasku" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber predchádzajúcej veci na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "Tlačidlo Ticho" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre vypnutie hlasitosti v hre.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "Tlačidlo Zvýš hlasitosť" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre zvýšenie hlasitosti.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "Tlačidlo Zníž hlasitosť" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre zníženie hlasitosti.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "Tlačidlo Automatický pohyb vpred" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie režimu automatického pohybu vpred.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "Tlačidlo Filmový režim" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie filmového režimu.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "Tlačidlo Minimapa" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie zobrazenia minimapy.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre snímanie obrazovky.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "Tlačidlo Zahoď vec" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre zahodenie aktuálne vybranej veci.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "Tlačidlo Priblíženie pohľadu" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre použitie priblíženia pokiaľ je to možné .\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "Tlačidlo Opasok pozícia 1" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber prvej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "Tlačidlo Opasok pozícia 2" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber druhej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "Tlačidlo Opasok pozícia 3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber tretej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "Tlačidlo Opasok pozícia 4" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber štvrtej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "Tlačidlo Opasok pozícia 5" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber piatej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "Tlačidlo Opasok pozícia 6" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber šiestej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "Tlačidlo Opasok pozícia 7" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber siedmej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "Tlačidlo Opasok pozícia 8" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber ôsmej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "Tlačidlo Opasok pozícia 9" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber deviatej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "Tlačidlo Opasok pozícia 10" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber desiatej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "Tlačidlo Opasok pozícia 11" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber jedenástej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "Tlačidlo Opasok pozícia 12" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber dvanástej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "Tlačidlo Opasok pozícia 13" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber trinástej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "Tlačidlo Opasok pozícia 14" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber štrnástej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "Tlačidlo Opasok pozícia 15" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber pätnástej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "Tlačidlo Opasok pozícia 16" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber šestnástej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "Tlačidlo Opasok pozícia 17" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber sedemnástej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "Tlačidlo Opasok pozícia 18" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber osemnástej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "Tlačidlo Opasok pozícia 19" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber devätnástej pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "Tlačidlo Opasok pozícia 20" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 20. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "Tlačidlo Opasok pozícia 21" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 21. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "Tlačidlo Opasok pozícia 22" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 22. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "Tlačidlo Opasok pozícia 23" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 23. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "Tlačidlo Opasok pozícia 24" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 24. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "Tlačidlo Opasok pozícia 25" - #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"Tlačidlo pre výber 25. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "Tlačidlo Opasok pozícia 26" +"(X,Y,Z) posun fraktálu od stredu sveta v jednotkách 'mierky'.\n" +"Môže byť použité pre posun požadovaného bodu do (0, 0) pre\n" +"vytvorenie vhodného bodu pre ožitie, alebo pre povolenie 'priblíženia'\n" +"na želaný bod zväčšením 'mierky'.\n" +"Štandardne je to vyladené na vhodný bod oživenia pre Mandelbrot\n" +"sadu so štandardnými parametrami, je možné, že bude potrebná úprava\n" +"v iných situáciach.\n" +"Rozsah je približne -2 to 2. Zväčší podľa 'mierky' pre posun v kockách." #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." msgstr "" -"Tlačidlo pre výber 26. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"(X,Y,Z) mierka fraktálu v kockách.\n" +"Skutočná veľkosť fraktálu bude 2 až 3 krát väčšia.\n" +"Tieto čísla môžu byť veľmi veľké, fraktál sa nemusí\n" +"zmestiť do sveta.\n" +"Zvýš pre 'priblíženie' detailu fraktálu.\n" +"Štandardne je vertikálne stlačený tvar vhodný pre\n" +"ostrov, nastav všetky 3 čísla rovnaké pre nezmenený tvar." #: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "Tlačidlo Opasok pozícia 27" +msgid "2D noise that controls the shape/size of ridged mountains." +msgstr "2D šum, ktorý riadi tvar/veľkosť hrebeňa hôr." #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 27. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the shape/size of rolling hills." +msgstr "2D šum, ktorý riadi tvar/veľkosť vlnitosti kopcov." #: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "Tlačidlo Opasok pozícia 28" +msgid "2D noise that controls the shape/size of step mountains." +msgstr "2D šum, ktorý riadi tvar/veľkosť horských stepí." #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 28. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +msgstr "2D šum, ktorý riadi veľkosť/výskyt hrebeňa kopcov." #: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "Tlačidlo Opasok pozícia 29" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 29. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "Tlačidlo Opasok pozícia 30" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 30. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "Tlačidlo Opasok pozícia 31" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 31. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "Tlačidlo Opasok pozícia 32" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre výber 32. pozície na opasku.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "Tlačidlo Prepínanie HUD" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie zobrazenia HUD (Head-Up Display - výhľadový displej)." -"\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "Tlačidlo Prepnutie komunikácie" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie zobrazenia komunikácie.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "Tlačidlo Veľká komunikačná konzola" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie zobrazenia veľkej konzoly na komunikáciu.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "Tlačidlo Prepnutie hmly" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie zobrazenia hmly.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "Tlačidlo Aktualizácia pohľadu" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie aktualizácie pohľadu. Používa sa len pre vývoj.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "Tlačidlo Ladiace informácie" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie zobrazenia ladiacich informácií.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "Tlačidlo Prepínanie profileru" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepnutie zobrazenia profileru. Používa sa pri vývoji.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "Tlačidlo Prepnutie režimu zobrazenia" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre prepínanie medzi pohľadom z prvej a tretej osoby.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "Tlačidlo Zvýš dohľad" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre zvýšenie dohľadu.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "Tlačidlo Zníž dohľad" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tlačidlo pre zníženie dohľadu.\n" -"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "Grafika" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "V hre" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "Základné" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "VBO" - -#: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" -"Aktivuj \"vertex buffer objects\".\n" -"Toto by malo viditeľne zvýšiť grafický výkon." - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "Hmla" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "Či zamlžiť okraj viditeľnej oblasti." - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "Štýl listov" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" -"Štýly listov:\n" -"- Ozdobné: všetky plochy sú viditeľné\n" -"- Jednoduché: sú použité len vonkajšie plochy, ak sú použité definované " -"\"special_tiles\"\n" -"- Nepriehľadné: vypne priehliadnosť" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "Prepojené sklo" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "Prepojí sklo, ak je to podporované kockou." - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "Jemné osvetlenie" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" -"Aktivuj jemné nasvietenie pomocou jednoduchej \"ambient occlusion\".\n" -"Vypni pre zrýchlenie, alebo iný vzhľad." +msgid "2D noise that controls the size/occurrence of rolling hills." +msgstr "2D šum, ktorý riadi veľkosť/výskyt zvlnenia kopcov." #: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "Mraky" +msgid "2D noise that controls the size/occurrence of step mountain ranges." +msgstr "2D šum, ktorý riadi veľkosť/výskyt horských stepí." #: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "Mraky sú efektom na strane klienta." +msgid "2D noise that locates the river valleys and channels." +msgstr "2D šum, ktorý určuje údolia a kanály riek." #: src/settings_translation_file.cpp msgid "3D clouds" msgstr "3D mraky" -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "Použi 3D mraky namiesto plochých." - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "Zvýrazňovanie kociek" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "Metóda použitá pre zvýraznenie vybraných objektov." - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "Časticové efekty pri kopaní" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "Pridá časticové efekty pri vykopávaní kocky." - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "Filtrovanie" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "Mipmapping" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" -"Použi mip mapy pre úpravu textúr. Môže jemne zvýšiť výkon,\n" -"obzvlášť použití balíčka textúr s vysokým rozlíšením.\n" -"Gama korektné podvzorkovanie nie je podporované." - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "Anisotropné filtrovanie" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "Použi anisotropné filtrovanie pri pohľade na textúry zo strany." - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "Bilineárne filtrovanie" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "Použi bilineárne filtrovanie pri zmene mierky textúr." - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "Trilineárne filtrovanie" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "Použi trilineárne filtrovanie pri zmene mierky textúr." - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "Vyčisti priehľadné textúry" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" -"Filtrované textúry môžu zmiešať svoje RGB hodnoty s plne priehľadnými " -"susedmi,\n" -"s PNG optimizérmi obvykle zmazané, niekdy môžu viesť k tmavým oblastiam\n" -"alebo svetlým rohom na priehľadnej textúre.\n" -"Aplikuj tento filter na ich vyčistenie pri nahrávaní textúry." - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "Minimálna veľkosť textúry" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" -"Pri použití bilineárneho/trilineárneho/anisotropného filtra, textúry s " -"nízkym\n" -"rozlíšením môžu byť rozmazané, tak sa automaticky upravia interpoláciou\n" -"s najbližším susedom aby bola zachovaná ostrosť pixelov.\n" -"Toto nastaví minimálnu veľkosť pre upravenú textúru;\n" -"vyššia hodnota znamená ostrejší vzhľad, ale potrebuje viac pamäti.\n" -"Odporúčané sú mocniny 2. Nastavenie viac než 1 nemusí mať viditeľný efekt,\n" -"kým nie je použité bilineárne/trilineárne/anisotropné filtrovanie.\n" -"Toto sa tiež používa ako základná veľkosť textúry kociek pre\n" -"\"world-aligned autoscaling\" textúr." - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "FSAA" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Experimentálne nastavenie, môže spôsobiť viditeľné medzery\n" -"medzi blokmi, ak je nastavené väčšie než 0." - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "Podvzorkovanie" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" -"Podvzorkovanie je podobné ako použiť obrazovku s nižším rozlíšením, ale\n" -"aplikuje sa len na samotný svet, pričom GUI ostáva nezmenené.\n" -"Malo by poskytnúť výrazné zvýšenie výkonu za cenu nižších detailov obrazu.\n" -"Vyššie hodnotu vedú k menej detailnému obrazu." - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" -"Shadery umožňujú pokročilé vizuálne efekty a na niektorých grafických " -"kartách\n" -"môžu zvýšiť výkon.\n" -"Toto funguje len s OpenGL." - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "Cesta k shaderom" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" -"Cesta do adresára so shadermi. Ak nie je definovaná, použije sa predvolená " -"lokácia." - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "Filmový tone mapping" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" -"Aktivuje Hablov 'Uncharted 2' filmový tone mapping.\n" -"Simuluje farebnú krivku fotografického filmu a ako sa približuje\n" -"vzhľadu obrázku s veľkým dynamickým rozsahom. Stredový kontrast je mierne\n" -"zlepšený, nasvietenie a tiene sú postupne zhustené." - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bumpmapping" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Aktivuje bumpmapping pre textúry. Normálové mapy musia byť dodané v balíčku " -"textúr.\n" -"alebo musia byť automaticky generované.\n" -"Vyžaduje aby boli shadery aktivované." - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Generuj normálové mapy" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Aktivuje generovanie normálových máp za behu (efekt reliéfu).\n" -"Požaduje aby bol aktivovaný bumpmapping." - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Intenzita normálových máp" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Intenzita generovaných normálových máp." - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Vzorkovanie normálových máp" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Definuje vzorkovací krok pre textúry.\n" -"Vyššia hodnota vedie k jemnejším normálovým mapám." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Aktivuj parallax occlusion mapping.\n" -"Požaduje aby boli aktivované shadery." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Režim parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax occlusion s informácia o sklone (rýchlejšie).\n" -"1 = mapovanie reliéfu (pomalšie, presnejšie)." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Opakovania parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Počet opakovaní výpočtu parallax occlusion." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Mierka parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Celková mierka parallax occlusion efektu." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Skreslenie parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Celkové skreslenie parallax occlusion efektu, obvykle mierka/2." - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "Vlniace sa kocky" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "Vlniace sa tekutiny" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" -"Nastav true pre aktivovanie vlniacich sa tekutín (ako napr. voda).\n" -"Požaduje aby boli aktivované shadery." - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "Výška vlnenia sa tekutín" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" -"Maximálna výška povrchu vlniacich sa tekutín.\n" -"4.0 = Výška vlny sú dve kocky.\n" -"0.0 = Vlna sa vôbec nehýbe.\n" -"Štandardná hodnota je 1.0 (1/2 kocky).\n" -"Požaduje, aby boli aktivované vlniace sa tekutiny." - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "Vlnová dĺžka vlniacich sa tekutín" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" -"Dĺžka vĺn tekutín.\n" -"Požaduje, aby boli aktivované vlniace sa tekutiny." - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "Rýchlosť vlny tekutín" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" -"Ako rýchlo sa budú pohybovať vlny tekutín. Vyššia hodnota = rýchlejšie.\n" -"Ak je záporná, tekutina sa bude pohybovať naspäť.\n" -"Požaduje, aby boli aktivované vlniace sa tekutiny." - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "Vlniace sa listy" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" -"Nastav true pre povolenie vlniacich sa listov.\n" -"Požaduje aby boli aktivované shadery." - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "Vlniace sa rastliny" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" -"Nastav true pre aktivovanie vlniacich sa rastlín.\n" -"Požaduje aby boli aktivované shadery." - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "Pokročilé" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "Zotrvačnosť ruky" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" -"Zotrvačnosť ruky, vytvára realistickejší pohyb ruky\n" -"pri pohybe kamery." - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "Maximálne FPS" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" -"Ak by malo byt FPS vyššie, bude obmedzené, aby\n" -"sa bezvýznamne, bez úžitku neplytvalo výkonom CPU." - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS v menu pozastavenia hry" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "Maximálne FPS, ak je hra pozastavená." - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "Pozastav hru, pri strate zamerania okna" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" -"Otvorí menu pozastavenia, ak aktuálne okno hry nie je vybrané.\n" -"Nepozastaví sa ak je otvorený formspec." - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "Vzdialenosť dohľadu" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "Vzdialenosť dohľadu v kockách." - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "Blízkosť roviny" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" -"Vzdialenosť kamery 'blízko orezanej roviny' v kockách, medzi 0 a 0.25\n" -"Funguje len na GLES platformách. Väčšina toto nepotrebuje meniť.\n" -"Zvýšenie môže zredukovať artefakty na slabších GPU.\n" -"0.1 = Štandardná hodnota, 0.25 = Dobrá hodnota pre slabé tablety." - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "Šírka obrazovky" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "Šírka okna po spustení." - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "Výška obrazovky" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "Výška okna po spustení." - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "Pamätať si veľkosť obrazovky" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "Automaticky ulož veľkosť okna po úprave." - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "Celá obrazovka" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "Režim celej obrazovky." - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "BPP v režime celej obrazovky" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "Počet bitov na pixel (farebná hĺbka) v režime celej obrazovky." - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "VSync" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "Vertikálna synchronizácia obrazovky." - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "Zorné pole" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "Zorné pole v stupňoch." - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "Svetelná gamma krivka" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" -"Zmení svetelnú krivku aplikovaním 'gamma korekcie'.\n" -"Vyššie hodnoty robia stredné a nižšie tóny svetlejšími.\n" -"Hodnota '1.0' ponechá svetelnú krivku nezmenenú.\n" -"Toto má vplyv len na denné a umelé svetlo,\n" -"ma len veľmi malý vplyv na prirodzené nočné svetlo." - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "Spodný gradient svetelnej krivky" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" -"Gradient svetelnej krivky na minimálnych úrovniach svetlosti.\n" -"Upravuje kontrast najnižších úrovni svetlosti." - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "Horný gradient svetelnej krivky" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" -"Gradient svetelnej krivky na maximálnych úrovniach svetlosti.\n" -"Upravuje kontrast najvyšších úrovni svetlosti." - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "Zosilnenie svetelnej krivky" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" -"Sila zosilnenia svetelnej krivky.\n" -"Tri 'zosilňujúce' parametre definujú ktorý rozsah\n" -"svetelnej krivky je zosilnený v jasu." - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "Stred zosilnenia svetelnej krivky" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" -"Centrum rozsahu zosilnenia svetelnej krivky.\n" -"Kde 0.0 je minimálna úroveň, 1.0 je maximálna úroveň ." - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "Rozptyl zosilnenia svetelnej krivky" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" -"Rozptyl zosilnenia svetelnej krivky.\n" -"Určuje šírku rozsahu , ktorý bude zosilnený.\n" -"Štandardné gausovo rozdelenie odchýlky svetelnej krivky." - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "Cesta k textúram" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "Cesta do adresára s textúrami. Všetky textúry sú najprv hľadané tu." - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "Grafický ovládač" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" -"Renderovací back-end pre Irrlicht.\n" -"Po zmene je vyžadovaný reštart.\n" -"Poznámka: Na Androidw, ak si nie si istý, ponechaj OGLES1! Aplikácia by " -"nemusela naštartovať.\n" -"Na iných platformách, sa odporúča OpenGL, a je to aktuálne jediný ovládač\n" -"s podporou shaderov." - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "Polomer mrakov" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" -"Polomer oblasti mrakov zadaný v počtoch 64 kociek na štvorcový mrak.\n" -"Hodnoty vyššie než 26 budú produkovať ostré hranice na rohoch oblasti mrakov." - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "Faktor pohupovania sa" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" -"Aktivuj pohupovanie sa a hodnotu pohupovania.\n" -"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné." - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "Faktor pohupovania sa pri pádu" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" -"Násobiteľ pre pohupovanie sa pri pádu.\n" -"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné." - #: src/settings_translation_file.cpp msgid "3D mode" msgstr "3D režim" +#: src/settings_translation_file.cpp +msgid "3D mode parallax strength" +msgstr "3D režim stupeň paralaxy" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "3D šum definujúci gigantické dutiny/jaskyne." + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" +"3D šum definujúci štruktúru a výšku hôr.\n" +"Takisto definuje štruktúru pohorí lietajúcich pevnín." + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" +"3D šum definujúci štruktúru lietajúcich pevnín.\n" +"Ak je zmenený zo štandardného, 'mierka' šumu (štandardne 0.7) môže\n" +"potrebovať nastavenie, keďže zošpicaťovanie lietajúcej pevniny funguje " +"najlepšie,\n" +"keď tento šum má hodnotu približne v rozsahu -2.0 až 2.0." + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "3D šum definujúci štruktúru stien kaňona rieky." + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "3D šum definujúci terén." + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "3D šum pre previsy, útesy, atď. hôr. Obvykle malé odchýlky." + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "3D šum definujúci počet kobiek na časť mapy (mapchunk)." + #: src/settings_translation_file.cpp msgid "" "3D support.\n" @@ -3919,674 +2149,57 @@ msgstr "" "- pageflip: 3D založené na quadbuffer\n" "Režim interlaced požaduje, aby boli aktivované shadery." -#: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "3D režim stupeň paralaxy" - -#: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." -msgstr "Stupeň paralaxy 3D režimu." - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "Výška konzoly" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "Výška komunikačnej konzoly v hre, medzi 0.1 (10%) a 1.0 (100%)." - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "Farba konzoly" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "Pozadie (R,G,B) komunikačnej konzoly v hre." - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "Priehľadnosť konzoly" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "Priehľadnosť pozadia konzoly v hre (nepriehľadnosť, medzi 0 a 255)." - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "Formspec Celo-obrazovková nepriehľadnosť pozadia" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" -"Nepriehľadnosť pozadia (0-255) v režime celej obrazovky v definícii " -"formulára (Formspec)." - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" -msgstr "Formspec Celo-obrazovková farba pozadia" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" -"Farba pozadia (R,G,B) v režime celej obrazovky v definícii formulára " -"(Formspec)." - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "Formspec štandardná nepriehľadnosť pozadia" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" -"Štandardná nepriehľadnosť pozadia (medzi 0 a 255) v definícii formulára " -"(Formspec)." - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "Formspec štandardná farba pozadia" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "Štandardná farba pozadia (R,G,B) v definícii formulára (Formspec)." - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "Farba obrysu bloku" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "Farba obrysu bloku (R,G,B)." - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "Šírka obrysu bloku" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "Šírka línií obrysu kocky." - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "Farba zameriavača" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Farba zameriavača (R,G,B)." - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "Priehľadnosť zameriavača" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Priehľadnosť zameriavača (nepriehľadnosť, medzi 0 a 255)." - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "Posledné správy v komunikácií" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "Maximálny počet nedávnych správ v komunikácií, ktoré budú zobrazované" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "Nesynchronizuj animáciu blokov" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "Či sa nemá animácia textúry kocky synchronizovať." - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "Maximálna šírka opaska" - #: src/settings_translation_file.cpp msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." msgstr "" -"Maximálny pomer aktuálneho okna, ktorý sa použije pre opasok.\n" -"Užitočné, ak treba zobraziť niečo vpravo, alebo vľavo od opaska." +"Zvolené semienko pre novú mapu, ponechaj prázdne pre náhodné.\n" +"Pri vytvorení nového sveta z hlavného menu, bude prepísané." #: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "Mierka HUD" +msgid "A message to be displayed to all clients when the server crashes." +msgstr "Správa, ktorá sa zobrazí všetkým klientom pri páde servera." #: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "Upraví veľkosť elementov v užívateľskom rozhraní." +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "Správa, ktorá sa zobrazí všetkým klientom, keď sa server vypína." #: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "Medzipamäť Mesh" +msgid "ABM interval" +msgstr "ABM interval" #: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "Aktivuje ukladanie tvárou rotovaných Mesh objektov do medzipamäti." - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "Oneskorenie generovania Mesh blokov" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." +msgid "ABM time budget" msgstr "" -"Oneskorenie, kým sa Mesh aktualizuje na strane klienta v ms.\n" -"Zvýšenie spomalí množstvo aktualizácie Mesh objektov, teda zníži chvenie na " -"pomalších klientoch." #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "Medzipamäť Mapblock Mesh generátora blokov v MB" +msgid "Absolute limit of queued blocks to emerge" +msgstr "Absolútny limit kociek vo fronte" #: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" -"Veľkosť medzipamäte blokov v Mesh generátoru.\n" -"Zvýšenie zvýši využitie medzipamäte %, zníži sa množstvo dát kopírovaných\n" -"z hlavnej vetvy a tým sa zníži chvenie." +msgid "Acceleration in air" +msgstr "Zrýchlenie vo vzduchu" #: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "Minimapa" +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "Gravitačné zrýchlenie, v kockách za sekundu na druhú." #: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "Aktivuje minimapu." +msgid "Active Block Modifiers" +msgstr "Aktívne modifikátory blokov (ABM)" #: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "Okrúhla minimapa" +msgid "Active block management interval" +msgstr "Riadiaci interval aktívnych blokov" #: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "Tvar minimapy. Aktivované = okrúhla, vypnuté = štvorcová." +msgid "Active block range" +msgstr "Rozsah aktívnych blokov" #: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "Minimapa výška skenovania" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" -"Pravda = 256\n" -"Nepravda = 128\n" -"Užitočné pre plynulejšiu minimapu na pomalších strojoch." - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "Farebná hmla" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" -"Prispôsob farbu hmly a oblohy dennej dobe (svitanie/súmrak) a uhlu pohľadu." - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "Ambient occlusion gamma" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" -"Úroveň tieňovania ambient-occlusion kocky (tmavosť).\n" -"Nižšia hodnota je tmavšie, vyššia svetlejšie.\n" -"Platý rozsah hodnôt je od 0.25 po 0.4 vrátane.\n" -"Ak je hodnota mimo rozsah, bude nastavená na najbližšiu platnú hodnotu." - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "Animácia vecí v inventári" - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "Aktivuje animáciu vecí v inventári." - -#: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "Začiatok hmly" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "Zlomok viditeľnej vzdialenosti od ktorej začne byť vykresľovaná hmla" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "Nepriehľadné tekutiny" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "Všetky tekutiny budú nepriehľadné" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "Režim zarovnaných textúr podľa sveta" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" -"Textúry na kocke môžu byť zarovnané buď podľa kocky, alebo sveta.\n" -"Kým prvý režim poslúži lepšie veciam ako sú stroje, nábytok, atď.,\n" -"tak s druhým režimom zapadnú schody a mikrobloky lepšie do svojho okolia.\n" -"Keďže je táto možnosť nová, nemusí byť použitá na starších serveroch,\n" -"toto nastavenie povolí jeho vynútenie pre určité typy kociek. Je potrebné\n" -"si uvedomiť, že táto funkcia je EXPERIMENTÁLNA a nemusí fungovať korektne." - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "Režim automatickej zmeny mierky" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" -"Textúry zarovnané podľa sveta môžu byť zväčšené aby pokryli niekoľko kociek." -"\n" -"Avšak server nemusí poslať mierku akú potrebuješ, obzvlášť ak používaš\n" -"špeciálne dizajnovaný balíček textúr; s týmto nastavením, sa klient pokúsi\n" -"určiť mierku automaticky na základe veľkosti textúry.\n" -"Viď. tiež texture_min_size.\n" -"Varovanie: Toto nastavenie je EXPERIMENTÁLNE!" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "Zobraz obrys bytosti" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "Menu" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "Mraky v menu" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "Použi animáciu mrakov pre pozadie hlavného menu." - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "Mierka GUI" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" -"Zmeň mierku užívateľského rozhrania (GUI) podľa zadanej hodnoty.\n" -"Pre zmenu mierky GUI použi antialias filter podľa-najbližšieho-suseda.\n" -"Toto zjemní niektoré hrubé hrany a zmieša pixely pri zmenšení,\n" -"za cenu rozmazania niektorých okrajových pixelov ak sa mierka\n" -"obrázkov mení podľa neceločíselných hodnôt." - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "Filter mierky GUI" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" -"Ake je gui_scaling_filter povolený, všetky GUI obrázky potrebujú byť\n" -"filtrované softvérom, ale niektoré obrázky sú generované priamo\n" -"pre hardvér (napr. render-to-texture pre kocky v inventári)." - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "Filter mierky GUI txr2img" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" -"Ake je gui_scaling_filter_txr2img povolený, nakopíruj tieto obrázky\n" -"z hardvéru do softvéru pre zmenu mierky. Ak za vypnutý, vráť sa\n" -"k starej metóde zmeny mierky, pre grafické ovládače, ktoré dostatočne\n" -"nepodporujú sťahovanie textúr z hardvéru." - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "Oneskorenie popisku" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "Oneskorenie zobrazenia popisku, zadané v milisekundách." - -#: src/settings_translation_file.cpp -msgid "Append item name" -msgstr "Pridaj názov položky/veci" - -#: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "Pridaj názov veci do popisku." - -#: src/settings_translation_file.cpp -msgid "FreeType fonts" -msgstr "FreeType písma" - -#: src/settings_translation_file.cpp -msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" -"Aby boli FreeType písma použité, je nutné aby bola podpora FreeType " -"zakompilovaná.\n" -"Ak je zakázané, budú použité bitmapové a XML vektorové písma." - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "Štandardne tučné písmo" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "Štandardne šikmé písmo" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "Tieň písma" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" -"Posun tieňa (v pixeloch) štandardného písma. Ak je 0, tak tieň nebude " -"vykreslený." - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "Priehľadnosť tieňa písma" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "Nepriehľadnosť tieňa za štandardným písmom, medzi 0 a 255." - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "Veľkosť písma" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "Veľkosť písma štandardného písma v bodoch (pt)." - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "Štandardná cesta k písmam" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" -"Cesta k štandardnému písmu.\n" -"Ak je aktivné nastavenie “freetype”: Musí to byť TrueType písmo.\n" -"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " -"vektorové písmo.\n" -"Bude použité záložné písmo, ak nebude možné písmo nahrať." - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "Cesta k tučnému písmu" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "Cesta k šikmému písmu" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "Cesta k tučnému šikmému písmu" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "Veľkosť písmo s pevnou šírkou" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "Veľkosť písma s pevnou šírkou v bodoch (pt)." - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "Cesta k písmu s pevnou šírkou" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" -"Cesta k písmu s pevnou šírkou.\n" -"Ak je aktívne nastavenie “freetype”: Musí to byť TrueType písmo.\n" -"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " -"vektorové písmo.\n" -"Toto písmo je použité pre napr. konzolu a okno profilera." - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "Cesta k tučnému písmu s pevnou šírkou" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "Cesta k šikmému písmu s pevnou šírkou" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "Cesta k tučnému šikmému písmu s pevnou šírkou" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "Veľkosť záložného písma" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "Veľkosť písma záložného písma v bodoch (pt)." - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "Tieň záložného písma" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" -"Posun tieňa (v pixeloch) záložného písma. Ak je 0, tak tieň nebude " -"vykreslený." - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "Priehľadnosť tieňa záložného fontu" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "Nepriehľadnosť tieňa za záložným písmom, medzi 0 a 255." - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "Cesta k záložnému písmu" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" -"Cesta k záložnému písmu.\n" -"Ak je aktívne nastavenie “freetype”: Musí to byť TrueType písmo.\n" -"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " -"vektorové písmo.\n" -"Toto písmo bude použité pre určité jazyky, alebo ak nie je štandardné písmo " -"k dispozícií." - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "Veľkosť komunikačného písma" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" -"Veľkosť písma aktuálneho komunikačného textu a príkazového riadku v bodoch " -"(pt).\n" -"Pri hodnote 0 bude použitá štandardná veľkosť písma." - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "Adresár pre snímky obrazovky" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" -"Cesta, kam sa budú ukladať snímky obrazovky. Môže to byť ako absolútna, tak " -"relatívna cesta.\n" -"Adresár bude vytvorený ak neexistuje." - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "Formát snímok obrazovky" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "Formát obrázkov snímok obrazovky." - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "Kvalita snímok obrazovky" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" -"Kvalita snímok obrazovky. Používa sa len pre JPEG formát.\n" -"1 znamená najhoršiu kvalitu; 100 znamená najlepšiu kvalitu.\n" -"Použi 0 pre štandardnú kvalitu." - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "DPI" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" -"Nastav dpi konfiguráciu podľa svojej obrazovky (nie pre X11/len pre Android) " -"napr. pre 4k obrazovky." - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "Aktivuj okno konzoly" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" -"Len pre systémy s Windows: Spusti Minetest s oknom príkazovej riadky na " -"pozadí.\n" -"Obsahuje tie isté informácie ako súbor debug.txt (štandardný názov)." - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "Zvuk" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" -"Aktivuje zvukový systém.\n" -"Ak je zakázaný, tak kompletne zakáže všetky zvuky\n" -"a ovládanie hlasitosti v hre bude nefunkčné.\n" -"Zmena tohto nastavenia si vyžaduje reštart hry." - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "Hlasitosť" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" -"Hlasitosť všetkých zvukov.\n" -"Požaduje aby bol zvukový systém aktivovaný." - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "Stíš hlasitosť" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" -"Vypnutie zvukov. Zapnúť zvuky môžeš kedykoľvek, pokiaľ\n" -"nie je zakázaný zvukový systém (enable_sound=false).\n" -"V hre môžeš zapnúť/vypnúť zvuk tlačidlom pre stíšenie zvuku, alebo\n" -"pozastavením hry." - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "Klient" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "Sieť" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "Adresa servera" +msgid "Active object send range" +msgstr "Zasielaný rozsah aktívnych objektov" #: src/settings_translation_file.cpp msgid "" @@ -4599,938 +2212,106 @@ msgstr "" "Adresné políčko v hlavnom menu prepíše toto nastavenie." #: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "Vzdialený port" +msgid "Adds particles when digging a node." +msgstr "Pridá časticové efekty pri vykopávaní kocky." #: src/settings_translation_file.cpp msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." msgstr "" -"Port pre pripojenie sa (UDP).\n" -"Políčko pre nastavenie Portu v hlavnom menu prepíše toto nastavenie." +"Nastav dpi konfiguráciu podľa svojej obrazovky (nie pre X11/len pre Android) " +"napr. pre 4k obrazovky." #: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "Odpočúvacia adresa Promethea" +#, c-format +msgid "" +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." +msgstr "" +"Nastav hustotu vrstvy lietajúcej pevniny.\n" +"Zvýš hodnotu pre zvýšenie hustoty. Môže byť kladná, alebo záporná.\n" +"Hodnota = 0.0: 50% objemu je lietajúca pevnina.\n" +"Hodnota = 2.0 (môže byť vyššie v závislosti od 'mgv7_np_floatland', vždy " +"otestuj\n" +"aby si si bol istý) vytvorí pevnú úroveň lietajúcej pevniny." + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "Pokročilé" #: src/settings_translation_file.cpp msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." msgstr "" -"Odpočúvacia adresa Promethea.\n" -"Ak je minetest skompilovaný s nastaveným ENABLE_PROMETHEUS,\n" -"aktivuj odpočúvanie metriky pre Prometheus na zadanej adrese.\n" -"Metrika môže byť získaná na http://127.0.0.1:30000/metrics" +"Zmení svetelnú krivku aplikovaním 'gamma korekcie'.\n" +"Vyššie hodnoty robia stredné a nižšie tóny svetlejšími.\n" +"Hodnota '1.0' ponechá svetelnú krivku nezmenenú.\n" +"Toto má vplyv len na denné a umelé svetlo,\n" +"ma len veľmi malý vplyv na prirodzené nočné svetlo." #: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "Ukladanie mapy získanej zo servera" +msgid "Always fly and fast" +msgstr "Vždy zapnuté lietanie a rýchlosť" #: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "Ulož mapu získanú klientom na disk." - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "Pripoj sa na externý média server" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" -"Aktivuj použitie vzdialeného média servera (ak je poskytovaný serverom).\n" -"Vzdialený server poskytuje výrazne rýchlejší spôsob pre sťahovanie médií (" -"napr. textúr)\n" -"pri pripojení na server." - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "Úpravy (modding) cez klienta" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" -"Aktivuj podporu úprav na klientovi pomocou Lua skriptov.\n" -"Táto podpora je experimentálna a API sa môže zmeniť." - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "URL zoznamu serverov" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" -"Adresa (URL) k zoznamu serverov, ktorý sa zobrazuje v záložke Multiplayer." - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "Súbor so zoznamom serverov" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" -"Súbor v client/serverlist ktorý obsahuje obľúbené servery, ktoré\n" -"sa zobrazujú v záložke Multiplayer." - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "Maximálna veľkosť výstupnej komunikačnej fronty" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" -"Maximálna veľkosť výstupnej komunikačnej fronty.\n" -"0 pre zakázanie fronty a -1 pre neobmedzenú frontu." - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "Aktivuj potvrdenie registrácie" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" -"Aktivuj potvrdzovanie registrácie pri pripájaní sa k serveru.\n" -"Ak je zakázané, nové konto sa zaregistruje automaticky." - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "Čas odstránenia bloku mapy" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" -"Časový limit na klientovi, pre odstránenie nepoužívaných mapových dát z " -"pamäte." - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "Limit blokov mapy" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" -"Maximálny počet blokov u klienta, ktoré ostávajú v pamäti.\n" -"Nastav -1 pre neobmedzené množstvo." - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "Zobraz ladiace informácie" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "Zobrazenie ladiaceho okna na klientovi (má rovnaký efekt ako F5)." - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "Server / Hra pre jedného hráča" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "Meno servera" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" -"Zobrazované meno servera, keď sa hráč na server pripojí a v zozname serverov." - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "Popis servera" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" -"Zobrazovaný popis servera, keď sa hráč na server pripojí a v zozname " -"serverov." - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "Doménové meno servera, ktoré bude zobrazené v zozname serverov." - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "URL servera" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "Domovská stránka servera, ktorá bude zobrazená v zozname serverov." - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "Zverejni server" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "Automaticky zápis do zoznamu serverov." - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "Zverejni v zozname serverov." - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "Odstráň farby" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" -"Odstráň farby z prichádzajúcich komunikačných správ\n" -"Použi pre zabránenie používaniu farieb hráčmi v ich správach" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "Port servera" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" -"Sieťový port (UDP).\n" -"Táto hodnota bude prepísaná pri spustení z hlavného menu." - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "Spájacia adresa" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "Sieťové rozhranie, na ktorom server načúva." - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "Prísna kontrola protokolu" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" -"Aktivuj zakázanie pripojenia starých klientov.\n" -"Starší klienti sú kompatibilný v tom zmysle, že nepadnú pri pripájaní\n" -"k novým serverom, ale nemusia podporovať nové funkcie, ktoré očakávaš." - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "Vzdialené média" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" -"Špecifikuje URL s ktorého klient stiahne média namiesto použitia UDP.\n" -"$filename by mal byt dostupný z $remote_media$filename cez cURL\n" -"(samozrejme, remote_media by mal končiť lomítkom).\n" -"Súbory, ktoré nie sú dostupné budú získané štandardným spôsobom." - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "IPv6 server" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" -"Aktivuj/vypni IPv6 server.\n" -"Ignorované, ak je nastavená bind_address .\n" -"Vyžaduje povolené enable_ipv6." - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "Maximum súčasných odoslaní bloku na klienta" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" -"Maximálny počet súčasne posielaných blokov na klienta.\n" -"Maximálny počet sa prepočítava dynamicky:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "Oneskorenie posielania blokov po výstavbe" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" -"Pre zníženie lagu, prenos blokov je spomalený, keď hráč niečo stavia.\n" -"Toto určuje ako dlho je spomalený po vložení, alebo zmazaní kocky." - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "Max. paketov za opakovanie" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" -"Maximálny počet paketov poslaný pri jednom kroku posielania,\n" -"ak máš pomalé pripojenie skús ho znížiť, ale\n" -"neznižuj ho pod dvojnásobok cieľového počtu klientov." - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "Štandardná hra" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" -"Štandardná hra pri vytváraní nového sveta.\n" -"Toto bude prepísané pri vytvorení nového sveta z hlavného menu." - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "Správa dňa" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "Správa dňa sa zobrazí hráčom pri pripájaní." - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "Maximálny počet hráčov" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "Maximálny počet hráčov, ktorí sa môžu súčasne pripojiť." - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "Adresár máp" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" -"Adresár sveta (všetko na svete je uložené tu).\n" -"Nie je potrebné ak sa spúšťa z hlavného menu." - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "Životnosť odložených vecí" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" -"Čas existencie odložený (odhodených) vecí v sekundách.\n" -"Nastavené na -1 vypne túto vlastnosť." - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "Štandardná veľkosť kôpky" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" -"Definuje štandardnú veľkosť kôpky kociek, vecí a nástrojov.\n" -"Ber v úvahu, že rozšírenia, alebo hry môžu explicitne nastaviť veľkosť pre " -"určité (alebo všetky) typy." - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "Zranenie" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "Aktivuje aby mohol byť hráč zranený a zomrieť." - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "Kreatívny režim" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "Aktivuj kreatívny režim pre novo vytvorené mapy." - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "Predvolené semienko mapy" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" -"Zvolené semienko pre novú mapu, ponechaj prázdne pre náhodné.\n" -"Pri vytvorení nového sveta z hlavného menu, bude prepísané." - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "Štandardné heslo" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "Noví hráči musia zadať toto heslo." - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "Štandardné práva" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" -"Oprávnenia, ktoré automaticky dostane nový hráč.\n" -"Pozri si /privs v hre pre kompletný zoznam pre daný server a konfigurácie " -"rozšírení." - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "Základné práva" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "Oprávnenia, ktoré môže udeliť hráč s basic_privs" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "Neobmedzená vzdialenosť zobrazenia hráča" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" -"Či sa hráči zobrazia klientom bez obmedzenia vzdialenosti.\n" -"Zastarané, namiesto tohto použi player_transfer_distance." - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "Vzdialenosť zobrazenia hráča" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" -"Určuje maximálnu vzdialenosť zobrazenia hráča v blokoch (0 = neobmedzená)." - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "Hráč proti hráčovi (PvP)" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "Či sa môžu hráči navzájom poškodzovať a zabiť." - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "Komunikačné kanály rozšírení" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "Aktivuj podporu komunikačných kanálov rozšírení (mod channels)." - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "Pevný bod obnovy" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "Ak je povolený, hráči vždy ožijú (obnovia sa) na zadanej pozícií." - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "Zakáž prázdne heslá" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "Ak je aktivované, nový hráči sa nemôžu pridať bez zadaného hesla." - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "Zakáž anticheat" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "Ak je aktivované, zruší ochranu pred podvodmi (cheatmi) v multiplayeri." - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "Nahrávanie pre obnovenie" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" -"Ak je aktivované, akcie sa nahrávajú pre účely obnovenia.\n" -"Toto nastavenie sa prečíta len pri štarte servera." - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "Formát komunikačných správ" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" -"Formát komunikačných správ hráča. Nasledujúce reťazce sú platné zástupné " -"symboly:\n" -"@name, @message, @timestamp (voliteľné)" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "Správa pri vypínaní" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "Správa, ktorá sa zobrazí všetkým klientom, keď sa server vypína." - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "Správa pri páde" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "Správa, ktorá sa zobrazí všetkým klientom pri páde servera." - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "Ponúkni obnovu pripojenia po páde" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" -"Či ná ponúknuť klientom obnovenie spojenia po páde (Lua).\n" -"Povoľ, ak je tvoj server nastavený na automatický reštart." - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "Zasielaný rozsah aktívnych objektov" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" -"Do akej vzdialenosti vedia klienti o objektoch, uvádzané v blokoch mapy (16 " -"kociek).\n" -"\n" -"Nastavenie vyššie ako active_block_range spôsobí, že server bude\n" -"uchovávať objekty až do udanej vzdialenosti v smere v ktorom sa\n" -"hráč pozerá. (Toto môže zabrániť tomu aby mobovia zrazu zmizli z pohľadu)" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "Rozsah aktívnych blokov" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" -"Polomer objemu blokov okolo každého hráča, ktoré sú predmetom\n" -"záležitostí okolo aktívnych objektov, uvádzané v blokoch mapy (16 kociek).\n" -"V objektoch aktívnych blokov sú nahrávané a spúšťané ABM.\n" -"Toto je tiež minimálna vzdialenosť v ktorej sú aktívne objekty (mobovia) " -"zachovávaný.\n" -"Malo by to byť konfigurované spolu s active_object_send_range_blocks." - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "Max vzdialenosť posielania objektov" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" -"Z akej vzdialenosti sú bloky posielané klientovi, uvádzané v blokoch mapy (" -"16 kociek)." - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "Maximum vynútene nahraných blokov" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "Maximálny počet vynútene nahraných blokov mapy." - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "Interval posielania času" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "Interval v akom sa posiela denný čas klientom." - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "Rýchlosť času" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" -"Riadi dĺžku dňa a noci.\n" -"Príklad:\n" -"72 = 20min, 360 = 4min, 1 = 24hodín, 0 = deň/noc/čokoľvek ostáva nezmenený." - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "Počiatočný čas sveta" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "Čas pri spustení nového sveta, v milihodinách (0-23999)." - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "Interval ukladania mapy" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "Interval ukladania dôležitých zmien vo svete, uvádzaný v sekundách." - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "Max dĺžka správy" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "Nastav maximálny počet znakov komunikačnej správy posielanej klientmi." - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "Limit počtu správ" +msgid "Ambient occlusion gamma" +msgstr "Ambient occlusion gamma" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." msgstr "Počet správ, ktoré môže hráč poslať za 10 sekúnd." #: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "Hranica správ pre vylúčenie" +msgid "Amplifies the valleys." +msgstr "Zväčšuje údolia." #: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "Vylúč hráča, ktorý pošle viac ako X správ za 10 sekúnd." +msgid "Anisotropic filtering" +msgstr "Anisotropné filtrovanie" #: src/settings_translation_file.cpp -msgid "Physics" -msgstr "Fyzika" +msgid "Announce server" +msgstr "Zverejni server" #: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "Štandardné zrýchlenie" +msgid "Announce to this serverlist." +msgstr "Zverejni v zozname serverov." + +#: src/settings_translation_file.cpp +msgid "Append item name" +msgstr "Pridaj názov položky/veci" + +#: src/settings_translation_file.cpp +msgid "Append item name to tooltip." +msgstr "Pridaj názov veci do popisku." + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "Šum jabloní" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" +msgstr "Zotrvačnosť ruky" #: src/settings_translation_file.cpp msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." msgstr "" -"Horizontálne a vertikálne zrýchlenie na zemi, alebo pri šplhaní,\n" -"v kockách za sekundu na druhú." +"Zotrvačnosť ruky, vytvára realistickejší pohyb ruky\n" +"pri pohybe kamery." #: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "Zrýchlenie vo vzduchu" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" -"Horizontálne zrýchlenie vo vzduchu pri skákaní alebo padaní,\n" -"v kockách za sekundu na druhú." - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "Zrýchlenie v rýchlom režime" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" -"Horizontálne a vertikálne zrýchlenie v rýchlom režime,\n" -"v kockách za sekundu na druhú." - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "Rýchlosť chôdze" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "Rýchlosť chôdze a lietania, v kockách za sekundu." - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "Rýchlosť zakrádania" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "Rýchlosť zakrádania sa, v kockách za sekundu." - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "Rýchlosť v rýchlom režime" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" -"Rýchlosť chôdze, lietania a šplhania v rýchlom režime, v kockách za sekundu." - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "Rýchlosť šplhania" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "Vertikálna rýchlosť šplhania, v kockách za sekundu." - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "Rýchlosť skákania" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "Počiatočná vertikálna rýchlosť pri skákaní, v kockách za sekundu." - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "Tekutosť kvapalín" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "Zníž pre spomalenie tečenia." - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "Zjemnenie tekutosti kvapalín" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" -"Maximálny odpor tekutín. Riadi spomalenie ak sa tekutina\n" -"vlieva vysokou rýchlosťou." - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "Ponáranie v tekutinách" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "Riadi rýchlosť ponárania v tekutinách." - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "Gravitácia" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "Gravitačné zrýchlenie, v kockách za sekundu na druhú." - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "Zastaralé Lua API spracovanie" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" -"Spracovanie zastaralých Lua API volaní:\n" -"- legacy: (skús to) napodobni staré správanie (štandard pre release).\n" -"- log: napodobni log backtrace zastaralého volania (štandard pre debug)." -"\n" -"- error: preruš spracovanie zastaralého volania (odporúčané pre vývojárov " -"rozšírení)." - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "Max. extra blokov clearobjects" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" -"Počet extra blokov, ktoré môžu byť naraz nahrané pomocou /clearobjects.\n" -"Toto je kompromis medzi vyťažením sqlite transakciami\n" -"a spotrebou pamäti (4096=100MB, ako približné pravidlo)." - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "Uvoľni nepoužívané serverové dáta" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" -"Koľko bude server čakať kým uvoľní nepoužívané bloky mapy.\n" -"Vyššia hodnota je plynulejšia, ale použije viac RAM." - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "Max. počet objektov na blok" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "Maximálny počet staticky uložených objektov v bloku." - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "Synchrónne SQLite" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "Viď. https://www.sqlite.org/pragma.html#pragma_synchronous" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "Určený krok servera" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" -"Dĺžka kroku servera a interval v ktorom sú objekty aktualizované\n" -"cez sieť." - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "Riadiaci interval aktívnych blokov" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "Časový interval medzi jednotlivými riadiacimi cyklami aktívnych blokov" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "ABM interval" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" -"Časový interval medzi jednotlivými vykonávacími cyklami ABM (Active Block " -"Modifier)" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "Interval časovača kociek" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" -"Časový interval medzi jednotlivými vykonávacími cyklami časovača kociek " -"(NodeTimer)" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "Ignoruj chyby vo svete" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" -"Ak je aktivované, chybné dáta nespôsobia vypnutie servera.\n" -"Povoľ len ak vieš čo robíš." - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "Max sprac. tekutín" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "Maximálny počet tekutín spracovaný v jednom kroku." - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "Čas do uvolnenia fronty tekutín" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" -"Čas (c sekundách) kedy fronta tekutín môže narastať nad kapacitu\n" -"spracovania než bude urobený pokus o jej zníženie zrušením starých\n" -"vecí z fronty. Hodnota 0 vypne túto funkciu." - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "Aktualizačný interval tekutín" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "Aktualizačný interval tekutín v sekundách." - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "Vzdialenosť pre optimalizáciu posielania blokov" +msgid "Ask to reconnect after crash" +msgstr "Ponúkni obnovu pripojenia po páde" #: src/settings_translation_file.cpp msgid "" @@ -5557,8 +2338,1524 @@ msgstr "" "Udávane v blokoch mapy (16 kociek)." #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "Occlusion culling na strane servera" +msgid "Automatic forward key" +msgstr "Tlačidlo Automatický pohyb vpred" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "Automaticky vyskočí na prekážku vysokú jedna kocka." + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "Automaticky zápis do zoznamu serverov." + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "Pamätať si veľkosť obrazovky" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "Režim automatickej zmeny mierky" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "Tlačidlo Vzad" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "Základná úroveň dna" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "Základná výška terénu." + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "Základné" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "Základné práva" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "Šum pláže" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "Hraničná hodnota šumu pláže" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "Bilineárne filtrovanie" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "Spájacia adresa" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "Parametre šumu teploty a vlhkosti pre Biome API" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "Šum biómu" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "Počet bitov na pixel (farebná hĺbka) v režime celej obrazovky." + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "Vzdialenosť pre optimalizáciu posielania blokov" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "Cesta k tučnému šikmému písmu" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "Cesta k tučnému šikmému písmu s pevnou šírkou" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "Cesta k tučnému písmu" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "Cesta k tučnému písmu s pevnou šírkou" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "Stavanie vnútri hráča" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "Vstavané (Builtin)" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" +"Vzdialenosť kamery 'blízko orezanej roviny' v kockách, medzi 0 a 0.25\n" +"Funguje len na GLES platformách. Väčšina toto nepotrebuje meniť.\n" +"Zvýšenie môže zredukovať artefakty na slabších GPU.\n" +"0.1 = Štandardná hodnota, 0.25 = Dobrá hodnota pre slabé tablety." + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "Plynulý pohyb kamery" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "Plynulý pohyb kamery vo filmovom režime" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "Tlačidlo Aktualizácia pohľadu" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "Šum jaskyne" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "Šum jaskýň #1" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "Šum jaskýň #2" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "Šírka jaskyne" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "Cave1 šum" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "Cave2 šum" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "Limit dutín" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "Šum dutín" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "Zbiehavosť dutín" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "Hraničná hodnota dutín" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "Horný limit dutín" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" +"Centrum rozsahu zosilnenia svetelnej krivky.\n" +"Kde 0.0 je minimálna úroveň, 1.0 je maximálna úroveň ." + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "Veľkosť komunikačného písma" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "Tlačidlo Komunikácia" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "Úroveň komunikačného logu" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "Limit počtu správ" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "Formát komunikačných správ" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "Hranica správ pre vylúčenie" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "Max dĺžka správy" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "Tlačidlo Prepnutie komunikácie" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "Komunikačné príkazy" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "Veľkosť časti (chunk)" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "Filmový mód" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "Tlačidlo Filmový režim" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "Vyčisti priehľadné textúry" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "Klient" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "Klient a Server" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "Úpravy (modding) cez klienta" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "Obmedzenia úprav na strane klienta" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "Obmedzenie vyhľadávania dosahu kociek na strane klienta" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "Rýchlosť šplhania" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "Polomer mrakov" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "Mraky" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "Mraky sú efektom na strane klienta." + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "Mraky v menu" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "Farebná hmla" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" +"Čiarkou oddelený zoznam príznakov, ktoré sa skryjú v zozname doplnkov.\n" +"\"nonfree\" môže byť využité na skrytie doplnkov, ktoré nie je možné " +"považovať za 'voľný softvér',\n" +"tak ako je definovaný Free Software Foundation.\n" +"Môžeš definovať aj hodnotenie obsahu.\n" +"Tie to príznaky sú nezávislé od verzie Minetestu,\n" +"viď. aj kompletný zoznam na https://content.minetest.net/help/content_flags/" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" +"Čiarkou oddelený zoznam rozšírení, ktoré majú povolené prístup na HTTP API,\n" +"ktoré im dovolia posielať a sťahovať dáta z/na internet." + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" +"Čiarkou oddelený zoznam dôveryhodných rozšírení, ktoré majú povolené\n" +"nebezpečné funkcie aj keď je bezpečnosť rozšírení aktívna (cez " +"request_insecure_environment())." + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "Tlačidlo Príkaz" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "Prepojené sklo" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "Pripoj sa na externý média server" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "Prepojí sklo, ak je to podporované kockou." + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "Priehľadnosť konzoly" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "Farba konzoly" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "Výška konzoly" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "Čierna listina príznakov z ContentDB" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "Cesta (URL) ku ContentDB" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "Neustály pohyb vpred" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" +"Neustály pohyb vpred, prepína sa klávesou pre \"Automatický pohyb vpred\".\n" +"Opätovne stlač klávesu pre \"Automatický pohyb vpred\", alebo pohyb vzad pre " +"vypnutie." + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "Ovládanie" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" +"Riadi dĺžku dňa a noci.\n" +"Príklad:\n" +"72 = 20min, 360 = 4min, 1 = 24hodín, 0 = deň/noc/čokoľvek ostáva nezmenený." + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "Riadi rýchlosť ponárania v tekutinách." + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "Riadi strmosť/hĺbku jazier." + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "Riadi strmosť/výšku kopcov." + +#: src/settings_translation_file.cpp +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" +"Riadi šírku tunelov, menšia hodnota vytvára širšie tunely.\n" +"Hodnota >= 10.0 úplne vypne generovanie tunelov, čím sa vyhne\n" +"náročným prepočtom šumu." + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "Správa pri páde" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "Kreatívny režim" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "Priehľadnosť zameriavača" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "Priehľadnosť zameriavača (nepriehľadnosť, medzi 0 a 255)." + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "Farba zameriavača" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "DPI" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "Zranenie" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "Tlačidlo Ladiace informácie" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "Hraničná veľkosť ladiaceho log súboru" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "Úroveň ladiacich info" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "Tlačidlo Zníž hlasitosť" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "Zníž pre spomalenie tečenia." + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "Určený krok servera" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "Štandardné zrýchlenie" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "Štandardná hra" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" +"Štandardná hra pri vytváraní nového sveta.\n" +"Toto bude prepísané pri vytvorení nového sveta z hlavného menu." + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "Štandardné heslo" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "Štandardné práva" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "Štandardný formát záznamov" + +#: src/settings_translation_file.cpp +msgid "Default stack size" +msgstr "Štandardná veľkosť kôpky" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" +"Štandardný časový rámec pre cURL, zadaný v milisekundách.\n" +"Má efekt len ak je skompilovaný s cURL." + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "Definuje oblasti, kde stromy majú jablká." + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "Definuje oblasti s pieskovými plážami." + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "Definuje rozdelenie vyššieho terénu a strmosť útesov." + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "Definuje rozdelenie vyššieho terénu." + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "Definuje plnú šírku dutín, menšie hodnoty vytvoria väčšie dutiny." + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "Vo veľkom merítku definuje štruktúru kanálov riek." + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "Definuje umiestnenie a terén voliteľných kopcov a jazier." + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "Definuje úroveň dna." + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "Definuje hĺbku koryta rieky." + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" +"Určuje maximálnu vzdialenosť zobrazenia hráča v blokoch (0 = neobmedzená)." + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "Definuje šírku pre koryto rieky." + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "Definuje šírku údolia rieky." + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "Definuje oblasti so stromami a hustotu stromov." + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" +"Oneskorenie, kým sa Mesh aktualizuje na strane klienta v ms.\n" +"Zvýšenie spomalí množstvo aktualizácie Mesh objektov, teda zníži chvenie na " +"pomalších klientoch." + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "Oneskorenie posielania blokov po výstavbe" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "Oneskorenie zobrazenia popisku, zadané v milisekundách." + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "Zastaralé Lua API spracovanie" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "Hĺbka pod ktorou nájdeš gigantické dutiny/jaskyne." + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "Hĺbka pod ktorou nájdeš veľké jaskyne." + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" +"Zobrazovaný popis servera, keď sa hráč na server pripojí a v zozname " +"serverov." + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "Hraničná hodnota šumu púšte" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" +"Púšte sa objavia keď np_biome presiahne túto hodnotu.\n" +"Ak je aktívny príznak 'snowbiomes', tak toto je ignorované." + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "Nesynchronizuj animáciu blokov" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Tlačidlo Vpravo" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "Časticové efekty pri kopaní" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "Zakáž anticheat" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "Zakáž prázdne heslá" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "Doménové meno servera, ktoré bude zobrazené v zozname serverov." + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "Dvakrát skok pre lietanie" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "Dvojnásobné stlačenie klávesy pre skok prepne režim lietania." + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "Tlačidlo Zahoď vec" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "Získaj ladiace informácie generátora máp." + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "Maximálne Y kobky" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "Minimálne Y kobky" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "Šum kobky" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" +"Aktivuj IPv6 podporu (pre klienta ako i server).\n" +"Požadované aby IPv6 spojenie vôbec mohlo fungovať." + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" +"Aktivuj podporu úprav na klientovi pomocou Lua skriptov.\n" +"Táto podpora je experimentálna a API sa môže zmeniť." + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "Aktivuj okno konzoly" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "Aktivuj kreatívny režim pre novo vytvorené mapy." + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "Aktivuj joysticky" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "Aktivuj podporu komunikačných kanálov rozšírení (mod channels)." + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "Aktivuj rozšírenie pre zabezpečenie" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "Aktivuje aby mohol byť hráč zranený a zomrieť." + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "Aktivuje náhodný užívateľský vstup (používa sa len pre testovanie)." + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "Aktivuj potvrdenie registrácie" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" +"Aktivuj potvrdzovanie registrácie pri pripájaní sa k serveru.\n" +"Ak je zakázané, nové konto sa zaregistruje automaticky." + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" +"Aktivuj jemné nasvietenie pomocou jednoduchej \"ambient occlusion\".\n" +"Vypni pre zrýchlenie, alebo iný vzhľad." + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" +"Aktivuj zakázanie pripojenia starých klientov.\n" +"Starší klienti sú kompatibilný v tom zmysle, že nepadnú pri pripájaní\n" +"k novým serverom, ale nemusia podporovať nové funkcie, ktoré očakávaš." + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" +"Aktivuj použitie vzdialeného média servera (ak je poskytovaný serverom).\n" +"Vzdialený server poskytuje výrazne rýchlejší spôsob pre sťahovanie médií " +"(napr. textúr)\n" +"pri pripojení na server." + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" +"Aktivuj \"vertex buffer objects\".\n" +"Toto by malo viditeľne zvýšiť grafický výkon." + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" +"Aktivuj pohupovanie sa a hodnotu pohupovania.\n" +"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné." + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" +"Aktivuj/vypni IPv6 server.\n" +"Ignorované, ak je nastavená bind_address .\n" +"Vyžaduje povolené enable_ipv6." + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" +"Aktivuje Hablov 'Uncharted 2' filmový tone mapping.\n" +"Simuluje farebnú krivku fotografického filmu a ako sa približuje\n" +"vzhľadu obrázku s veľkým dynamickým rozsahom. Stredový kontrast je mierne\n" +"zlepšený, nasvietenie a tiene sú postupne zhustené." + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "Aktivuje animáciu vecí v inventári." + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "Aktivuje ukladanie tvárou rotovaných Mesh objektov do medzipamäti." + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "Aktivuje minimapu." + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" +"Aktivuje zvukový systém.\n" +"Ak je zakázaný, tak kompletne zakáže všetky zvuky\n" +"a ovládanie hlasitosti v hre bude nefunkčné.\n" +"Zmena tohto nastavenia si vyžaduje reštart hry." + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "Interval tlače profilových dát enginu" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "Metódy bytostí" + +#: src/settings_translation_file.cpp +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" +"Exponent zošpicatenia lietajúcej pevniny. Pozmeňuje fungovanie " +"zošpicatenia.\n" +"Hodnota = 1.0 vytvorí stále, lineárne zošpicatenie.\n" +"Hodnoty > 1.0 vytvoria plynulé zošpicatenie, vhodné pre štandardné oddelené\n" +"lietajúce pevniny.\n" +"Hodnoty < 1.0 (napríklad 0.25) vytvoria viac vymedzený povrch s\n" +"rovnejšími nížinami, vhodné ako pevná základná vrstva lietajúcej pevniny." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Maximálne FPS, ak je hra pozastavená." + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "FSAA" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "Faktor šumu" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "Faktor pohupovania sa pri pádu" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "Cesta k záložnému písmu" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "Tieň záložného písma" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "Priehľadnosť tieňa záložného fontu" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "Veľkosť záložného písma" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "Tlačidlo Rýchlosť" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "Zrýchlenie v rýchlom režime" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "Rýchlosť v rýchlom režime" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "Rýchly pohyb" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" +"Rýchly pohyb (cez \"špeciálnu\" klávesu).\n" +"Toto si na serveri vyžaduje privilégium \"fast\"." + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "Zorné pole" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "Zorné pole v stupňoch." + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" +"Súbor v client/serverlist ktorý obsahuje obľúbené servery, ktoré\n" +"sa zobrazujú v záložke Multiplayer." + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "Hĺbka výplne" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "Šum hĺbky výplne" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "Filmový tone mapping" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" +"Filtrované textúry môžu zmiešať svoje RGB hodnoty s plne priehľadnými " +"susedmi,\n" +"s PNG optimizérmi obvykle zmazané, niekdy môžu viesť k tmavým oblastiam\n" +"alebo svetlým rohom na priehľadnej textúre.\n" +"Aplikuj tento filter na ich vyčistenie pri nahrávaní textúry." + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "Filtrovanie" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "Prvý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "Prvý z dvoch 3D šumov, ktoré spolu definujú tunely." + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "Predvolené semienko mapy" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "Pevný virtuálny joystick" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "Hustota lietajúcej pevniny" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "Maximálne Y lietajúcich pevnín" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "Minimálne Y lietajúcich pevnín" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "Šum lietajúcich krajín" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "Exponent kužeľovitosti lietajúcej pevniny" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "Vzdialenosť špicatosti lietajúcich krajín" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "Úroveň vody lietajúcich pevnín" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "Tlačidlo Lietanie" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "Lietanie" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "Hmla" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "Začiatok hmly" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "Tlačidlo Prepnutie hmly" + +#: src/settings_translation_file.cpp +msgid "Font bold by default" +msgstr "Štandardne tučné písmo" + +#: src/settings_translation_file.cpp +msgid "Font italic by default" +msgstr "Štandardne šikmé písmo" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "Tieň písma" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "Priehľadnosť tieňa písma" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "Veľkosť písma" + +#: src/settings_translation_file.cpp +msgid "Font size of the default font in point (pt)." +msgstr "Veľkosť písma štandardného písma v bodoch (pt)." + +#: src/settings_translation_file.cpp +msgid "Font size of the fallback font in point (pt)." +msgstr "Veľkosť písma záložného písma v bodoch (pt)." + +#: src/settings_translation_file.cpp +msgid "Font size of the monospace font in point (pt)." +msgstr "Veľkosť písma s pevnou šírkou v bodoch (pt)." + +#: src/settings_translation_file.cpp +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" +"Veľkosť písma aktuálneho komunikačného textu a príkazového riadku v bodoch " +"(pt).\n" +"Pri hodnote 0 bude použitá štandardná veľkosť písma." + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" +"Formát komunikačných správ hráča. Nasledujúce reťazce sú platné zástupné " +"symboly:\n" +"@name, @message, @timestamp (voliteľné)" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "Formát obrázkov snímok obrazovky." + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "Formspec štandardná farba pozadia" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "Formspec štandardná nepriehľadnosť pozadia" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "Formspec Celo-obrazovková farba pozadia" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "Formspec Celo-obrazovková nepriehľadnosť pozadia" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "Štandardná farba pozadia (R,G,B) v definícii formulára (Formspec)." + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" +"Štandardná nepriehľadnosť pozadia (medzi 0 a 255) v definícii formulára " +"(Formspec)." + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" +"Farba pozadia (R,G,B) v režime celej obrazovky v definícii formulára " +"(Formspec)." + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" +"Nepriehľadnosť pozadia (0-255) v režime celej obrazovky v definícii " +"formulára (Formspec)." + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "Tlačidlo Vpred" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "Štvrtý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "Typ fraktálu" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "Zlomok viditeľnej vzdialenosti od ktorej začne byť vykresľovaná hmla" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "FreeType písma" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" +"Z akej vzdialeností sú klientovi generované bloky, zadané v blokoch mapy (16 " +"kociek)." + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" +"Z akej vzdialenosti sú bloky posielané klientovi, uvádzané v blokoch mapy " +"(16 kociek)." + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" +"Do akej vzdialenosti vedia klienti o objektoch, uvádzané v blokoch mapy (16 " +"kociek).\n" +"\n" +"Nastavenie vyššie ako active_block_range spôsobí, že server bude\n" +"uchovávať objekty až do udanej vzdialenosti v smere v ktorom sa\n" +"hráč pozerá. (Toto môže zabrániť tomu aby mobovia zrazu zmizli z pohľadu)" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "Celá obrazovka" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "BPP v režime celej obrazovky" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "Režim celej obrazovky." + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "Mierka GUI" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "Filter mierky GUI" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "Filter mierky GUI txr2img" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "Globálne odozvy" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" +"Globálne atribúty pre generovanie máp.\n" +"V generátore v6 príznak 'decorations' riadi všetky dekorácie okrem stromov\n" +"a vysokej trávy, vo všetkých ostatných generátoroch tento príznak riadi " +"všetky dekorácie." + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" +"Gradient svetelnej krivky na maximálnych úrovniach svetlosti.\n" +"Upravuje kontrast najvyšších úrovni svetlosti." + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" +"Gradient svetelnej krivky na minimálnych úrovniach svetlosti.\n" +"Upravuje kontrast najnižších úrovni svetlosti." + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "Grafika" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "Gravitácia" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "Základná úroveň" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "Šum terénu" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "HTTP rozšírenia" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "Mierka HUD" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "Tlačidlo Prepínanie HUD" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" +"Spracovanie zastaralých Lua API volaní:\n" +"- legacy: (skús to) napodobni staré správanie (štandard pre release).\n" +"- log: napodobni log backtrace zastaralého volania (štandard pre " +"debug).\n" +"- error: preruš spracovanie zastaralého volania (odporúčané pre vývojárov " +"rozšírení)." + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" +"Ako má profiler inštrumentovať sám seba:\n" +"* Inštrumentuj prázdnu funkciu.\n" +"Toto odhaduje režijné náklady, táto inštrumentácia pridáva (+1 funkčné " +"volanie).\n" +"* Instrument the sampler being used to update the statistics." + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "Šum miešania teplôt" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "Teplotný šum" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "Výška okna po spustení." + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "Výškový šum" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "Šum výšok" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "Vysoko-presné FPU" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "Strmosť kopcov" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "Hranica kopcov" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "Šum Kopcovitosť1" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "Šum Kopcovitosť2" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "Šum Kopcovitosť3" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "Šum Kopcovitosť4" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "Domovská stránka servera, ktorá bude zobrazená v zozname serverov." + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" +"Horizontálne zrýchlenie vo vzduchu pri skákaní alebo padaní,\n" +"v kockách za sekundu na druhú." + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" +"Horizontálne a vertikálne zrýchlenie v rýchlom režime,\n" +"v kockách za sekundu na druhú." + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" +"Horizontálne a vertikálne zrýchlenie na zemi, alebo pri šplhaní,\n" +"v kockách za sekundu na druhú." + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "Tlačidlo Nasledujúca vec na opasku" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "Tlačidlo Predchádzajúcu vec na opasku" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "Tlačidlo Opasok pozícia 1" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "Tlačidlo Opasok pozícia 10" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "Tlačidlo Opasok pozícia 11" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "Tlačidlo Opasok pozícia 12" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "Tlačidlo Opasok pozícia 13" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "Tlačidlo Opasok pozícia 14" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "Tlačidlo Opasok pozícia 15" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "Tlačidlo Opasok pozícia 16" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "Tlačidlo Opasok pozícia 17" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "Tlačidlo Opasok pozícia 18" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "Tlačidlo Opasok pozícia 19" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "Tlačidlo Opasok pozícia 2" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "Tlačidlo Opasok pozícia 20" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "Tlačidlo Opasok pozícia 21" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "Tlačidlo Opasok pozícia 22" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "Tlačidlo Opasok pozícia 23" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "Tlačidlo Opasok pozícia 24" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "Tlačidlo Opasok pozícia 25" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "Tlačidlo Opasok pozícia 26" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "Tlačidlo Opasok pozícia 27" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "Tlačidlo Opasok pozícia 28" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "Tlačidlo Opasok pozícia 29" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "Tlačidlo Opasok pozícia 3" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "Tlačidlo Opasok pozícia 30" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "Tlačidlo Opasok pozícia 31" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "Tlačidlo Opasok pozícia 32" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "Tlačidlo Opasok pozícia 4" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "Tlačidlo Opasok pozícia 5" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "Tlačidlo Opasok pozícia 6" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "Tlačidlo Opasok pozícia 7" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "Tlačidlo Opasok pozícia 8" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "Tlačidlo Opasok pozícia 9" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "Aké hlboké majú byť rieky." + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" +"Ako rýchlo sa budú pohybovať vlny tekutín. Vyššia hodnota = rýchlejšie.\n" +"Ak je záporná, tekutina sa bude pohybovať naspäť.\n" +"Požaduje, aby boli aktivované vlniace sa tekutiny." + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" +"Koľko bude server čakať kým uvoľní nepoužívané bloky mapy.\n" +"Vyššia hodnota je plynulejšia, ale použije viac RAM." + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "Aké široké majú byť rieky." + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "Šum miešania vlhkostí" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "Šum vlhkosti" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "Odchýlky vlhkosti pre biómy." + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "IPv6" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "IPv6 server" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" +"Ak by malo byt FPS vyššie, bude obmedzené, aby\n" +"sa bezvýznamne, bez úžitku neplytvalo výkonom CPU." + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." +msgstr "" +"Ak je aktivované, použije sa \"špeciálna\" klávesa na lietanie, v prípade,\n" +"že je povolený režim lietania aj rýchlosti." #: src/settings_translation_file.cpp msgid "" @@ -5575,8 +3872,2067 @@ msgstr "" "takže funkčnosť režim prechádzania stenami je obmedzená." #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "Obmedzenia úprav na strane klienta" +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" +"Ak je aktivovaný spolu s režimom lietania, tak je hráč schopný letieť cez " +"pevné kocky.\n" +"Toto si na serveri vyžaduje privilégium \"noclip\"." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" +"Ak je aktivované, použije sa namiesto klávesy pre \"zakrádanie\" \"špeciálnu " +"klávesu\"\n" +"pre klesanie a šplhanie dole." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" +"Ak je aktivované, akcie sa nahrávajú pre účely obnovenia.\n" +"Toto nastavenie sa prečíta len pri štarte servera." + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" +"Ak je aktivované, zruší ochranu pred podvodmi (cheatmi) v multiplayeri." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" +"Ak je aktivované, chybné dáta nespôsobia vypnutie servera.\n" +"Povoľ len ak vieš čo robíš." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" +"Ak je aktivované, tak je smer pohybu pri lietaní, alebo plávaní daný sklonom " +"hráča." + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "Ak je aktivované, nový hráči sa nemôžu pridať bez zadaného hesla." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" +"Ak je aktivované, môžeš dať bloky na miesto kde stojíš (v úrovni päta + " +"oči).\n" +"Je to užitočné ak pracuješ s kockami v stiesnených priestoroch." + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" +"Ak sú CSM obmedzenia pre dohľad kocky aktívne, volania get_node sú\n" +"obmedzené touto vzdialenosťou od hráča ku kocke." + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" +"Ak veľkosť súboru debug.txt prekročí zadanú veľkosť v megabytoch,\n" +"keď bude otvorený, súbor bude presunutý do debug.txt.1,\n" +"ak existuje starší debug.txt.1, tak tento bude zmazaný.\n" +"debug.txt bude presunutý, len ak je toto nastavenie kladné." + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "Ak je povolený, hráči vždy ožijú (obnovia sa) na zadanej pozícií." + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "Ignoruj chyby vo svete" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "V hre" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "Priehľadnosť pozadia konzoly v hre (nepriehľadnosť, medzi 0 a 255)." + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "Pozadie (R,G,B) komunikačnej konzoly v hre." + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "Výška komunikačnej konzoly v hre, medzi 0.1 (10%) a 1.0 (100%)." + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "Tlačidlo Zvýš hlasitosť" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "Počiatočná vertikálna rýchlosť pri skákaní, v kockách za sekundu." + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" +"Inštrumentuj vstavané (builtin).\n" +"Toto je obvykle potrebné len pre core/builtin prispievateľov" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "Inštrumentuj komunikačné príkazy pri registrácií." + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" +"Inštrumentuj globálne odozvy volaní funkcií pri registrácií.\n" +"(čokoľvek je poslané minetest.register_*() funkcií)" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "Inštrumentuj funkcie ABM pri registrácií." + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "Inštrumentuj funkcie nahrávania modifikátorov blokov pri registrácií." + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "Inštrumentuj metódy bytostí pri registrácií." + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "Výstroj" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "Interval ukladania dôležitých zmien vo svete, uvádzaný v sekundách." + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "Interval v akom sa posiela denný čas klientom." + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "Animácia vecí v inventári" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "Tlačidlo Inventár" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "Obrátiť smer myši" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "Obráti vertikálny pohyb myši." + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "Cesta k šikmému písmu" + +#: src/settings_translation_file.cpp +msgid "Italic monospace font path" +msgstr "Cesta k šikmému písmu s pevnou šírkou" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "Životnosť odložených vecí" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "Iterácie" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" +"Iterácie rekurzívnej funkcie.\n" +"Zvýšenie zvýši úroveň jemnosti detailov, ale tiež\n" +"zvýši zaťaženie pri spracovaní.\n" +"Pri iteráciach = 20 má tento generátor podobné zaťaženie ako generátor V7." + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "ID joysticku" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "Interval opakovania tlačidla joysticku" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Typ joysticku" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "Citlivosť otáčania pohľadu joystickom" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "Typ joysticku" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" +"Len pre sadu Julia.\n" +"W komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Nemá vplyv na 3D fraktály.\n" +"Rozsah zhruba -2 až 2." + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" +"Len pre sadu Julia.\n" +"X komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" +"Len pre sadu Julia.\n" +"Y komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" +"Len pre sadu Julia.\n" +"Z komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "Julia w" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "Julia x" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "Julia y" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "Julia z" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "Tlačidlo Skok" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "Rýchlosť skákania" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre zníženie dohľadu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre zníženie hlasitosti.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre skákanie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre zahodenie aktuálne vybranej veci.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre zvýšenie dohľadu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre zvýšenie hlasitosti.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre skákanie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre rýchly pohyb hráča v rýchlom móde.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre pohyb hráča vzad.\n" +"Zároveň vypne automatický pohyb hráča dopredu, ak je aktívny.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre pohyb hráča vpred.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre pohyb hráča vľavo.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre pohyb hráča vpravo.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre vypnutie hlasitosti v hre.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre otvorenie komunikačného okna pre zadávanie príkazov.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre otvorenie komunikačného okna pre zadávanie lokálnych príkazov.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre otvorenie komunikačného okna.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre otvorenie inventára.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre skákanie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber jedenástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber dvanástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber trinástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber štrnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber pätnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber šestnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber sedemnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber osemnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber devätnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 20. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 21. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 22. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 23. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 24. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 25. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 26. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 27. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 28. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 29. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 30. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 31. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber 32. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber ôsmej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber piatej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber prvej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber štvrtej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber ďalšej veci na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber deviatej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber predchádzajúcej veci na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber druhej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber siedmej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber šiestej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber desiatej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre výber tretej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre utajený pohyb (zakrádanie) hráča.\n" +"Tiež sa používa pre zliezanie a ponáranie vo vode ak aux1_descends je " +"vypnutý.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepínanie medzi pohľadom z prvej a tretej osoby.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre snímanie obrazovky.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie režimu automatického pohybu vpred.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie filmového režimu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie zobrazenia minimapy.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie režimu rýchlosť.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie lietania.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie režimu prechádzania stenami.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie režimu pohyb podľa sklonu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie aktualizácie pohľadu. Používa sa len pre vývoj.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie zobrazenia komunikácie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie zobrazenia ladiacich informácií.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie zobrazenia hmly.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie zobrazenia HUD (Head-Up Display - výhľadový " +"displej).\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie zobrazenia veľkej konzoly na komunikáciu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie zobrazenia profileru. Používa sa pri vývoji.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre prepnutie neobmedzeného dohľadu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre použitie priblíženia pokiaľ je to možné .\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "Vylúč hráča, ktorý pošle viac ako X správ za 10 sekúnd." + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "Strmosť jazier" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "Hranica jazier" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "Jazyk" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "Hĺbka veľkých jaskýň" + +#: src/settings_translation_file.cpp +msgid "Large cave maximum number" +msgstr "Minimálny počet veľkých jaskýň" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "Minimálny počet veľkých jaskýň" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "Pomer zaplavených častí veľkých jaskýň" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "Tlačidlo Veľká komunikačná konzola" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "Štýl listov" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" +"Štýly listov:\n" +"- Ozdobné: všetky plochy sú viditeľné\n" +"- Jednoduché: sú použité len vonkajšie plochy, ak sú použité definované " +"\"special_tiles\"\n" +"- Nepriehľadné: vypne priehliadnosť" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "Tlačidlo Vľavo" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" +"Dĺžka kroku servera a interval v ktorom sú objekty aktualizované\n" +"cez sieť." + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" +"Dĺžka vĺn tekutín.\n" +"Požaduje, aby boli aktivované vlniace sa tekutiny." + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" +"Časový interval medzi jednotlivými vykonávacími cyklami ABM (Active Block " +"Modifier)" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" +"Časový interval medzi jednotlivými vykonávacími cyklami časovača kociek " +"(NodeTimer)" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "Časový interval medzi jednotlivými riadiacimi cyklami aktívnych blokov" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" +"Úroveň ladiacich informácií, ktoré budú zapísané do debug.txt:\n" +"- (bez logovania)\n" +"- žiadna (správy bez úrovne)\n" +"- chyby\n" +"- varovania\n" +"- akcie\n" +"- informácie\n" +"- všetko" + +#: src/settings_translation_file.cpp +msgid "Light curve boost" +msgstr "Zosilnenie svetelnej krivky" + +#: src/settings_translation_file.cpp +msgid "Light curve boost center" +msgstr "Stred zosilnenia svetelnej krivky" + +#: src/settings_translation_file.cpp +msgid "Light curve boost spread" +msgstr "Rozptyl zosilnenia svetelnej krivky" + +#: src/settings_translation_file.cpp +msgid "Light curve gamma" +msgstr "Svetelná gamma krivka" + +#: src/settings_translation_file.cpp +msgid "Light curve high gradient" +msgstr "Horný gradient svetelnej krivky" + +#: src/settings_translation_file.cpp +msgid "Light curve low gradient" +msgstr "Spodný gradient svetelnej krivky" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" +"Limit pre generovanie mapy, v kockách, vo všetkých 6 smeroch (0, 0, 0).\n" +"Len časti mapy (mapchunks) kompletne v rámci limitu generátora máp sú " +"generované.\n" +"Hodnota sa ukladá pre každý svet." + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" +"Maximálny počet paralelných HTTP požiadavok. Ovplyvňuje:\n" +"- Získavanie médií ak server používa nastavenie remote_media.\n" +"- Sťahovanie zoznamu serverov a zverejňovanie servera.\n" +"- Sťahovania vykonávané z hlavného menu (napr. správca rozšírení).\n" +"Má efekt len ak je skompilovaný s cURL." + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "Tekutosť kvapalín" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "Zjemnenie tekutosti kvapalín" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "Max sprac. tekutín" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "Čas do uvolnenia fronty tekutín" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "Ponáranie v tekutinách" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "Aktualizačný interval tekutín v sekundách." + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "Aktualizačný interval tekutín" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "Nahraj profiler hry" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" +"Nahraj profiler hry pre získanie profilových dát.\n" +"Poskytne príkaz /profiler pre prístup k skompilovanému profilu.\n" +"Užitočné pre vývojárov rozšírení a správcov serverov." + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "Nahrávam modifikátory blokov" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "Dolný Y limit kobiek." + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of floatlands." +msgstr "Spodný Y limit lietajúcich pevnín." + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "Skript hlavného menu" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" +"Prispôsob farbu hmly a oblohy dennej dobe (svitanie/súmrak) a uhlu pohľadu." + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "Umožní DirectX pracovať s LuaJIT. Vypni ak to spôsobuje problémy." + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "Všetky tekutiny budú nepriehľadné" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "Adresár máp" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "Špecifické príznaky pre generátor máp Karpaty." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" +"Špecifické atribúty pre plochý generátor mapy.\n" +"Príležitostne môžu byť na plochý svet pridané jazerá a kopce." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" +"Špecifické príznaky generátora máp Fraktál.\n" +"'terrain' aktivuje generovanie nie-fraktálneho terénu:\n" +"oceán, ostrovy and podzemie." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" +"Špecifické príznaky pre generovanie mapy generátora Údolia.\n" +"'altitude_chill': Znižuje teplotu s nadmorskou výškou.\n" +"'humid_rivers': Zvyšuje vlhkosť okolo riek.\n" +"'vary_river_depth': ak je aktívne, nízka vlhkosť a vysoké teploty\n" +"spôsobia, že hladina rieky poklesne, niekdy aj vyschne.\n" +"'altitude_dry': Znižuje vlhkosť s nadmorskou výškou." + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "Príznaky pre generovanie špecifické pre generátor V5." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" +"Špecifické atribúty pre generátor V6.\n" +"Príznak 'snowbiomes' aktivuje nový systém 5 biómov.\n" +"Ak je aktívny prźnak 'snowbiomes', džungle sú automaticky povolené a\n" +"príznak 'jungles' je ignorovaný." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." +msgstr "" +"Špecifické príznaky pre generátor máp V7.\n" +"'ridges': Rieky.\n" +"'floatlands': Lietajúce masy pevnín v atmosfére.\n" +"'caverns': Gigantické jaskyne hlboko v podzemí." + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "Limit generovania mapy" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "Interval ukladania mapy" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "Limit blokov mapy" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "Oneskorenie generovania Mesh blokov" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "Medzipamäť Mapblock Mesh generátora blokov v MB" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "Čas odstránenia bloku mapy" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "Generátor mapy Karpaty" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "Špecifické príznaky generátora máp Karpaty" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "Generátor mapy plochý" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "Špecifické príznaky plochého generátora mapy" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "Generátor mapy Fraktál" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "Špecifické príznaky generátora máp Fraktál" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "Generátor mapy V5" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "Špecifické príznaky pre generátor mapy V5" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "Generátor mapy V6" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "Špecifické príznaky generátora mapy V6" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "Generátor mapy V7" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "Špecifické príznaky generátora V7" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "Generátor mapy Údolia" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "Špecifické príznaky pre generátor Údolia" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "Ladenie generátora máp" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "Meno generátora mapy" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "Maximálna vzdialenosť generovania blokov" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "Max vzdialenosť posielania objektov" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "Maximálny počet tekutín spracovaný v jednom kroku." + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "Max. extra blokov clearobjects" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "Max. paketov za opakovanie" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "Maximálne FPS" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "Maximálne FPS, ak je hra pozastavená." + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "Maximum vynútene nahraných blokov" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "Maximálna šírka opaska" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" +"Maximálny limit náhodného počtu veľkých jaskýň v danej časti mapy (mapchunk)." + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" +"Maximálny limit náhodného počtu malých jaskýň v danej časti mapy (mapchunk)." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" +"Maximálny odpor tekutín. Riadi spomalenie ak sa tekutina\n" +"vlieva vysokou rýchlosťou." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" +"Maximálny počet súčasne posielaných blokov na klienta.\n" +"Maximálny počet sa prepočítava dynamicky:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "Maximálny limit kociek, ktoré môžu byť vo fronte pre nahrávanie." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" +"Maximálny limit kociek vo fronte, ktoré budú generované.\n" +"Tento limit je vynútený pre každého hráča." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" +"Maximálny limit kociek vo fronte, ktoré budú nahrané zo súboru.\n" +"Tento limit je vynútený pre každého hráča." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "Maximálny počet vynútene nahraných blokov mapy." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" +"Maximálny počet blokov u klienta, ktoré ostávajú v pamäti.\n" +"Nastav -1 pre neobmedzené množstvo." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" +"Maximálny počet paketov poslaný pri jednom kroku posielania,\n" +"ak máš pomalé pripojenie skús ho znížiť, ale\n" +"neznižuj ho pod dvojnásobok cieľového počtu klientov." + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "Maximálny počet hráčov, ktorí sa môžu súčasne pripojiť." + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "Maximálny počet nedávnych správ v komunikácií, ktoré budú zobrazované" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "Maximálny počet staticky uložených objektov v bloku." + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "Max. počet objektov na blok" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" +"Maximálny pomer aktuálneho okna, ktorý sa použije pre opasok.\n" +"Užitočné, ak treba zobraziť niečo vpravo, alebo vľavo od opaska." + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "Maximum súčasných odoslaní bloku na klienta" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "Maximálna veľkosť výstupnej komunikačnej fronty" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" +"Maximálna veľkosť výstupnej komunikačnej fronty.\n" +"0 pre zakázanie fronty a -1 pre neobmedzenú frontu." + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" +"Maximálny čas v ms, ktorý môže zabrať sťahovanie súboru (napr. sťahovanie " +"rozšírenia)." + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "Maximálny počet hráčov" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "Menu" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "Medzipamäť Mesh" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "Správa dňa" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "Správa dňa sa zobrazí hráčom pri pripájaní." + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "Metóda použitá pre zvýraznenie vybraných objektov." + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "Minimálna úroveň záznamov, ktoré budú vypísané do komunikačného okna." + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "Minimapa" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "Tlačidlo Minimapa" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "Minimapa výška skenovania" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" +"Minimálny limit náhodného počtu veľkých jaskýň v danej časti mapy (mapchunk)." + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" +"Minimálny limit náhodného počtu malých jaskýň v danej časti mapy (mapchunk)." + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "Minimálna veľkosť textúry" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "Mipmapping" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "Komunikačné kanály rozšírení" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "Upraví veľkosť elementov v užívateľskom rozhraní." + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "Cesta k písmu s pevnou šírkou" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "Veľkosť písmo s pevnou šírkou" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "Šum pre výšku hôr" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "Šum hôr" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "Odchýlka šumu hôr" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "Základná úroveň hôr" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "Citlivosť myši" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "Multiplikátor citlivosti myši." + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "Šum bahna" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" +"Násobiteľ pre pohupovanie sa pri pádu.\n" +"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné." + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "Tlačidlo Ticho" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "Stíš hlasitosť" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" +"Meno generátora mapy, ktorý sa použije pri vytváraní nového sveta.\n" +"Vytvorenie sveta cez hlavné menu toto prepíše.\n" +"Aktuálne nestabilné generátory:\n" +"- Voliteľné lietajúce pevniny (floatlands) vo v7 (štandardne vypnuté)." + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" +"Meno hráča.\n" +"Ak je spustený server, klienti s týmto menom sú administrátori.\n" +"Pri štarte z hlavného menu, toto bude prepísané." + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" +"Zobrazované meno servera, keď sa hráč na server pripojí a v zozname serverov." + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "Blízkosť roviny" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "Sieť" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" +"Sieťový port (UDP).\n" +"Táto hodnota bude prepísaná pri spustení z hlavného menu." + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "Noví hráči musia zadať toto heslo." + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "Prechádzanie stenami" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "Tlačidlo Prechádzanie stenami" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "Zvýrazňovanie kociek" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "Interval časovača kociek" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "Šumy" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "Počet použitých vlákien" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" +"Počet použitých vlákien.\n" +"Hodnota 0:\n" +"- Automatický určenie. Počet použitých vlákien bude\n" +"- 'počet procesorov - 2', s dolným limitom 1.\n" +"Akákoľvek iná hodnota:\n" +"- Definuje počet vlákien, s dolným limitom 1.\n" +"VAROVANIE: Zvýšenie počtu vlákien zvýši rýchlosť generátora máp,\n" +"ale môže to uškodiť hernému výkonu interferenciou s inými\n" +"procesmi, obzvlášť pri hre jedného hráča a/alebo ak beží Lua kód\n" +"v 'on_generated'. Pre mnohých hráčov môže byť optimálne nastavenie '1'." + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" +"Počet extra blokov, ktoré môžu byť naraz nahrané pomocou /clearobjects.\n" +"Toto je kompromis medzi vyťažením sqlite transakciami\n" +"a spotrebou pamäti (4096=100MB, ako približné pravidlo)." + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "Úložisko doplnkov na internete" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "Nepriehľadné tekutiny" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "Nepriehľadnosť tieňa za štandardným písmom, medzi 0 a 255." + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "Nepriehľadnosť tieňa za záložným písmom, medzi 0 a 255." + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" +"Otvorí menu pozastavenia, ak aktuálne okno hry nie je vybrané.\n" +"Nepozastaví sa ak je otvorený formspec." + +#: src/settings_translation_file.cpp +msgid "" +"Path of the fallback font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." +msgstr "" +"Cesta k záložnému písmu.\n" +"Ak je aktívne nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " +"vektorové písmo.\n" +"Toto písmo bude použité pre určité jazyky, alebo ak nie je štandardné písmo " +"k dispozícií." + +#: src/settings_translation_file.cpp +msgid "" +"Path to save screenshots at. Can be an absolute or relative path.\n" +"The folder will be created if it doesn't already exist." +msgstr "" +"Cesta, kam sa budú ukladať snímky obrazovky. Môže to byť ako absolútna, tak " +"relatívna cesta.\n" +"Adresár bude vytvorený ak neexistuje." + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" +"Cesta do adresára so shadermi. Ak nie je definovaná, použije sa predvolená " +"lokácia." + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "Cesta do adresára s textúrami. Všetky textúry sú najprv hľadané tu." + +#: src/settings_translation_file.cpp +msgid "" +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." +msgstr "" +"Cesta k štandardnému písmu.\n" +"Ak je aktivné nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " +"vektorové písmo.\n" +"Bude použité záložné písmo, ak nebude možné písmo nahrať." + +#: src/settings_translation_file.cpp +msgid "" +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." +msgstr "" +"Cesta k písmu s pevnou šírkou.\n" +"Ak je aktívne nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " +"vektorové písmo.\n" +"Toto písmo je použité pre napr. konzolu a okno profilera." + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "Pozastav hru, pri strate zamerania okna" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "Limit kociek vo fronte na každého hráča nahrávaných z disku" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "Limit kociek vo fronte na každého hráča pre generovanie" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "Fyzika" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "Tlačidlo Pohyb podľa sklonu" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "Režim pohybu podľa sklonu" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Tlačidlo Lietanie" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Interval opakovania pravého kliknutia" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" +"Hráč je schopný lietať bez ovplyvnenia gravitáciou.\n" +"Toto si na serveri vyžaduje privilégium \"fly\"." + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "Meno hráča" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "Vzdialenosť zobrazenia hráča" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "Hráč proti hráčovi (PvP)" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" +"Port pre pripojenie sa (UDP).\n" +"Políčko pre nastavenie Portu v hlavnom menu prepíše toto nastavenie." + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" +"Zabráni opakovanému kopaniu a ukladaniu blokov pri držaní tlačítka myši.\n" +"Aktivuj, ak príliš často omylom niečo vykopeš, alebo položíš blok." + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" +"Zabráni rozšíreniam aby robili nebezpečné veci ako spúšťanie systémových " +"príkazov." + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" +"Vytlačí profilové dáta enginu v pravidelných intervaloch (v sekundách).\n" +"0 = vypnuté. Užitočné pre vývojárov." + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "Oprávnenia, ktoré môže udeliť hráč s basic_privs" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "Profiler" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "Tlačidlo Prepínanie profileru" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "Profilovanie" + +#: src/settings_translation_file.cpp +msgid "Prometheus listener address" +msgstr "Odpočúvacia adresa Promethea" + +#: src/settings_translation_file.cpp +msgid "" +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" +msgstr "" +"Odpočúvacia adresa Promethea.\n" +"Ak je minetest skompilovaný s nastaveným ENABLE_PROMETHEUS,\n" +"aktivuj odpočúvanie metriky pre Prometheus na zadanej adrese.\n" +"Metrika môže byť získaná na http://127.0.0.1:30000/metrics" + +#: src/settings_translation_file.cpp +msgid "Proportion of large caves that contain liquid." +msgstr "Pomer častí veľkých jaskýň, ktoré obsahujú tekutinu." + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" +"Polomer oblasti mrakov zadaný v počtoch 64 kociek na štvorcový mrak.\n" +"Hodnoty vyššie než 26 budú produkovať ostré hranice na rohoch oblasti mrakov." + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "Zvýši terén aby vznikli údolia okolo riek." + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "Náhodný vstup" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "Tlačidlo Dohľad" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "Posledné správy v komunikácií" + +#: src/settings_translation_file.cpp +msgid "Regular font path" +msgstr "Štandardná cesta k písmam" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "Vzdialené média" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "Vzdialený port" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" +"Odstráň farby z prichádzajúcich komunikačných správ\n" +"Použi pre zabránenie používaniu farieb hráčmi v ich správach" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "Nahradí štandardné hlavné menu vlastným." + +#: src/settings_translation_file.cpp +msgid "Report path" +msgstr "Cesta k záznamom" #: src/settings_translation_file.cpp msgid "" @@ -5603,1204 +5959,160 @@ msgstr "" "READ_PLAYERINFO: 32 (zakáže get_player_names volania u klienta)" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "Obmedzenie vyhľadávania dosahu kociek na strane klienta" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" -"Ak sú CSM obmedzenia pre dohľad kocky aktívne, volania get_node sú\n" -"obmedzené touto vzdialenosťou od hráča ku kocke." - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "Bezpečnosť" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "Aktivuj rozšírenie pre zabezpečenie" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" -"Zabráni rozšíreniam aby robili nebezpečné veci ako spúšťanie systémových " -"príkazov." - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "Dôveryhodné rozšírenia" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" -"Čiarkou oddelený zoznam dôveryhodných rozšírení, ktoré majú povolené\n" -"nebezpečné funkcie aj keď je bezpečnosť rozšírení aktívna (cez " -"request_insecure_environment())." - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "HTTP rozšírenia" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" -"Čiarkou oddelený zoznam rozšírení, ktoré majú povolené prístup na HTTP API,\n" -"ktoré im dovolia posielať a sťahovať dáta z/na internet." - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "Profilovanie" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "Nahraj profiler hry" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" -"Nahraj profiler hry pre získanie profilových dát.\n" -"Poskytne príkaz /profiler pre prístup k skompilovanému profilu.\n" -"Užitočné pre vývojárov rozšírení a správcov serverov." - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "Štandardný formát záznamov" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" -"Štandardný formát v ktorom sa ukladajú profily,\n" -"pri volaní `/profiler save [format]` bez udania formátu." - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "Cesta k záznamom" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" -"Relatívna cesta k súboru vzhľadom na svet z ktorého budú profily uložené." - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "Výstroj" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "Metódy bytostí" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "Inštrumentuj metódy bytostí pri registrácií." - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "Aktívne modifikátory blokov (ABM)" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "Inštrumentuj funkcie ABM pri registrácií." - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "Nahrávam modifikátory blokov" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "Inštrumentuj funkcie nahrávania modifikátorov blokov pri registrácií." - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "Komunikačné príkazy" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "Inštrumentuj komunikačné príkazy pri registrácií." - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "Globálne odozvy" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" -"Inštrumentuj globálne odozvy volaní funkcií pri registrácií.\n" -"(čokoľvek je poslané minetest.register_*() funkcií)" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "Vstavané (Builtin)" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" -"Inštrumentuj vstavané (builtin).\n" -"Toto je obvykle potrebné len pre core/builtin prispievateľov" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "Profiler" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" -"Ako má profiler inštrumentovať sám seba:\n" -"* Inštrumentuj prázdnu funkciu.\n" -"Toto odhaduje režijné náklady, táto inštrumentácia pridáva (+1 funkčné " -"volanie).\n" -"* Instrument the sampler being used to update the statistics." - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "Klient a Server" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "Meno hráča" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" -"Meno hráča.\n" -"Ak je spustený server, klienti s týmto menom sú administrátori.\n" -"Pri štarte z hlavného menu, toto bude prepísané." - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "Jazyk" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" -"Nastav jazyk. Ponechaj prázdne pre systémové nastavenie.\n" -"Po zmene je požadovaný reštart." - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "Úroveň ladiacich info" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" -"Úroveň ladiacich informácií, ktoré budú zapísané do debug.txt:\n" -"- (bez logovania)\n" -"- žiadna (správy bez úrovne)\n" -"- chyby\n" -"- varovania\n" -"- akcie\n" -"- informácie\n" -"- všetko" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "Hraničná veľkosť ladiaceho log súboru" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" -"Ak veľkosť súboru debug.txt prekročí zadanú veľkosť v megabytoch,\n" -"keď bude otvorený, súbor bude presunutý do debug.txt.1,\n" -"ak existuje starší debug.txt.1, tak tento bude zmazaný.\n" -"debug.txt bude presunutý, len ak je toto nastavenie kladné." - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "Úroveň komunikačného logu" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "Minimálna úroveň záznamov, ktoré budú vypísané do komunikačného okna." - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "IPv6" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" -"Aktivuj IPv6 podporu (pre klienta ako i server).\n" -"Požadované aby IPv6 spojenie vôbec mohlo fungovať." - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "Časový rámec cURL" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" -"Štandardný časový rámec pre cURL, zadaný v milisekundách.\n" -"Má efekt len ak je skompilovaný s cURL." - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "Paralelný limit cURL" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" -"Maximálny počet paralelných HTTP požiadavok. Ovplyvňuje:\n" -"- Získavanie médií ak server používa nastavenie remote_media.\n" -"- Sťahovanie zoznamu serverov a zverejňovanie servera.\n" -"- Sťahovania vykonávané z hlavného menu (napr. správca rozšírení).\n" -"Má efekt len ak je skompilovaný s cURL." - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "cURL časový rámec sťahovania súborov" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" -"Maximálny čas v ms, ktorý môže zabrať sťahovanie súboru (napr. sťahovanie " -"rozšírenia)." - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "Vysoko-presné FPU" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "Umožní DirectX pracovať s LuaJIT. Vypni ak to spôsobuje problémy." - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Štýl hlavného menu" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Zmení užívateľské rozhranie (UI) hlavného menu:\n" -"- Plné: Viacero svetov, voľby hry, voľba balíčka textúr, atď.\n" -"- Jednoduché: Jeden svet, bez herných volieb, alebo voľby textúr. Môže " -"byť\n" -"nevyhnutné pre malé obrazovky." - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "Skript hlavného menu" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "Nahradí štandardné hlavné menu vlastným." - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "Interval tlače profilových dát enginu" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" -"Vytlačí profilové dáta enginu v pravidelných intervaloch (v sekundách).\n" -"0 = vypnuté. Užitočné pre vývojárov." - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "Meno generátora mapy" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" -"Meno generátora mapy, ktorý sa použije pri vytváraní nového sveta.\n" -"Vytvorenie sveta cez hlavné menu toto prepíše.\n" -"Aktuálne nestabilné generátory:\n" -"- Voliteľné lietajúce pevniny (floatlands) vo v7 (štandardne vypnuté)." - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "Úroveň vody" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "Hladina povrchovej vody vo svete." - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "Maximálna vzdialenosť generovania blokov" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" -"Z akej vzdialeností sú klientovi generované bloky, zadané v blokoch mapy (16 " -"kociek)." - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "Limit generovania mapy" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" -"Limit pre generovanie mapy, v kockách, vo všetkých 6 smeroch (0, 0, 0).\n" -"Len časti mapy (mapchunks) kompletne v rámci limitu generátora máp sú " -"generované.\n" -"Hodnota sa ukladá pre každý svet." - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" -"Globálne atribúty pre generovanie máp.\n" -"V generátore v6 príznak 'decorations' riadi všetky dekorácie okrem stromov\n" -"a vysokej trávy, vo všetkých ostatných generátoroch tento príznak riadi " -"všetky dekorácie." - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "Parametre šumu teploty a vlhkosti pre Biome API" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "Teplotný šum" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "Odchýlky teplôt pre biómy." - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "Šum miešania teplôt" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "Drobné odchýlky teplôt pre zjemnenie prechodu na hraniciach biómov." - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "Šum vlhkosti" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "Odchýlky vlhkosti pre biómy." - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "Šum miešania vlhkostí" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "Drobné odchýlky vlhkosti pre zjemnenie prechodu na hraniciach biómov." - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "Generátor mapy V5" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "Špecifické príznaky pre generátor mapy V5" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "Príznaky pre generovanie špecifické pre generátor V5." - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "Šírka jaskyne" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" -"Riadi šírku tunelov, menšia hodnota vytvára širšie tunely.\n" -"Hodnota >= 10.0 úplne vypne generovanie tunelov, čím sa vyhne\n" -"náročným prepočtom šumu." - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "Hĺbka veľkých jaskýň" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "Horný Y limit veľkých jaskýň." - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "Minimálny počet malých jaskýň" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" -"Minimálny limit náhodného počtu malých jaskýň v danej časti mapy (mapchunk)." - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "Maximálny počet malých jaskýň" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" -"Maximálny limit náhodného počtu malých jaskýň v danej časti mapy (mapchunk)." - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "Minimálny počet veľkých jaskýň" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" -"Minimálny limit náhodného počtu veľkých jaskýň v danej časti mapy (mapchunk)." - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "Minimálny počet veľkých jaskýň" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" -"Maximálny limit náhodného počtu veľkých jaskýň v danej časti mapy (mapchunk)." - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "Pomer zaplavených častí veľkých jaskýň" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "Pomer častí veľkých jaskýň, ktoré obsahujú tekutinu." - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "Limit dutín" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "Y-úroveň horného limitu dutín." - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "Zbiehavosť dutín" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "Y-nová vzdialenosť nad ktorou dutiny expandujú do plnej veľkosti." - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "Hraničná hodnota dutín" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "Definuje plnú šírku dutín, menšie hodnoty vytvoria väčšie dutiny." - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "Minimálne Y kobky" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "Dolný Y limit kobiek." - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "Maximálne Y kobky" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "Horný Y limit kobiek." - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "Šumy" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "Šum hĺbky výplne" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "Odchýlka hĺbky výplne biómu." - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "Faktor šumu" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" -"Rozptyl vertikálnej mierky terénu.\n" -"Ak je šum <-0.55, terén je takmer rovný." - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "Výškový šum" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "Y-úroveň priemeru povrchu terénu." - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "Cave1 šum" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "Prvý z dvoch 3D šumov, ktoré spolu definujú tunely." - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "Cave2 šum" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "Druhý z dvoch 3D šumov, ktoré spolu definujú tunely." - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "Šum dutín" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "3D šum definujúci gigantické dutiny/jaskyne." - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "Šum terénu" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "3D šum definujúci terén." - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "Šum kobky" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "3D šum definujúci počet kobiek na časť mapy (mapchunk)." - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "Generátor mapy V6" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "Špecifické príznaky generátora mapy V6" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" -"Špecifické atribúty pre generátor V6.\n" -"Príznak 'snowbiomes' aktivuje nový systém 5 biómov.\n" -"Ak je aktívny prźnak 'snowbiomes', džungle sú automaticky povolené a\n" -"príznak 'jungles' je ignorovaný." - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "Hraničná hodnota šumu púšte" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" -"Púšte sa objavia keď np_biome presiahne túto hodnotu.\n" -"Ak je aktívny príznak 'snowbiomes', tak toto je ignorované." - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "Hraničná hodnota šumu pláže" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "Pieskové pláže sa objavia keď np_beach presiahne túto hodnotu." - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "Základný šum terénu" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "Y-úroveň dolnej časti terénu a morského dna." - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "Horný šum terénu" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "Y-úroveň horného terénu, ktorý tvorí útesy/skaly." - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "Šum zrázov" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "Pozmeňuje strmosť útesov." - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "Šum výšok" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "Definuje rozdelenie vyššieho terénu." - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "Šum bahna" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "Pozmeňuje hĺbku povrchových kociek biómu." - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "Šum pláže" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "Definuje oblasti s pieskovými plážami." - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "Šum biómu" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "Šum jaskyne" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "Rôznosť počtu jaskýň." - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "Šum stromov" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "Definuje oblasti so stromami a hustotu stromov." - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "Šum jabloní" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "Definuje oblasti, kde stromy majú jablká." - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "Generátor mapy V7" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "Špecifické príznaky generátora V7" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" -"Špecifické príznaky pre generátor máp V7.\n" -"'ridges': Rieky.\n" -"'floatlands': Lietajúce masy pevnín v atmosfére.\n" -"'caverns': Gigantické jaskyne hlboko v podzemí." - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "Základná úroveň hôr" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" -"Y hustotný gradient hladiny nula pre hory. Používa sa pre vertikálny posun " -"hôr." - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "Minimálne Y lietajúcich pevnín" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "Spodný Y limit lietajúcich pevnín." - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "Maximálne Y lietajúcich pevnín" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "Horný Y limit lietajúcich pevnín." - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "Vzdialenosť špicatosti lietajúcich krajín" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" -"Y-vzdialenosť kde sa lietajúce pevniny zužujú od plnej hustoty po nič.\n" -"Zužovanie začína na tejto vzdialenosti z Y limitu.\n" -"Pre jednoznačnosť vrstvy lietajúcej krajiny, toto riadi výšku kopcov/hôr.\n" -"Musí byť menej ako, alebo rovnako ako polovica vzdialenosti medzi Y limitami." - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "Exponent kužeľovitosti lietajúcej pevniny" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" -"Exponent zošpicatenia lietajúcej pevniny. Pozmeňuje fungovanie zošpicatenia." -"\n" -"Hodnota = 1.0 vytvorí stále, lineárne zošpicatenie.\n" -"Hodnoty > 1.0 vytvoria plynulé zošpicatenie, vhodné pre štandardné oddelené\n" -"lietajúce pevniny.\n" -"Hodnoty < 1.0 (napríklad 0.25) vytvoria viac vymedzený povrch s\n" -"rovnejšími nížinami, vhodné ako pevná základná vrstva lietajúcej pevniny." - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "Hustota lietajúcej pevniny" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" -"Nastav hustotu vrstvy lietajúcej pevniny.\n" -"Zvýš hodnotu pre zvýšenie hustoty. Môže byť kladná, alebo záporná.\n" -"Hodnota = 0.0: 50% objemu je lietajúca pevnina.\n" -"Hodnota = 2.0 (môže byť vyššie v závislosti od 'mgv7_np_floatland', vždy " -"otestuj\n" -"aby si si bol istý) vytvorí pevnú úroveň lietajúcej pevniny." - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "Úroveň vody lietajúcich pevnín" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" -"Povrchová úroveň voliteľnej vody umiestnená na pevnej vrstve lietajúcej " -"krajiny.\n" -"Štandardne je voda deaktivovaná a bude umiestnená len ak je táto voľba " -"nastavená\n" -"nad 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n" -"(štart horného zašpicaťovania).\n" -"***VAROVANIE, POTENCIÁLNE RIZIKO PRE VÝKON SVETOV A SERVEROV***:\n" -"Pri aktivovaní vody na lietajúcich pevninách musí byť nastavený\n" -"a otestovaný pevný povrch nastavením 'mgv7_floatland_density' na 2.0 ( alebo " -"inú\n" -"požadovanú hodnotu v závislosti na 'mgv7_np_floatland'), aby sa zabránilo\n" -"pre server náročnému extrémnemu toku vody a rozsiahlym záplavám\n" -"na svet pod nimi." - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "Alternatívny šum terénu" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "Stálosť šumu terénu" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" -"Mení rôznorodosť terénu.\n" -"Definuje hodnotu 'stálosti' pre terrain_base a terrain_alt noises." - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "Definuje rozdelenie vyššieho terénu a strmosť útesov." - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "Šum pre výšku hôr" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "Obmieňa maximálnu výšku hôr (v kockách)." - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "Šum podmorského hrebeňa" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "Vo veľkom merítku definuje štruktúru kanálov riek." - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "Šum hôr" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" -"3D šum definujúci štruktúru a výšku hôr.\n" -"Takisto definuje štruktúru pohorí lietajúcich pevnín." +msgid "Ridge mountain spread noise" +msgstr "Rozptyl šumu hrebeňa hôr" #: src/settings_translation_file.cpp msgid "Ridge noise" msgstr "Šum hrebeňa" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "3D šum definujúci štruktúru stien kaňona rieky." - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "Šum lietajúcich krajín" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" -"3D šum definujúci štruktúru lietajúcich pevnín.\n" -"Ak je zmenený zo štandardného, 'mierka' šumu (štandardne 0.7) môže\n" -"potrebovať nastavenie, keďže zošpicaťovanie lietajúcej pevniny funguje " -"najlepšie,\n" -"keď tento šum má hodnotu približne v rozsahu -2.0 až 2.0." - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "Generátor mapy Karpaty" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "Špecifické príznaky generátora máp Karpaty" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "Špecifické príznaky pre generátor máp Karpaty." - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "Základná úroveň dna" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "Definuje úroveň dna." - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "Šírka kanála rieky" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "Definuje šírku pre koryto rieky." - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "Hĺbka riečneho kanála" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "Definuje hĺbku koryta rieky." - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "Šírka údolia rieky" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "Definuje šírku údolia rieky." - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "Šum Kopcovitosť1" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "Prvý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "Šum Kopcovitosť2" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "Druhý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "Šum Kopcovitosť3" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "Tretí zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "Šum Kopcovitosť4" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "Štvrtý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "Rozptyl šumu vlnitosti kopcov" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "2D šum, ktorý riadi veľkosť/výskyt zvlnenia kopcov." - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "Rozptyl šumu hrebeňa hôr" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "2D šum, ktorý riadi veľkosť/výskyt hrebeňa kopcov." - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "Rozptyl šumu horských stepí" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "2D šum, ktorý riadi veľkosť/výskyt horských stepí." - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "Veľkosť šumu vlnitosti kopcov" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "2D šum, ktorý riadi tvar/veľkosť vlnitosti kopcov." +msgid "Ridge underwater noise" +msgstr "Šum podmorského hrebeňa" #: src/settings_translation_file.cpp msgid "Ridged mountain size noise" msgstr "Veľkosť šumu hrebeňa hôr" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "2D šum, ktorý riadi tvar/veľkosť hrebeňa hôr." +msgid "Right key" +msgstr "Tlačidlo Vpravo" #: src/settings_translation_file.cpp -msgid "Step mountain size noise" -msgstr "Veľkosť šumu horských stepí" +msgid "River channel depth" +msgstr "Hĺbka riečneho kanála" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." -msgstr "2D šum, ktorý riadi tvar/veľkosť horských stepí." +msgid "River channel width" +msgstr "Šírka kanála rieky" + +#: src/settings_translation_file.cpp +msgid "River depth" +msgstr "Hĺbka rieky" #: src/settings_translation_file.cpp msgid "River noise" msgstr "Šum riek" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." -msgstr "2D šum, ktorý určuje údolia a kanály riek." +msgid "River size" +msgstr "Veľkosť riek" #: src/settings_translation_file.cpp -msgid "Mountain variation noise" -msgstr "Odchýlka šumu hôr" +msgid "River valley width" +msgstr "Šírka údolia rieky" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "3D šum pre previsy, útesy, atď. hôr. Obvykle malé odchýlky." +msgid "Rollback recording" +msgstr "Nahrávanie pre obnovenie" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" -msgstr "Generátor mapy plochý" +msgid "Rolling hill size noise" +msgstr "Veľkosť šumu vlnitosti kopcov" #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" -msgstr "Špecifické príznaky plochého generátora mapy" +msgid "Rolling hills spread noise" +msgstr "Rozptyl šumu vlnitosti kopcov" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "Okrúhla minimapa" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "Bezpečné kopanie a ukladanie" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "Pieskové pláže sa objavia keď np_beach presiahne túto hodnotu." + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "Ulož mapu získanú klientom na disk." + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "Automaticky ulož veľkosť okna po úprave." + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "Ukladanie mapy získanej zo servera" #: src/settings_translation_file.cpp msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." msgstr "" -"Špecifické atribúty pre plochý generátor mapy.\n" -"Príležitostne môžu byť na plochý svet pridané jazerá a kopce." +"Zmeň mierku užívateľského rozhrania (GUI) podľa zadanej hodnoty.\n" +"Pre zmenu mierky GUI použi antialias filter podľa-najbližšieho-suseda.\n" +"Toto zjemní niektoré hrubé hrany a zmieša pixely pri zmenšení,\n" +"za cenu rozmazania niektorých okrajových pixelov ak sa mierka\n" +"obrázkov mení podľa neceločíselných hodnôt." #: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "Základná úroveň" +msgid "Screen height" +msgstr "Výška obrazovky" #: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "Y plochej zeme." +msgid "Screen width" +msgstr "Šírka obrazovky" #: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "Hranica jazier" +msgid "Screenshot folder" +msgstr "Adresár pre snímky obrazovky" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "Formát snímok obrazovky" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "Kvalita snímok obrazovky" #: src/settings_translation_file.cpp msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." msgstr "" -"Prah šumu terénu pre jazerá.\n" -"Riadi pomer plochy sveta pokrytého jazerami.\n" -"Uprav smerom k 0.0 pre väčší pomer." +"Kvalita snímok obrazovky. Používa sa len pre JPEG formát.\n" +"1 znamená najhoršiu kvalitu; 100 znamená najlepšiu kvalitu.\n" +"Použi 0 pre štandardnú kvalitu." #: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "Strmosť jazier" +msgid "Seabed noise" +msgstr "Šum morského dna" #: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "Riadi strmosť/hĺbku jazier." +msgid "Second of 4 2D noises that together define hill/mountain range height." +msgstr "Druhý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "Hranica kopcov" +msgid "Second of two 3D noises that together define tunnels." +msgstr "Druhý z dvoch 3D šumov, ktoré spolu definujú tunely." #: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" -"Prah šumu terénu pre kopce.\n" -"Riadi pomer plochy sveta pokrytého kopcami.\n" -"Uprav smerom k 0.0 pre väčší pomer." +msgid "Security" +msgstr "Bezpečnosť" #: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "Strmosť kopcov" +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "Viď. https://www.sqlite.org/pragma.html#pragma_synchronous" #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "Riadi strmosť/výšku kopcov." +msgid "Selection box border color (R,G,B)." +msgstr "Farba obrysu bloku (R,G,B)." #: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "Šum terénu" +msgid "Selection box color" +msgstr "Farba obrysu bloku" #: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "Definuje umiestnenie a terén voliteľných kopcov a jazier." - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "Generátor mapy Fraktál" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "Špecifické príznaky generátora máp Fraktál" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" -"Špecifické príznaky generátora máp Fraktál.\n" -"'terrain' aktivuje generovanie nie-fraktálneho terénu:\n" -"oceán, ostrovy and podzemie." - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "Typ fraktálu" +msgid "Selection box width" +msgstr "Šírka obrysu bloku" #: src/settings_translation_file.cpp msgid "" @@ -6845,268 +6157,133 @@ msgstr "" "18 = 4D \"Mandelbulb\" sada Julia." #: src/settings_translation_file.cpp -msgid "Iterations" -msgstr "Iterácie" +msgid "Server / Singleplayer" +msgstr "Server / Hra pre jedného hráča" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "URL servera" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "Adresa servera" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "Popis servera" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "Meno servera" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "Port servera" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "Occlusion culling na strane servera" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "URL zoznamu serverov" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "Súbor so zoznamom serverov" #: src/settings_translation_file.cpp msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." msgstr "" -"Iterácie rekurzívnej funkcie.\n" -"Zvýšenie zvýši úroveň jemnosti detailov, ale tiež\n" -"zvýši zaťaženie pri spracovaní.\n" -"Pri iteráciach = 20 má tento generátor podobné zaťaženie ako generátor V7." +"Nastav jazyk. Ponechaj prázdne pre systémové nastavenie.\n" +"Po zmene je požadovaný reštart." + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." +msgstr "Nastav maximálny počet znakov komunikačnej správy posielanej klientmi." #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." msgstr "" -"(X,Y,Z) mierka fraktálu v kockách.\n" -"Skutočná veľkosť fraktálu bude 2 až 3 krát väčšia.\n" -"Tieto čísla môžu byť veľmi veľké, fraktál sa nemusí\n" -"zmestiť do sveta.\n" -"Zvýš pre 'priblíženie' detailu fraktálu.\n" -"Štandardne je vertikálne stlačený tvar vhodný pre\n" -"ostrov, nastav všetky 3 čísla rovnaké pre nezmenený tvar." +"Nastav true pre povolenie vlniacich sa listov.\n" +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." msgstr "" -"(X,Y,Z) posun fraktálu od stredu sveta v jednotkách 'mierky'.\n" -"Môže byť použité pre posun požadovaného bodu do (0, 0) pre\n" -"vytvorenie vhodného bodu pre ožitie, alebo pre povolenie 'priblíženia'\n" -"na želaný bod zväčšením 'mierky'.\n" -"Štandardne je to vyladené na vhodný bod oživenia pre Mandelbrot\n" -"sadu so štandardnými parametrami, je možné, že bude potrebná úprava\n" -"v iných situáciach.\n" -"Rozsah je približne -2 to 2. Zväčší podľa 'mierky' pre posun v kockách." - -#: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "Plátok w" +"Nastav true pre aktivovanie vlniacich sa tekutín (ako napr. voda).\n" +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." msgstr "" -"W koordináty generovaného 3D plátku v 4D fraktáli.\n" -"Určuje, ktorý 3D plátok z 4D tvaru je generovaný.\n" -"Zmení tvar fraktálu.\n" -"Nemá vplyv na 3D fraktály.\n" -"Rozsah zhruba -2 až 2." +"Nastav true pre aktivovanie vlniacich sa rastlín.\n" +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "Julia x" +msgid "Shader path" +msgstr "Cesta k shaderom" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." msgstr "" -"Len pre sadu Julia.\n" -"X komponent hyperkomplexnej konštanty.\n" -"Zmení tvar fraktálu.\n" -"Rozsah zhruba -2 až 2." - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "Julia y" +"Shadery umožňujú pokročilé vizuálne efekty a na niektorých grafických " +"kartách\n" +"môžu zvýšiť výkon.\n" +"Toto funguje len s OpenGL." #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." msgstr "" -"Len pre sadu Julia.\n" -"Y komponent hyperkomplexnej konštanty.\n" -"Zmení tvar fraktálu.\n" -"Rozsah zhruba -2 až 2." - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "Julia z" +"Posun tieňa (v pixeloch) štandardného písma. Ak je 0, tak tieň nebude " +"vykreslený." #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." msgstr "" -"Len pre sadu Julia.\n" -"Z komponent hyperkomplexnej konštanty.\n" -"Zmení tvar fraktálu.\n" -"Rozsah zhruba -2 až 2." +"Posun tieňa (v pixeloch) záložného písma. Ak je 0, tak tieň nebude " +"vykreslený." #: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "Julia w" +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "Tvar minimapy. Aktivované = okrúhla, vypnuté = štvorcová." #: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "Zobraz ladiace informácie" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "Zobraz obrys bytosti" + +#: src/settings_translation_file.cpp +#, fuzzy msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Show entity selection boxes\n" +"A restart is required after changing this." msgstr "" -"Len pre sadu Julia.\n" -"W komponent hyperkomplexnej konštanty.\n" -"Zmení tvar fraktálu.\n" -"Nemá vplyv na 3D fraktály.\n" -"Rozsah zhruba -2 až 2." +"Nastav jazyk. Ponechaj prázdne pre systémové nastavenie.\n" +"Po zmene je požadovaný reštart." #: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "Šum morského dna" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "Y-úroveň morského dna." - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "Generátor mapy Údolia" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "Špecifické príznaky pre generátor Údolia" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" -"Špecifické príznaky pre generovanie mapy generátora Údolia.\n" -"'altitude_chill': Znižuje teplotu s nadmorskou výškou.\n" -"'humid_rivers': Zvyšuje vlhkosť okolo riek.\n" -"'vary_river_depth': ak je aktívne, nízka vlhkosť a vysoké teploty\n" -"spôsobia, že hladina rieky poklesne, niekdy aj vyschne.\n" -"'altitude_dry': Znižuje vlhkosť s nadmorskou výškou." - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" -"Vertikálna vzdialenosť kedy poklesne teplota o 20 ak je 'altitude_chill'\n" -"aktívne. Tiež je to vertikálna vzdialenosť kedy poklesne vlhkosť o 10,\n" -"ak je 'altitude_dry' aktívne." - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "Hĺbka pod ktorou nájdeš veľké jaskyne." - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "Horný limit dutín" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "Hĺbka pod ktorou nájdeš gigantické dutiny/jaskyne." - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "Hĺbka rieky" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "Aké hlboké majú byť rieky." - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "Veľkosť riek" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "Aké široké majú byť rieky." - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "Šum jaskýň #1" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "Šum jaskýň #2" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "Hĺbka výplne" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "Hĺbka zeminy, alebo inej výplne kocky." - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "Výška terénu" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "Základná výška terénu." - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "Hĺbka údolia" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "Zvýši terén aby vznikli údolia okolo riek." - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "Výplň údolí" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "Sklon a výplň spolupracujú aby upravili výšky." - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "Profil údolia" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "Zväčšuje údolia." - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "Sklon údolia" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "Veľkosť časti (chunk)" +msgid "Shutdown message" +msgstr "Správa pri vypínaní" #: src/settings_translation_file.cpp msgid "" @@ -7126,103 +6303,1133 @@ msgstr "" "to nezmenené." #: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "Ladenie generátora máp" +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" +"Veľkosť medzipamäte blokov v Mesh generátoru.\n" +"Zvýšenie zvýši využitie medzipamäte %, zníži sa množstvo dát kopírovaných\n" +"z hlavnej vetvy a tým sa zníži chvenie." #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." -msgstr "Získaj ladiace informácie generátora máp." +msgid "Slice w" +msgstr "Plátok w" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" -msgstr "Absolútny limit kociek vo fronte" +msgid "Slope and fill work together to modify the heights." +msgstr "Sklon a výplň spolupracujú aby upravili výšky." #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "Maximálny limit kociek, ktoré môžu byť vo fronte pre nahrávanie." +msgid "Small cave maximum number" +msgstr "Maximálny počet malých jaskýň" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" -msgstr "Limit kociek vo fronte na každého hráča nahrávaných z disku" +msgid "Small cave minimum number" +msgstr "Minimálny počet malých jaskýň" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "Drobné odchýlky vlhkosti pre zjemnenie prechodu na hraniciach biómov." + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "Drobné odchýlky teplôt pre zjemnenie prechodu na hraniciach biómov." + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "Jemné osvetlenie" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." msgstr "" -"Maximálny limit kociek vo fronte, ktoré budú nahrané zo súboru.\n" -"Tento limit je vynútený pre každého hráča." +"Zjemňuje pohyb kamery pri pohľade po okolí. Tiež sa nazýva zjemnenie " +"pohľady, alebo pohybu myši.\n" +"Užitočné pri nahrávaní videí." #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" -msgstr "Limit kociek vo fronte na každého hráča pre generovanie" +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "Zjemní rotáciu kamery vo filmovom režime. 0 je pre vypnuté." + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "Zjemní rotáciu kamery. 0 je pre vypnuté." + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "Tlačidlo zakrádania sa" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "Rýchlosť zakrádania" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "Rýchlosť zakrádania sa, v kockách za sekundu." + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "Zvuk" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "Špeciálne tlačidlo" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" +msgstr "Špeciálna klávesa pre šplhanie hore/dole" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." msgstr "" -"Maximálny limit kociek vo fronte, ktoré budú generované.\n" -"Tento limit je vynútený pre každého hráča." - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "Počet použitých vlákien" +"Špecifikuje URL s ktorého klient stiahne média namiesto použitia UDP.\n" +"$filename by mal byt dostupný z $remote_media$filename cez cURL\n" +"(samozrejme, remote_media by mal končiť lomítkom).\n" +"Súbory, ktoré nie sú dostupné budú získané štandardným spôsobom." #: src/settings_translation_file.cpp msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." msgstr "" -"Počet použitých vlákien.\n" -"Hodnota 0:\n" -"- Automatický určenie. Počet použitých vlákien bude\n" -"- 'počet procesorov - 2', s dolným limitom 1.\n" -"Akákoľvek iná hodnota:\n" -"- Definuje počet vlákien, s dolným limitom 1.\n" -"VAROVANIE: Zvýšenie počtu vlákien zvýši rýchlosť generátora máp,\n" -"ale môže to uškodiť hernému výkonu interferenciou s inými\n" -"procesmi, obzvlášť pri hre jedného hráča a/alebo ak beží Lua kód\n" -"v 'on_generated'. Pre mnohých hráčov môže byť optimálne nastavenie '1'." +"Definuje štandardnú veľkosť kôpky kociek, vecí a nástrojov.\n" +"Ber v úvahu, že rozšírenia, alebo hry môžu explicitne nastaviť veľkosť pre " +"určité (alebo všetky) typy." #: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "Úložisko doplnkov na internete" +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." +msgstr "" +"Rozptyl zosilnenia svetelnej krivky.\n" +"Určuje šírku rozsahu , ktorý bude zosilnený.\n" +"Štandardné gausovo rozdelenie odchýlky svetelnej krivky." #: src/settings_translation_file.cpp -msgid "ContentDB URL" -msgstr "Cesta (URL) ku ContentDB" +msgid "Static spawnpoint" +msgstr "Pevný bod obnovy" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "Šum zrázov" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "Veľkosť šumu horských stepí" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "Rozptyl šumu horských stepí" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "Stupeň paralaxy 3D režimu." + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" +"Sila zosilnenia svetelnej krivky.\n" +"Tri 'zosilňujúce' parametre definujú ktorý rozsah\n" +"svetelnej krivky je zosilnený v jasu." + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "Prísna kontrola protokolu" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "Odstráň farby" + +#: src/settings_translation_file.cpp +msgid "" +"Surface level of optional water placed on a solid floatland layer.\n" +"Water is disabled by default and will only be placed if this value is set\n" +"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" +"upper tapering).\n" +"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" +"When enabling water placement the floatlands must be configured and tested\n" +"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" +"required value depending on 'mgv7_np_floatland'), to avoid\n" +"server-intensive extreme water flow and to avoid vast flooding of the\n" +"world surface below." +msgstr "" +"Povrchová úroveň voliteľnej vody umiestnená na pevnej vrstve lietajúcej " +"krajiny.\n" +"Štandardne je voda deaktivovaná a bude umiestnená len ak je táto voľba " +"nastavená\n" +"nad 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n" +"(štart horného zašpicaťovania).\n" +"***VAROVANIE, POTENCIÁLNE RIZIKO PRE VÝKON SVETOV A SERVEROV***:\n" +"Pri aktivovaní vody na lietajúcich pevninách musí byť nastavený\n" +"a otestovaný pevný povrch nastavením 'mgv7_floatland_density' na 2.0 ( alebo " +"inú\n" +"požadovanú hodnotu v závislosti na 'mgv7_np_floatland'), aby sa zabránilo\n" +"pre server náročnému extrémnemu toku vody a rozsiahlym záplavám\n" +"na svet pod nimi." + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "Synchrónne SQLite" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "Odchýlky teplôt pre biómy." + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "Alternatívny šum terénu" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "Základný šum terénu" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "Výška terénu" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "Horný šum terénu" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "Šum terénu" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" +"Prah šumu terénu pre kopce.\n" +"Riadi pomer plochy sveta pokrytého kopcami.\n" +"Uprav smerom k 0.0 pre väčší pomer." + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" +"Prah šumu terénu pre jazerá.\n" +"Riadi pomer plochy sveta pokrytého jazerami.\n" +"Uprav smerom k 0.0 pre väčší pomer." + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "Stálosť šumu terénu" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "Cesta k textúram" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." +msgstr "" +"Textúry na kocke môžu byť zarovnané buď podľa kocky, alebo sveta.\n" +"Kým prvý režim poslúži lepšie veciam ako sú stroje, nábytok, atď.,\n" +"tak s druhým režimom zapadnú schody a mikrobloky lepšie do svojho okolia.\n" +"Keďže je táto možnosť nová, nemusí byť použitá na starších serveroch,\n" +"toto nastavenie povolí jeho vynútenie pre určité typy kociek. Je potrebné\n" +"si uvedomiť, že táto funkcia je EXPERIMENTÁLNA a nemusí fungovať korektne." #: src/settings_translation_file.cpp msgid "The URL for the content repository" msgstr "Webová adresa (URL) k úložisku doplnkov" #: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" -msgstr "Čierna listina príznakov z ContentDB" +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "Identifikátor joysticku na použitie" #: src/settings_translation_file.cpp msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." msgstr "" -"Čiarkou oddelený zoznam príznakov, ktoré sa skryjú v zozname doplnkov.\n" -"\"nonfree\" môže byť využité na skrytie doplnkov, ktoré nie je možné " -"považovať za 'voľný softvér',\n" -"tak ako je definovaný Free Software Foundation.\n" -"Môžeš definovať aj hodnotenie obsahu.\n" -"Tie to príznaky sú nezávislé od verzie Minetestu,\n" -"viď. aj kompletný zoznam na https://content.minetest.net/help/content_flags/" +"Štandardný formát v ktorom sa ukladajú profily,\n" +"pri volaní `/profiler save [format]` bez udania formátu." + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "Hĺbka zeminy, alebo inej výplne kocky." + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" +"Relatívna cesta k súboru vzhľadom na svet z ktorého budú profily uložené." + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "Identifikátor joysticku na použitie" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" +"Dĺžka v pixloch, ktorú potrebuje dotyková obrazovka pre začiatok interakcie." + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" +"Maximálna výška povrchu vlniacich sa tekutín.\n" +"4.0 = Výška vlny sú dve kocky.\n" +"0.0 = Vlna sa vôbec nehýbe.\n" +"Štandardná hodnota je 1.0 (1/2 kocky).\n" +"Požaduje, aby boli aktivované vlniace sa tekutiny." + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "Sieťové rozhranie, na ktorom server načúva." + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" +"Oprávnenia, ktoré automaticky dostane nový hráč.\n" +"Pozri si /privs v hre pre kompletný zoznam pre daný server a konfigurácie " +"rozšírení." + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" +"Polomer objemu blokov okolo každého hráča, ktoré sú predmetom\n" +"záležitostí okolo aktívnych objektov, uvádzané v blokoch mapy (16 kociek).\n" +"V objektoch aktívnych blokov sú nahrávané a spúšťané ABM.\n" +"Toto je tiež minimálna vzdialenosť v ktorej sú aktívne objekty (mobovia) " +"zachovávaný.\n" +"Malo by to byť konfigurované spolu s active_object_send_range_blocks." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +msgstr "" +"Renderovací back-end pre Irrlicht.\n" +"Po zmene je vyžadovaný reštart.\n" +"Poznámka: Na Androidw, ak si nie si istý, ponechaj OGLES1! Aplikácia by " +"nemusela naštartovať.\n" +"Na iných platformách, sa odporúča OpenGL, a je to aktuálne jediný ovládač\n" +"s podporou shaderov." + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" +"Citlivosť osí joysticku pre pohyb\n" +"otáčania pohľadu v hre." + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" +"Úroveň tieňovania ambient-occlusion kocky (tmavosť).\n" +"Nižšia hodnota je tmavšie, vyššia svetlejšie.\n" +"Platý rozsah hodnôt je od 0.25 po 0.4 vrátane.\n" +"Ak je hodnota mimo rozsah, bude nastavená na najbližšiu platnú hodnotu." + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" +"Čas (c sekundách) kedy fronta tekutín môže narastať nad kapacitu\n" +"spracovania než bude urobený pokus o jej zníženie zrušením starých\n" +"vecí z fronty. Hodnota 0 vypne túto funkciu." + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" +"Čas v sekundách medzi opakovanými udalosťami\n" +"pri stlačenej kombinácií tlačidiel na joysticku." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." +msgstr "" +"Čas v sekundách pre zopakovanie pravého kliknutia v prípade\n" +"držania pravého tlačítka myši." + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "Typ joysticku" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" +"Vertikálna vzdialenosť kedy poklesne teplota o 20 ak je 'altitude_chill'\n" +"aktívne. Tiež je to vertikálna vzdialenosť kedy poklesne vlhkosť o 10,\n" +"ak je 'altitude_dry' aktívne." + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "Tretí zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" +"Čas existencie odložený (odhodených) vecí v sekundách.\n" +"Nastavené na -1 vypne túto vlastnosť." + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "Čas pri spustení nového sveta, v milihodinách (0-23999)." + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "Interval posielania času" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "Rýchlosť času" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" +"Časový limit na klientovi, pre odstránenie nepoužívaných mapových dát z " +"pamäte." + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" +"Pre zníženie lagu, prenos blokov je spomalený, keď hráč niečo stavia.\n" +"Toto určuje ako dlho je spomalený po vložení, alebo zmazaní kocky." + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "Tlačidlo Prepnutie režimu zobrazenia" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "Oneskorenie popisku" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "Prah citlivosti dotykovej obrazovky" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "Šum stromov" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "Trilineárne filtrovanie" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" +"Pravda = 256\n" +"Nepravda = 128\n" +"Užitočné pre plynulejšiu minimapu na pomalších strojoch." + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "Dôveryhodné rozšírenia" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" +"Adresa (URL) k zoznamu serverov, ktorý sa zobrazuje v záložke Multiplayer." + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "Podvzorkovanie" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" +"Podvzorkovanie je podobné ako použiť obrazovku s nižším rozlíšením, ale\n" +"aplikuje sa len na samotný svet, pričom GUI ostáva nezmenené.\n" +"Malo by poskytnúť výrazné zvýšenie výkonu za cenu nižších detailov obrazu.\n" +"Vyššie hodnotu vedú k menej detailnému obrazu." + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "Neobmedzená vzdialenosť zobrazenia hráča" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "Uvoľni nepoužívané serverové dáta" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "Horný Y limit kobiek." + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "Horný Y limit lietajúcich pevnín." + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "Použi 3D mraky namiesto plochých." + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "Použi animáciu mrakov pre pozadie hlavného menu." + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "Použi anisotropné filtrovanie pri pohľade na textúry zo strany." + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "Použi bilineárne filtrovanie pri zmene mierky textúr." + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" +"Použi mip mapy pre úpravu textúr. Môže jemne zvýšiť výkon,\n" +"obzvlášť použití balíčka textúr s vysokým rozlíšením.\n" +"Gama korektné podvzorkovanie nie je podporované." + +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "Použi trilineárne filtrovanie pri zmene mierky textúr." + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "VBO" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "VSync" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "Hĺbka údolia" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "Výplň údolí" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "Profil údolia" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "Sklon údolia" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "Odchýlka hĺbky výplne biómu." + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "Obmieňa maximálnu výšku hôr (v kockách)." + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "Rôznosť počtu jaskýň." + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" +"Rozptyl vertikálnej mierky terénu.\n" +"Ak je šum <-0.55, terén je takmer rovný." + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "Pozmeňuje hĺbku povrchových kociek biómu." + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" +"Mení rôznorodosť terénu.\n" +"Definuje hodnotu 'stálosti' pre terrain_base a terrain_alt noises." + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "Pozmeňuje strmosť útesov." + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "Vertikálna rýchlosť šplhania, v kockách za sekundu." + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "Vertikálna synchronizácia obrazovky." + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "Grafický ovládač" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "Faktor pohupovania sa" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "Vzdialenosť dohľadu v kockách." + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "Tlačidlo Zníž dohľad" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "Tlačidlo Zvýš dohľad" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "Tlačidlo Priblíženie pohľadu" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "Vzdialenosť dohľadu" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "Virtuálny joystick stlačí tlačidlo aux" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "Hlasitosť" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." +msgstr "" +"Hlasitosť všetkých zvukov.\n" +"Požaduje aby bol zvukový systém aktivovaný." + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" +"W koordináty generovaného 3D plátku v 4D fraktáli.\n" +"Určuje, ktorý 3D plátok z 4D tvaru je generovaný.\n" +"Zmení tvar fraktálu.\n" +"Nemá vplyv na 3D fraktály.\n" +"Rozsah zhruba -2 až 2." + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "Rýchlosť chôdze a lietania, v kockách za sekundu." + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "Rýchlosť chôdze" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" +"Rýchlosť chôdze, lietania a šplhania v rýchlom režime, v kockách za sekundu." + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "Úroveň vody" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "Hladina povrchovej vody vo svete." + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "Vlniace sa kocky" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "Vlniace sa listy" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "Vlniace sa tekutiny" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "Výška vlnenia sa tekutín" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "Rýchlosť vlny tekutín" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "Vlnová dĺžka vlniacich sa tekutín" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "Vlniace sa rastliny" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" +"Ake je gui_scaling_filter povolený, všetky GUI obrázky potrebujú byť\n" +"filtrované softvérom, ale niektoré obrázky sú generované priamo\n" +"pre hardvér (napr. render-to-texture pre kocky v inventári)." + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" +"Ake je gui_scaling_filter_txr2img povolený, nakopíruj tieto obrázky\n" +"z hardvéru do softvéru pre zmenu mierky. Ak za vypnutý, vráť sa\n" +"k starej metóde zmeny mierky, pre grafické ovládače, ktoré dostatočne\n" +"nepodporujú sťahovanie textúr z hardvéru." + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" +"Pri použití bilineárneho/trilineárneho/anisotropného filtra, textúry s " +"nízkym\n" +"rozlíšením môžu byť rozmazané, tak sa automaticky upravia interpoláciou\n" +"s najbližším susedom aby bola zachovaná ostrosť pixelov.\n" +"Toto nastaví minimálnu veľkosť pre upravenú textúru;\n" +"vyššia hodnota znamená ostrejší vzhľad, ale potrebuje viac pamäti.\n" +"Odporúčané sú mocniny 2. Nastavenie viac než 1 nemusí mať viditeľný efekt,\n" +"kým nie je použité bilineárne/trilineárne/anisotropné filtrovanie.\n" +"Toto sa tiež používa ako základná veľkosť textúry kociek pre\n" +"\"world-aligned autoscaling\" textúr." + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." +msgstr "" +"Aby boli FreeType písma použité, je nutné aby bola podpora FreeType " +"zakompilovaná.\n" +"Ak je zakázané, budú použité bitmapové a XML vektorové písma." + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "Či sa nemá animácia textúry kocky synchronizovať." + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" +"Či sa hráči zobrazia klientom bez obmedzenia vzdialenosti.\n" +"Zastarané, namiesto tohto použi player_transfer_distance." + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "Či sa môžu hráči navzájom poškodzovať a zabiť." + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" +"Či ná ponúknuť klientom obnovenie spojenia po páde (Lua).\n" +"Povoľ, ak je tvoj server nastavený na automatický reštart." + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "Či zamlžiť okraj viditeľnej oblasti." + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" +"Vypnutie zvukov. Zapnúť zvuky môžeš kedykoľvek, pokiaľ\n" +"nie je zakázaný zvukový systém (enable_sound=false).\n" +"V hre môžeš zapnúť/vypnúť zvuk tlačidlom pre stíšenie zvuku, alebo\n" +"pozastavením hry." + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "Zobrazenie ladiaceho okna na klientovi (má rovnaký efekt ako F5)." + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "Šírka okna po spustení." + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "Šírka línií obrysu kocky." + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" +"Len pre systémy s Windows: Spusti Minetest s oknom príkazovej riadky na " +"pozadí.\n" +"Obsahuje tie isté informácie ako súbor debug.txt (štandardný názov)." + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" +"Adresár sveta (všetko na svete je uložené tu).\n" +"Nie je potrebné ak sa spúšťa z hlavného menu." + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "Počiatočný čas sveta" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" +"Textúry zarovnané podľa sveta môžu byť zväčšené aby pokryli niekoľko " +"kociek.\n" +"Avšak server nemusí poslať mierku akú potrebuješ, obzvlášť ak používaš\n" +"špeciálne dizajnovaný balíček textúr; s týmto nastavením, sa klient pokúsi\n" +"určiť mierku automaticky na základe veľkosti textúry.\n" +"Viď. tiež texture_min_size.\n" +"Varovanie: Toto nastavenie je EXPERIMENTÁLNE!" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "Režim zarovnaných textúr podľa sveta" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "Y plochej zeme." + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" +"Y hustotný gradient hladiny nula pre hory. Používa sa pre vertikálny posun " +"hôr." + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "Horný Y limit veľkých jaskýň." + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "Y-nová vzdialenosť nad ktorou dutiny expandujú do plnej veľkosti." + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" +"Y-vzdialenosť kde sa lietajúce pevniny zužujú od plnej hustoty po nič.\n" +"Zužovanie začína na tejto vzdialenosti z Y limitu.\n" +"Pre jednoznačnosť vrstvy lietajúcej krajiny, toto riadi výšku kopcov/hôr.\n" +"Musí byť menej ako, alebo rovnako ako polovica vzdialenosti medzi Y limitami." + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "Y-úroveň priemeru povrchu terénu." + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "Y-úroveň horného limitu dutín." + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "Y-úroveň horného terénu, ktorý tvorí útesy/skaly." + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "Y-úroveň dolnej časti terénu a morského dna." + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "Y-úroveň morského dna." + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "cURL časový rámec sťahovania súborov" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "Paralelný limit cURL" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "Časový rámec cURL" + +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion s informácia o sklone (rýchlejšie).\n" +#~ "1 = mapovanie reliéfu (pomalšie, presnejšie)." + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Si si istý, že chceš vynulovať svoj svet jedného hráča?" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping (Ilúzia nerovnosti)" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Zmení užívateľské rozhranie (UI) hlavného menu:\n" +#~ "- Plné: Viacero svetov, voľby hry, voľba balíčka textúr, atď.\n" +#~ "- Jednoduché: Jeden svet, bez herných volieb, alebo voľby textúr. Môže " +#~ "byť\n" +#~ "nevyhnutné pre malé obrazovky." + +#~ msgid "Config mods" +#~ msgstr "Nastav rozšírenia" + +#~ msgid "Configure" +#~ msgstr "Konfigurácia" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Farba zameriavača (R,G,B)." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Definuje vzorkovací krok pre textúry.\n" +#~ "Vyššia hodnota vedie k jemnejším normálovým mapám." + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktivuje bumpmapping pre textúry. Normálové mapy musia byť dodané v " +#~ "balíčku textúr.\n" +#~ "alebo musia byť automaticky generované.\n" +#~ "Vyžaduje aby boli shadery aktivované." + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Aktivuje generovanie normálových máp za behu (efekt reliéfu).\n" +#~ "Požaduje aby bol aktivovaný bumpmapping." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktivuj parallax occlusion mapping.\n" +#~ "Požaduje aby boli aktivované shadery." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentálne nastavenie, môže spôsobiť viditeľné medzery\n" +#~ "medzi blokmi, ak je nastavené väčšie než 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS v menu pozastavenia hry" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Normal Maps (nerovnosti)" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generuj normálové mapy" + +#~ msgid "Main" +#~ msgstr "Hlavné" + +#~ msgid "Main menu style" +#~ msgstr "Štýl hlavného menu" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa v radarovom režime, priblíženie x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa v radarovom režime, priblíženie x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa v povrchovom režime, priblíženie x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa v povrchovom režime, priblíženie x4" + +#~ msgid "Name/Password" +#~ msgstr "Meno/Heslo" + +#~ msgid "No" +#~ msgstr "Nie" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Vzorkovanie normálových máp" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intenzita normálových máp" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Počet opakovaní výpočtu parallax occlusion." + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Celkové skreslenie parallax occlusion efektu, obvykle mierka/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Celková mierka parallax occlusion efektu." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion (nerovnosti)" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Skreslenie parallax occlusion" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Opakovania parallax occlusion" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Režim parallax occlusion" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Mierka parallax occlusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Vynuluj svet jedného hráča" + +#~ msgid "Start Singleplayer" +#~ msgstr "Spusti hru pre jedného hráča" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intenzita generovaných normálových máp." + +#~ msgid "View" +#~ msgstr "Zobraziť" + +#~ msgid "Yes" +#~ msgstr "Áno" diff --git a/po/sl/minetest.po b/po/sl/minetest.po index ea9ee31af..2b9b0e188 100644 --- a/po/sl/minetest.po +++ b/po/sl/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Slovenian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-09-30 19:41+0000\n" "Last-Translator: Iztok Bajcar \n" "Language-Team: Slovenian \n" "Language-Team: Serbian (cyrillic) \n" "Language-Team: Serbian (latin) =20) ? 1 : 2;\n" "X-Generator: Weblate 4.2-dev\n" -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "Umro/la si." - #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" msgstr "Vrati se u zivot" +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Umro/la si." + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "OK" -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "Server je zahtevao ponovno povezivanje:" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "Ponovno povezivanje" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "Glavni meni" - #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" msgstr "Doslo je do greske u Lua skripti:" @@ -52,47 +40,81 @@ msgstr "Doslo je do greske u Lua skripti:" msgid "An error occurred:" msgstr "Doslo je do greske:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Ucitavanje..." +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "Glavni meni" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "Ponovno povezivanje" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "Server je zahtevao ponovno povezivanje:" #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Pokusajte ponovo omoguciti javnu listu servera i proverite vasu internet " -"vezu." - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "Server podrzava protokol verzije izmedju $1 ili $2. " +msgid "Protocol version mismatch. " +msgstr "Protokol verzija neuskladjena. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " msgstr "Server primenjuje protokol verzije $1. " #: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "Mi podrzavamo protokol verzija izmedju verzije $1 i $2." +msgid "Server supports protocol versions between $1 and $2. " +msgstr "Server podrzava protokol verzije izmedju $1 ili $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Mi samo podrzavamo protokol verzije $1." #: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "Protokol verzija neuskladjena. " +msgid "We support protocol versions between version $1 and $2." +msgstr "Mi podrzavamo protokol verzija izmedju verzije $1 i $2." + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "Ponisti" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "Zavisnosti:" #: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "Svet:" +msgid "Disable all" +msgstr "Onemoguci sve" #: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "Opis modpack-a nije prilozen." +msgid "Disable modpack" +msgstr "Onemoguci modpack" #: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "Opis igre nije prilozen." +msgid "Enable all" +msgstr "Omoguci sve" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "Omoguci modpack" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" +"Nije omogucen mod \"$1\" jer sadrzi nedozvoljene simbole. Samo simboli [a-z, " +"0-9_] su dozvoljeni." + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Find More Mods" +msgstr "Nadji jos modova" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -102,175 +124,246 @@ msgstr "Mod:" msgid "No (optional) dependencies" msgstr "Nema (opcionih) zavisnosti" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "Opis igre nije prilozen." + #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" msgstr "Bez teskih zavisnosti" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "Neobavezne zavisnosti:" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "Zavisnosti:" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "Opis modpack-a nije prilozen." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" msgstr "Bez neobaveznih zavisnosti" +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "Neobavezne zavisnosti:" + #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" msgstr "Sacuvaj" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "Ponisti" - #: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "Nadji jos modova" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "Onemoguci modpack" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "Omoguci modpack" +msgid "World:" +msgstr "Svet:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" msgstr "Omoguceno" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "Onemoguci sve" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "Omoguci sve" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Preuzimanje..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "All packages" +msgstr "Svi paketi" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back to Main Menu" +msgstr "Nazad na Glavni meni" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" msgstr "" -"Nije omogucen mod \"$1\" jer sadrzi nedozvoljene simbole. Samo simboli [a-z, " -"0-9_] su dozvoljeni." #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB je nedostupan kada je Minetest sastavljen bez cURL" #: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "Svi paketi" +msgid "Downloading..." +msgstr "Preuzimanje..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "Neuspelo preuzimanje $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" msgstr "Igre" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "Instalirati" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Instalirati" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Neobavezne zavisnosti:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Modovi" -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "Pakovanja tekstura" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "Neuspelo preuzimanje $1" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Trazi" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" -msgstr "Nazad na Glavni meni" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "Bez rezultata" - #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" msgstr "Nema paketa za preuzeti" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "Preuzimanje..." +msgid "No results" +msgstr "Bez rezultata" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "Instalirati" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" +#, fuzzy +msgid "No updates" msgstr "Azuriranje" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "Pakovanja tekstura" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" msgstr "Deinstaliraj" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Pogled" +msgid "Update" +msgstr "Azuriranje" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "Pecine" +msgid "A world named \"$1\" already exists" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "Veoma velike pecine duboko ispod zemlje" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "Reke na nivou mora" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "Reke" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "Planine" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "Lebdece zemlje (eksperimentalno)" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "Lebdece zemaljske mase na nebu" +msgid "Additional terrain" +msgstr "Dodatni teren" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "Nadmorska visina" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "Smanjuje toplotu sa visinom" - #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" msgstr "Visina suva" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "Smanjuje vlaznost sa visinom" +msgid "Biome blending" +msgstr "Mesanje bioma" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biomes" +msgstr "Biomi" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caverns" +msgstr "Pecine" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Caves" +msgstr "Pecine" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Decorations" +msgstr "Dekoracije" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "Preuzmi jednu sa minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Dungeons" +msgstr "Tamnice" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Flat terrain" +msgstr "Ravan teren" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floating landmasses in the sky" +msgstr "Lebdece zemaljske mase na nebu" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Floatlands (experimental)" +msgstr "Lebdece zemlje (eksperimentalno)" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Generate non-fractal terrain: Oceans and underground" +msgstr "Stvaranje ne-fraktalnog terena: Okeani i podzemlje" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Hills" +msgstr "Brda" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -281,76 +374,65 @@ msgid "Increases humidity around rivers" msgstr "Povecana vlaznost oko reka" #: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "Razlicita dubina reke" +msgid "Lakes" +msgstr "Jezera" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "Niska vlaga i visoka toplota uzrokuju plitke ili suve reke" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "Brda" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "Mapgen zastave" #: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "Jezera" +msgid "Mapgen-specific flags" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "Dodatni teren" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "Stvaranje ne-fraktalnog terena: Okeani i podzemlje" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "Drveca i trava dzungle" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "Ravan teren" +msgid "Mountains" +msgstr "Planine" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" msgstr "Protok blata" #: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "Povrsinska erozija terena" +msgid "Network of tunnels and caves" +msgstr "Mreza tunela i pecina" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "Umereno,Pustinja,Dzungla,Tundra,Tajga" +msgid "No game selected" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "Umereno,Pustinja,Dzungla" +msgid "Reduces heat with altitude" +msgstr "Smanjuje toplotu sa visinom" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "Umereno,Pustinja" +msgid "Reduces humidity with altitude" +msgstr "Smanjuje vlaznost sa visinom" #: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "Nema instaliranih igara." +msgid "Rivers" +msgstr "Reke" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "Preuzmi jednu sa minetest.net" +msgid "Sea level rivers" +msgstr "Reke na nivou mora" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "Pecine" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "Tamnice" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "Dekoracije" +msgid "Smooth transition between biomes" +msgstr "Glatki prelaz izmedju bioma" #: builtin/mainmenu/dlg_create_world.lua msgid "" @@ -365,65 +447,44 @@ msgid "Structures appearing on the terrain, typically trees and plants" msgstr "Konstrukcije koje se pojavljuju na terenu , obicno drvece i biljke" #: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "Mreza tunela i pecina" +msgid "Temperate, Desert" +msgstr "Umereno,Pustinja" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "Biomi" +msgid "Temperate, Desert, Jungle" +msgstr "Umereno,Pustinja,Dzungla" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "Mesanje bioma" +msgid "Temperate, Desert, Jungle, Tundra, Taiga" +msgstr "Umereno,Pustinja,Dzungla,Tundra,Tajga" #: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "Glatki prelaz izmedju bioma" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "Mapgen zastave" +msgid "Terrain surface erosion" +msgstr "Povrsinska erozija terena" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "" +msgid "Trees and jungle grass" +msgstr "Drveca i trava dzungle" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Vary river depth" +msgstr "Razlicita dubina reke" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Very large caverns deep in the underground" +msgstr "Veoma velike pecine duboko ispod zemlje" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." msgstr "" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" - #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "" +msgid "You have no games installed." +msgstr "Nema instaliranih igara." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" @@ -451,42 +512,18 @@ msgstr "" msgid "Accept" msgstr "" +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "" + #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" +msgid "(No description of setting given)" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua @@ -494,19 +531,111 @@ msgid "2D Noise" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" +msgid "< Back to Settings page" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Lacunarity" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" +msgid "Please enter a valid integer." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Trazi" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select directory" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select file" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "X spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Y spread" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Z spread" +msgstr "" + +#. ~ "absvalue" is a noise parameter flag. +#. It is short for "absolute value". +#. It can be enabled in noise settings in +#. main menu -> "All Settings". +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "absvalue" msgstr "" #. ~ "defaults" is a noise parameter flag. @@ -524,76 +653,12 @@ msgstr "" msgid "eased" msgstr "" -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" +msgid "$1 mods" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -601,11 +666,7 @@ msgid "Failed to install $1 to $2" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" +msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -613,15 +674,7 @@ msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -629,11 +682,49 @@ msgid "Install: file: \"$1\"" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" +msgid "Unable to find a valid mod or modpack" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" +msgid "Unable to install a $1 as a texture pack" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a game as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a mod as a $1" +msgstr "" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a modpack as a $1" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Ucitavanje..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Pokusajte ponovo omoguciti javnu listu servera i proverite vasu internet " +"vezu." + +#: builtin/mainmenu/tab_content.lua +msgid "Browse online content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Content" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Disable Texture Pack" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Information:" msgstr "" #: builtin/mainmenu/tab_content.lua @@ -641,7 +732,7 @@ msgid "Installed Packages:" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Browse online content" +msgid "No dependencies." msgstr "" #: builtin/mainmenu/tab_content.lua @@ -652,36 +743,12 @@ msgstr "" msgid "Rename" msgstr "" -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" +msgid "Use Texture Pack" msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -689,63 +756,73 @@ msgid "Active Contributors" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" +msgid "Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Port" +msgid "Creative Mode" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Install games from ContentDB" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -753,7 +830,19 @@ msgid "Play Game" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -764,95 +853,51 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Favorite" msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua +msgid "PvP enabled" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "2x" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "4x" msgstr "" @@ -862,63 +907,19 @@ msgid "8x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" +msgid "All Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" +msgid "Bilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp @@ -926,15 +927,88 @@ msgid "Change Keys" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" +msgid "Connected Glass" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" +msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Lebdece zemlje (eksperimentalno)" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (unavailable)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp @@ -942,49 +1016,41 @@ msgid "Tone Mapping" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" +msgid "Touchthreshold: (px)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" +msgid "Trilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Liquids" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" +#: src/client/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client/client.cpp +msgid "Initializing nodes..." +msgstr "" + #: src/client/client.cpp msgid "Loading textures..." msgstr "" @@ -993,46 +1059,10 @@ msgstr "" msgid "Rebuilding shaders..." msgstr "" -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "" -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" msgstr "" @@ -1041,6 +1071,30 @@ msgstr "" msgid "Invalid gamespec." msgstr "" +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided password file failed to open: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" #. into the translation field (literally). @@ -1054,128 +1108,42 @@ msgid "needs_fallback_font" msgstr "" #: src/client/game.cpp -msgid "Shutting down..." +msgid "" +"\n" +"Check debug.txt for details." msgstr "" #: src/client/game.cpp -msgid "Creating server..." +msgid "- Address: " msgstr "" #: src/client/game.cpp -msgid "Creating client..." +msgid "- Creative Mode: " msgstr "" #: src/client/game.cpp -msgid "Resolving address..." +msgid "- Damage: " msgstr "" #: src/client/game.cpp -msgid "Connecting to server..." +msgid "- Mode: " msgstr "" #: src/client/game.cpp -msgid "Item definitions..." +msgid "- Port: " msgstr "" #: src/client/game.cpp -msgid "Node definitions..." +msgid "- Public: " +msgstr "" + +#. ~ PvP = Player versus Player +#: src/client/game.cpp +msgid "- PvP: " msgstr "" #: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" +msgid "- Server Name: " msgstr "" #: src/client/game.cpp @@ -1183,63 +1151,7 @@ msgid "Automatic forward disabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" +msgid "Automatic forward enabled" msgstr "" #: src/client/game.cpp @@ -1251,30 +1163,66 @@ msgid "Camera update enabled" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" +msgid "Change Password" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Cinematic mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Client side scripting is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/client/game.cpp +msgid "Continue" msgstr "" #: src/client/game.cpp #, c-format -msgid "Viewing range changed to %d" +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" +msgid "Creating client..." msgstr "" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" +msgid "Creating server..." msgstr "" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" +msgid "Debug info and profiler graph hidden" msgstr "" #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" +msgid "Debug info shown" +msgstr "" + +#: src/client/game.cpp +msgid "Debug info, profiler graph, and wireframe hidden" msgstr "" #: src/client/game.cpp @@ -1294,38 +1242,11 @@ msgid "" msgstr "" #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" +msgid "Disabled unlimited viewing range" msgstr "" #: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" +msgid "Enabled unlimited viewing range" msgstr "" #: src/client/game.cpp @@ -1336,20 +1257,44 @@ msgstr "" msgid "Exit to OS" msgstr "" +#: src/client/game.cpp +msgid "Fast mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Fog disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Fog enabled" +msgstr "" + #: src/client/game.cpp msgid "Game info:" msgstr "" #: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " +msgid "Game paused" msgstr "" #: src/client/game.cpp @@ -1357,15 +1302,39 @@ msgid "Hosting server" msgstr "" #: src/client/game.cpp -msgid "- Port: " +msgid "Item definitions..." msgstr "" #: src/client/game.cpp -msgid "Singleplayer" +msgid "KiB/s" msgstr "" #: src/client/game.cpp -msgid "On" +msgid "Media..." +msgstr "" + +#: src/client/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/client/game.cpp +msgid "Minimap currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled" +msgstr "" + +#: src/client/game.cpp +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "" + +#: src/client/game.cpp +msgid "Node definitions..." msgstr "" #: src/client/game.cpp @@ -1373,34 +1342,87 @@ msgid "Off" msgstr "" #: src/client/game.cpp -msgid "- Damage: " +msgid "On" msgstr "" #: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " +msgid "Pitch move mode disabled" msgstr "" #: src/client/game.cpp -msgid "- Public: " +msgid "Pitch move mode enabled" msgstr "" #: src/client/game.cpp -msgid "- Server Name: " +msgid "Profiler graph shown" msgstr "" #: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." +msgid "Remote server" msgstr "" -#: src/client/gameui.cpp -msgid "Chat shown" +#: src/client/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/client/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/client/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/client/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/client/game.cpp +msgid "Sound muted" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is disabled" +msgstr "" + +#: src/client/game.cpp +msgid "Sound system is not supported on this build" +msgstr "" + +#: src/client/game.cpp +msgid "Sound unmuted" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range changed to %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "" + +#: src/client/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/client/game.cpp +msgid "Wireframe shown" +msgstr "" + +#: src/client/game.cpp +msgid "Zoom currently disabled by game or mod" +msgstr "" + +#: src/client/game.cpp +msgid "ok" msgstr "" #: src/client/gameui.cpp @@ -1408,7 +1430,7 @@ msgid "Chat hidden" msgstr "" #: src/client/gameui.cpp -msgid "HUD shown" +msgid "Chat shown" msgstr "" #: src/client/gameui.cpp @@ -1416,32 +1438,20 @@ msgid "HUD hidden" msgstr "" #: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" +msgid "HUD shown" msgstr "" #: src/client/gameui.cpp msgid "Profiler hidden" msgstr "" -#: src/client/keycode.cpp -msgid "Left Button" +#: src/client/gameui.cpp +#, c-format +msgid "Profiler shown (page %d of %d)" msgstr "" #: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" +msgid "Apps" msgstr "" #: src/client/keycode.cpp @@ -1449,106 +1459,120 @@ msgid "Backspace" msgstr "" #: src/client/keycode.cpp -msgid "Tab" +msgid "Caps Lock" msgstr "" #: src/client/keycode.cpp msgid "Clear" msgstr "" -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - #: src/client/keycode.cpp msgid "Control" msgstr "" +#: src/client/keycode.cpp +msgid "Down" +msgstr "" + +#: src/client/keycode.cpp +msgid "End" +msgstr "" + +#: src/client/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/client/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/client/keycode.cpp +msgid "Help" +msgstr "" + +#: src/client/keycode.cpp +msgid "Home" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/client/keycode.cpp +msgid "Left Windows" +msgstr "" + #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" msgstr "" #: src/client/keycode.cpp -msgid "Pause" +msgid "Middle Button" msgstr "" #: src/client/keycode.cpp -msgid "Caps Lock" +msgid "Num Lock" msgstr "" #: src/client/keycode.cpp -msgid "Space" +msgid "Numpad *" msgstr "" #: src/client/keycode.cpp -msgid "Page up" +msgid "Numpad +" msgstr "" #: src/client/keycode.cpp -msgid "Page down" +msgid "Numpad -" msgstr "" #: src/client/keycode.cpp -msgid "End" +msgid "Numpad ." msgstr "" #: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" +msgid "Numpad /" msgstr "" #: src/client/keycode.cpp @@ -1592,79 +1616,69 @@ msgid "Numpad 9" msgstr "" #: src/client/keycode.cpp -msgid "Numpad *" +msgid "OEM Clear" msgstr "" #: src/client/keycode.cpp -msgid "Numpad +" +msgid "Page down" msgstr "" #: src/client/keycode.cpp -msgid "Numpad ." +msgid "Page up" msgstr "" #: src/client/keycode.cpp -msgid "Numpad -" +msgid "Pause" msgstr "" #: src/client/keycode.cpp -msgid "Numpad /" +msgid "Play" +msgstr "" + +#. ~ "Print screen" key +#: src/client/keycode.cpp +msgid "Print" msgstr "" #: src/client/keycode.cpp -msgid "Num Lock" +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" msgstr "" #: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" +msgid "Right Button" msgstr "" #: src/client/keycode.cpp msgid "Right Control" msgstr "" -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - #: src/client/keycode.cpp msgid "Right Menu" msgstr "" #: src/client/keycode.cpp -msgid "IME Escape" +msgid "Right Shift" msgstr "" #: src/client/keycode.cpp -msgid "IME Convert" +msgid "Right Windows" msgstr "" #: src/client/keycode.cpp -msgid "IME Nonconvert" +msgid "Scroll Lock" +msgstr "" + +#. ~ Key name +#: src/client/keycode.cpp +msgid "Select" msgstr "" #: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" +msgid "Shift" msgstr "" #: src/client/keycode.cpp @@ -1672,19 +1686,57 @@ msgid "Sleep" msgstr "" #: src/client/keycode.cpp -msgid "Erase EOF" +msgid "Snapshot" msgstr "" #: src/client/keycode.cpp -msgid "Play" +msgid "Space" +msgstr "" + +#: src/client/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/client/keycode.cpp +msgid "Up" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/client/keycode.cpp +msgid "X Button 2" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "" -#: src/client/keycode.cpp -msgid "OEM Clear" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" msgstr "" #: src/gui/guiConfirmRegistration.cpp @@ -1697,150 +1749,118 @@ msgid "" "creation, or click 'Cancel' to abort." msgstr "" -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" +msgid "Autoforward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. range" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Special" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" @@ -1849,16 +1869,36 @@ msgstr "" msgid "Toggle chat log" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" msgstr "" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle minimap" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "New Password" +msgid "Change" msgstr "" #: src/gui/guiPasswordChange.cpp @@ -1866,11 +1906,11 @@ msgid "Confirm Password" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "Change" +msgid "New Password" msgstr "" -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" msgstr "" #: src/gui/guiVolumeChange.cpp @@ -1881,6 +1921,10 @@ msgstr "" msgid "Muted" msgstr "" +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1894,199 +1938,12 @@ msgstr "" msgid "LANG_CODE" msgstr "" -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" @@ -2094,1406 +1951,103 @@ msgid "" "circle." msgstr "" -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." msgstr "" #: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." +msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "Leaves style" +msgid "2D noise that controls the shape/size of rolling hills." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" +msgid "2D noise that controls the shape/size of step mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." +msgid "2D noise that controls the size/occurrence of rolling hills." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds" +msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." +msgid "2D noise that locates the river valleys and channels." msgstr "" #: src/settings_translation_file.cpp msgid "3D clouds" msgstr "" -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - #: src/settings_translation_file.cpp msgid "3D mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "3D mode parallax strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "" + #: src/settings_translation_file.cpp msgid "" "3D support.\n" @@ -3509,198 +2063,97 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "3D mode parallax strength" +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." msgstr "" #: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." +msgid "A message to be displayed to all clients when the server crashes." msgstr "" #: src/settings_translation_file.cpp -msgid "Console height" +msgid "A message to be displayed to all clients when the server shuts down." msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgid "ABM interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Console color" +msgid "ABM time budget" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." +msgid "Absolute limit of queued blocks to emerge" msgstr "" #: src/settings_translation_file.cpp -msgid "Console alpha" +msgid "Acceleration in air" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgid "Acceleration of gravity, in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" +msgid "Active Block Modifiers" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." +msgid "Active block management interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" +msgid "Active block range" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" +msgid "Active object send range" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." msgstr "" #: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" +msgid "Adds particles when digging a node." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" +#, c-format +msgid "" +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." msgstr "" #: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgid "Always fly and fast" msgstr "" #: src/settings_translation_file.cpp @@ -3708,123 +2161,23 @@ msgid "Ambient occlusion gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." +msgid "Amount of messages a player may send per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Inventory items animations" +msgid "Amplifies the valleys." msgstr "" #: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." +msgid "Anisotropic filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "Fog start" +msgid "Announce server" msgstr "" #: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." +msgid "Announce to this serverlist." msgstr "" #: src/settings_translation_file.cpp @@ -3836,1074 +2189,23 @@ msgid "Append item name to tooltip." msgstr "" #: src/settings_translation_file.cpp -msgid "FreeType fonts" +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Arm inertia" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." msgstr "" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "At this distance the server will aggressively optimize which blocks are sent " @@ -4920,7 +2222,1378 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" +msgid "Automatic forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically jump up single-node obstacles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automatically report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autosave screen size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autoscaling mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold and italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bold monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern upper limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message count limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message kick threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat message max length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side modding restrictions" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client side node lookup range restriction" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Flag Blacklist" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls sinking speed in liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log file size threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default stack size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines distribution of higher terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the base ground level." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the depth of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river channel." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the width of the river valley." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the 'snowbiomes' flag is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug information." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dungeon noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod channels support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable register confirmation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS when unfocused or paused" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of two 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed virtual joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland density" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland maximum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland minimum Y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland taper exponent" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland tapering distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font bold by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font italic by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the default font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the fallback font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size of the monospace font in point (pt)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Font size of the recent chat text and chat prompt in point (pt).\n" +"Value 0 will use the default font size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Default Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec Full-Screen Background Opacity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness3 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hilliness4 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 1 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 10 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 11 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 12 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 13 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 14 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 15 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 16 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 17 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 18 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 19 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 2 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 20 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 21 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 22 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 23 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 24 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 25 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 26 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 27 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 28 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 29 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 3 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 30 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 31 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 32 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 4 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 5 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 6 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 7 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 8 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." msgstr "" #: src/settings_translation_file.cpp @@ -4933,7 +3606,1653 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Italic monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave maximum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave proportion flooded" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost center" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve boost spread" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve high gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Light curve low gradient" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sinking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lower Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation attributes specific to Mapgen v5." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Carpathian specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Fractal specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen V7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"This limit is enforced per player." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can be connected simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of recent chat messages to show" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimal level of logging to be written to chat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of large caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mod channels" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain variation noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain zero level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Near plane" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Online Content Repository" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path of the fallback font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to save screenshots at. Can be an absolute or relative path.\n" +"The folder will be created if it doesn't already exist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the default font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to the monospace font.\n" +"If “freetype” setting is enabled: Must be a TrueType font.\n" +"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pause on lost window focus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks load from disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Per-player limit of queued blocks to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Pitch move mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds).\n" +"0 = disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prometheus listener address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Proportion of large caves that contain liquid." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Recent Chat Messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Regular font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" msgstr "" #: src/settings_translation_file.cpp @@ -4951,812 +5270,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." +msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp @@ -5764,127 +5278,7 @@ msgid "Ridge noise" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." +msgid "Ridge underwater noise" msgstr "" #: src/settings_translation_file.cpp @@ -5892,15 +5286,19 @@ msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." +msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Step mountain size noise" +msgid "River channel depth" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." +msgid "River channel width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River depth" msgstr "" #: src/settings_translation_file.cpp @@ -5908,102 +5306,115 @@ msgid "River noise" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." +msgid "River size" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain variation noise" +msgid "River valley width" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgid "Rollback recording" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" +msgid "Rolling hill size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" +msgid "Rolling hills spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Safe digging and placing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save window size automatically when modified." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." msgstr "" #: src/settings_translation_file.cpp -msgid "Ground level" +msgid "Screen height" msgstr "" #: src/settings_translation_file.cpp -msgid "Y of flat ground." +msgid "Screen width" msgstr "" #: src/settings_translation_file.cpp -msgid "Lake threshold" +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." msgstr "" #: src/settings_translation_file.cpp -msgid "Lake steepness" +msgid "Seabed noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." +msgid "Second of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Hill threshold" +msgid "Second of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." +msgid "Security" msgstr "" #: src/settings_translation_file.cpp -msgid "Hill steepness" +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." +msgid "Selection box border color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain noise" +msgid "Selection box color" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" +msgid "Selection box width" msgstr "" #: src/settings_translation_file.cpp @@ -6030,217 +5441,113 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Iterations" +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Set the maximum character length of a chat message sent by clients." msgstr "" #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia x" +msgid "Shader path" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia w" +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." +"Show entity selection boxes\n" +"A restart is required after changing this." msgstr "" #: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" +msgid "Shutdown message" msgstr "" #: src/settings_translation_file.cpp @@ -6254,65 +5561,207 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen debug" +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." msgstr "" #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." +msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" +msgid "Slope and fill work together to modify the heights." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." +msgid "Small cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +msgid "Small cave minimum number" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneaking speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Special key for climbing/descending" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." msgstr "" #: src/settings_translation_file.cpp -msgid "Online Content Repository" +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB URL" +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain size noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Step mountain spread noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of 3D mode parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Surface level of optional water placed on a solid floatland layer.\n" +"Water is disabled by default and will only be placed if this value is set\n" +"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" +"upper tapering).\n" +"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" +"When enabling water placement the floatlands must be configured and tested\n" +"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" +"required value depending on 'mgv7_np_floatland'), to avoid\n" +"server-intensive extreme water flow and to avoid vast flooding of the\n" +"world surface below." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alternative noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." msgstr "" #: src/settings_translation_file.cpp @@ -6320,16 +5769,607 @@ msgid "The URL for the content repository" msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" +msgid "The deadzone of the joystick" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other biome filler node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Third of 4 2D noises that together define hill/mountain range height." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Touch screen threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of dungeons." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Upper Y limit of floatlands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VSync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical climbing speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Virtual joystick triggers aux button" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking and flying speed, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wave speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving liquids wavelength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selection box lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World start time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "World-aligned textures mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher terrain that creates cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "" + +#~ msgid "View" +#~ msgstr "Pogled" diff --git a/po/sv/minetest.po b/po/sv/minetest.po index 296e0b5bb..079a88256 100644 --- a/po/sv/minetest.po +++ b/po/sv/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Swedish (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-03-31 10:14+0000\n" "Last-Translator: sfan5 \n" "Language-Team: Swedish 0." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Definierar områden för luftöars jämna terräng.\n" -#~ "Jämna luftöar förekommer när oljud > 0." - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Kontrollerar bredd av tunnlar, mindre värden skapar bredare tunnlar." - -#, fuzzy -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Kontrollerar densiteten av luftöars bergsterräng.\n" -#~ "Är en förskjutning adderad till oljudsvärdet för 'np_mountain'." +#~ "0 = parallax ocklusion med sluttningsinformation (snabbare).\n" +#~ "1 = reliefmappning (långsammare, noggrannare)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -6608,11 +6623,94 @@ msgstr "cURL-timeout" #~ "Justera gammakodningen för ljustabeller. Högre tal är ljusare.\n" #~ "Denna inställning påverkar endast klienten och ignoreras av servern." -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Laddar ner och installerar $1, vänligen vänta..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Är du säker på att du vill starta om din enspelarvärld?" #~ msgid "Back" #~ msgstr "Tillbaka" +#~ msgid "Bump Mapping" +#~ msgstr "Stötkartläggning" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmappning" + +#~ msgid "Config mods" +#~ msgstr "Konfigurera moddar" + +#~ msgid "Configure" +#~ msgstr "Konfigurera" + +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Kontrollerar densiteten av luftöars bergsterräng.\n" +#~ "Är en förskjutning adderad till oljudsvärdet för 'np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Kontrollerar bredd av tunnlar, mindre värden skapar bredare tunnlar." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Hårkorsförg (R,G,B)." + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Definierar områden för luftöars jämna terräng.\n" +#~ "Jämna luftöar förekommer när oljud > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Definierar samplingssteg av textur.\n" +#~ "Högre värden resulterar i jämnare normalmappning." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Laddar ner och installerar $1, vänligen vänta..." + +#~ msgid "Main" +#~ msgstr "Huvudsaklig" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Huvudmeny" + +#~ msgid "Name/Password" +#~ msgstr "Namn/Lösenord" + +#~ msgid "No" +#~ msgstr "Nej" + #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parrallax Ocklusion" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parrallax Ocklusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Starta om enspelarvärld" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "Välj modfil:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Starta Enspelarläge" + +#~ msgid "Toggle Cinematic" +#~ msgstr "Slå av/på Filmisk Kamera" + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-nivå till vilket luftöars skuggor når." + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/sw/minetest.po b/po/sw/minetest.po index a34b6c98b..79c837878 100644 --- a/po/sw/minetest.po +++ b/po/sw/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Swahili (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: Swahili \n" "Language-Team: Thai \n" "Language-Team: Turkish 0." -#~ msgstr "" -#~ "Yüzenkara düz arazilerin alanlarını belirler.\n" -#~ "Gürültü > 0 iken düz yüzenkaralar oluşur." - -#~ msgid "Darkness sharpness" -#~ msgstr "Karanlık keskinliği" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Tünellerin genişliğini denetler, daha küçük bir değer daha geniş tüneller " -#~ "yaratır." - -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Dağ-türü yüzenkaraların yoğunluğunu denetler.\n" -#~ "'mgv7_np_mountain' gürültü değerine eklenen bir gürültü kaydırmadır." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Işık eğrisi orta-artırmanın merkezi." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Dağ-türü yüzerkaraların orta noktanın üstünde ve altında nasıl " -#~ "konikleştiğini değiştirir." +#~ "0 = eğim bilgili paralaks oklüzyon (daha hızlı).\n" +#~ "1 = kabartma eşleme (daha yavaş, daha doğru)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7355,20 +7294,287 @@ msgstr "cURL zaman aşımı" #~ "aydınlıktır.\n" #~ "Bu ayar yalnızca istemci içindir ve sunucu tarafından yok sayılır." -#~ msgid "Path to save screenshots at." -#~ msgstr "Ekran yakalamaların kaydedileceği konum." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Dağ-türü yüzerkaraların orta noktanın üstünde ve altında nasıl " +#~ "konikleştiğini değiştirir." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Paralaks oklüzyon gücü" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Diskte emerge sıralarının sınırı" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 indiriliyor ve kuruluyor, lütfen bekleyin..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Tek oyunculu dünyayı sıfırlamak istediğinizden emin misiniz ?" #~ msgid "Back" #~ msgstr "Geri" +#~ msgid "Bump Mapping" +#~ msgstr "Tümsek Eşleme" + +#~ msgid "Bumpmapping" +#~ msgstr "Tümsek eşleme" + +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Işık eğrisi orta-artırmanın merkezi." + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Ana Menü arayüzünü değiştirir:\n" +#~ "- Full: Çoklu tek oyunculu dünyalar, oyun seçimi, doku paketi seçici, " +#~ "vb.\n" +#~ "- Simple: Bir tek oyunculu dünya, oyun veya doku paketi seçiciler yok.\n" +#~ "Küçük ekranlar için gerekli olabilir." + +#~ msgid "Config mods" +#~ msgstr "Modları yapılandır" + +#~ msgid "Configure" +#~ msgstr "Yapılandır" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Dağ-türü yüzenkaraların yoğunluğunu denetler.\n" +#~ "'mgv7_np_mountain' gürültü değerine eklenen bir gürültü kaydırmadır." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Tünellerin genişliğini denetler, daha küçük bir değer daha geniş tüneller " +#~ "yaratır." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Artı rengi (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Karanlık keskinliği" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Yüzenkara düz arazilerin alanlarını belirler.\n" +#~ "Gürültü > 0 iken düz yüzenkaralar oluşur." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Dokuların örnekleme adımını tanımlar.\n" +#~ "Yüksek bir değer daha yumuşak normal eşlemeler verir." + +#~ msgid "" +#~ "Deprecated, define and locate cave liquids using biome definitions " +#~ "instead.\n" +#~ "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Kullanılmıyor, bunun yerine biyom tanımlarını kullanarak mağara " +#~ "sıvılarını tanımlayın ve bulun.\n" +#~ "Büyük mağaralarda lav üst sınırının Y'si." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 indiriliyor ve kuruluyor, lütfen bekleyin..." + +#~ msgid "Enable VBO" +#~ msgstr "VBO'yu etkinleştir" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Tümsek eşlemeyi dokular için etkinleştirir. Normal eşlemelerin doku " +#~ "paketi tarafından sağlanması\n" +#~ "veya kendiliğinden üretilmesi gerekir\n" +#~ "Gölgelemelerin etkin olmasını gerektirir." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Filmsel ton eşlemeyi etkinleştirir" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Çalışma anı dikey eşleme üretimini (kabartma efekti) etkinleştirir.\n" +#~ "Tümsek eşlemenin etkin olmasını gerektirir." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Paralaks oklüzyon eşlemeyi etkinleştirir.\n" +#~ "Gölgelemelerin etkin olmasını gerektirir." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Deneysel seçenek, 0'dan daha büyük bir sayıya ayarlandığında\n" +#~ "bloklar arasında görünür boşluklara neden olabilir." + +#~ msgid "FPS in pause menu" +#~ msgstr "Duraklat menüsünde FPS" + +#~ msgid "Floatland base height noise" +#~ msgstr "Yüzenkara taban yükseklik gürültüsü" + +#~ msgid "Floatland mountain height" +#~ msgstr "Yüzenkara dağ yüksekliği" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Yazı tipi gölge saydamlığı (solukluk, 0 ve 255 arası)." + +#~ msgid "Gamma" +#~ msgstr "Gama" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Normal Eşlemeleri Üret" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normal eşlemeleri üret" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 desteği." + +#~ msgid "Lava depth" +#~ msgstr "Lav derinliği" + +#~ msgid "Lightness sharpness" +#~ msgstr "Aydınlık keskinliği" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Diskte emerge sıralarının sınırı" + +#~ msgid "Main" +#~ msgstr "Ana" + +#~ msgid "Main menu style" +#~ msgstr "Ana menü stili" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Radar kipinde mini harita, Yakınlaştırma x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Radar kipinde mini harita, Yakınlaştırma x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Yüzey kipinde mini harita, Yakınlaştırma x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Yüzey kipinde mini harita, Yakınlaştırma x4" + +#~ msgid "Name/Password" +#~ msgstr "Ad/Şifre" + +#~ msgid "No" +#~ msgstr "Hayır" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normal eşleme örnekleme" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normal eşleme gücü" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Paralaks oklüzyon yineleme sayısı." + #~ msgid "Ok" #~ msgstr "Tamam" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Paralaks oklüzyon efektinin genel sapması, genellikle boyut/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Paralaks oklüzyon efektinin genel boyutu." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Paralaks Oklüzyon" + +#~ msgid "Parallax occlusion" +#~ msgstr "Paralaks oklüzyon" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Paralaks oklüzyon sapması" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Paralaks oklüzyon yinelemesi" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Paralaks oklüzyon kipi" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Paralaks oklüzyon boyutu" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Paralaks oklüzyon gücü" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueTypeFont veya bitmap konumu." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Ekran yakalamaların kaydedileceği konum." + +#~ msgid "Projecting dungeons" +#~ msgstr "İzdüşüm zindanlar" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Tek oyunculu dünyayı sıfırla" + +#~ msgid "Select Package File:" +#~ msgstr "Paket Dosyası Seç:" + +#~ msgid "Shadow limit" +#~ msgstr "Gölge sınırı" + +#~ msgid "Start Singleplayer" +#~ msgstr "Tek oyunculu başlat" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Üretilen normal eşlemelerin gücü." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Işık eğrisi orta-artırmanın kuvveti." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Belirli diller için bu yazı tipi kullanılacak." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Sinematik Aç/Kapa" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Yüzenkara dağların, orta noktanın altındaki ve üstündeki, tipik maksimum " +#~ "yüksekliği." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Tepe yüksekliğinin ve göl derinliğinin yüzenkara düz arazide değişimi." + +#~ msgid "View" +#~ msgstr "Görüntüle" + +#~ msgid "Waving Water" +#~ msgstr "Dalgalanan Su" + +#~ msgid "Waving water" +#~ msgstr "Dalgalanan su" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Zindanların bazen araziden yansıyıp yansımayacağı." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Büyük mağaralardaki lavın üst sınırının Y'si." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Yüzenkara orta noktasının ve göl yüzeyinin Y-seviyesi." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Yüzenkara gölgelerinin uzanacağı Y-seviyesi." + +#~ msgid "Yes" +#~ msgstr "Evet" diff --git a/po/uk/minetest.po b/po/uk/minetest.po index 9b7f2f2d5..043cb2fdd 100644 --- a/po/uk/minetest.po +++ b/po/uk/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2020-10-25 19:26+0000\n" "Last-Translator: Nick Naumenko \n" "Language-Team: Ukrainian \n" "Language-Team: Vietnamese \n" "Language-Team: Chinese (Simplified) 0." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "定义 floatland 平滑地形的区域。\n" -#~ "当噪音0时, 平滑的 floatlands 发生。" - -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "地图生成器平面湖坡度" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "控制隧道宽度,较小的值创建更宽的隧道。" - -#, fuzzy -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "控制 floatland 地形的密度。\n" -#~ "是添加到 \"np_mountain\" 噪声值的偏移量。" +#~ "0 = 利用梯度信息进行视差遮蔽 (较快).\n" +#~ "1 = 浮雕映射 (较慢, 但准确)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7187,20 +7176,237 @@ msgstr "cURL 超时" #~ "调整亮度表的伽玛编码。较高的数值会较亮。\n" #~ "这个设定是给客户端使用的,会被服务器忽略。" -#~ msgid "Path to save screenshots at." -#~ msgstr "屏幕截图保存路径。" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "视差遮蔽强度" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "磁盘上的生产队列限制" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "正在下载和安装 $1,请稍等..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "你确定要重置你的单人世界吗?" #~ msgid "Back" #~ msgstr "后退" +#~ msgid "Bump Mapping" +#~ msgstr "凹凸贴图" + +#~ msgid "Bumpmapping" +#~ msgstr "凹凸贴图" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "主菜单UI的变化:\n" +#~ "- 完整 多个单人世界,子游戏选择,材质包选择器等。\n" +#~ "- 简单:单个单人世界,无子游戏材质包选择器。可能\n" +#~ "需要用于小屏幕。" + +#~ msgid "Config mods" +#~ msgstr "配置 mod" + +#~ msgid "Configure" +#~ msgstr "配置" + +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "控制 floatland 地形的密度。\n" +#~ "是添加到 \"np_mountain\" 噪声值的偏移量。" + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "控制隧道宽度,较小的值创建更宽的隧道。" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "准星颜色(红,绿,蓝)。" + +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "地图生成器平面湖坡度" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "定义 floatland 平滑地形的区域。\n" +#~ "当噪音0时, 平滑的 floatlands 发生。" + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "定义材质采样步骤。\n" +#~ "数值越高常态贴图越平滑。" + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "正在下载和安装 $1,请稍等..." + +#~ msgid "Enable VBO" +#~ msgstr "启用 VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "启用材质的凹凸贴图效果。需要材质包支持法线贴图,\n" +#~ "否则将自动生成法线。\n" +#~ "需要启用着色器。" + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "启用电影基调映射" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "启用即时法线贴图生成(浮雕效果)。\n" +#~ "需要启用凹凸贴图。" + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "启用视差遮蔽贴图。\n" +#~ "需要启用着色器。" + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "实验性选项,设为大于 0 的数字时可能导致\n" +#~ "块之间出现可见空间。" + +#~ msgid "FPS in pause menu" +#~ msgstr "暂停菜单 FPS" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "字体阴影不透明度(0-255)。" + +#~ msgid "Gamma" +#~ msgstr "伽马" + +#~ msgid "Generate Normal Maps" +#~ msgstr "生成法线贴图" + +#~ msgid "Generate normalmaps" +#~ msgstr "生成发现贴图" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 支持。" + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "巨大洞穴深度" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "磁盘上的生产队列限制" + +#~ msgid "Main" +#~ msgstr "主菜单" + +#~ msgid "Main menu style" +#~ msgstr "主菜单样式" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "雷达小地图,放大至两倍" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "雷达小地图, 放大至四倍" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "地表模式小地图, 放大至两倍" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "地表模式小地图, 放大至四倍" + +#~ msgid "Name/Password" +#~ msgstr "用户名/密码" + +#~ msgid "No" +#~ msgstr "否" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法线贴图采样" + +#~ msgid "Normalmaps strength" +#~ msgstr "法线贴图强度" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "视差遮蔽迭代数。" + #~ msgid "Ok" #~ msgstr "确定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "视差遮蔽效果的整体斜纹,通常为比例/2。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "视差遮蔽效果的总体比例。" + +#~ msgid "Parallax Occlusion" +#~ msgstr "视差遮蔽" + +#~ msgid "Parallax occlusion" +#~ msgstr "视差遮蔽" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "视差遮蔽偏移" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "视差遮蔽迭代" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "视差遮蔽模式" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "视差遮蔽比例" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "视差遮蔽强度" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueType 字体或位图的路径。" + +#~ msgid "Path to save screenshots at." +#~ msgstr "屏幕截图保存路径。" + +#~ msgid "Reset singleplayer world" +#~ msgstr "重置单人世界" + +#~ msgid "Select Package File:" +#~ msgstr "选择包文件:" + +#, fuzzy +#~ msgid "Shadow limit" +#~ msgstr "地图块限制" + +#~ msgid "Start Singleplayer" +#~ msgstr "单人游戏" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生成的一般地图强度。" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "用于特定语言的字体。" + +#~ msgid "Toggle Cinematic" +#~ msgstr "切换电影模式" + +#~ msgid "View" +#~ msgstr "视野" + +#~ msgid "Waving Water" +#~ msgstr "流动的水面" + +#~ msgid "Waving water" +#~ msgstr "摇动水" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大型随机洞穴的Y轴最大值。" + +#~ msgid "Yes" +#~ msgstr "是" diff --git a/po/zh_TW/minetest.po b/po/zh_TW/minetest.po index dc2868bff..598777a62 100644 --- a/po/zh_TW/minetest.po +++ b/po/zh_TW/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Chinese (Traditional) (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-01-24 16:19+0000\n" "Last-Translator: AISS \n" "Language-Team: Chinese (Traditional) 0." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "定義浮地的平整地形區。\n" -#~ "平整的浮地會在噪音 > 0 時產生。" - -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "湖泊坡度" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "控制隧道的寬度,較小的值會創造出較寬的隧道。" - -#, fuzzy -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "控制山地的浮地密度。\n" -#~ "是加入到 'np_mountain' 噪音值的補償。" +#~ "0 = 包含斜率資訊的視差遮蔽(較快)。\n" +#~ "1 = 替換貼圖(較慢,較準確)。" #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7379,20 +7348,256 @@ msgstr "cURL 逾時" #~ "調整亮度表的伽瑪編碼。較高的數值會較亮。\n" #~ "這個設定是給客戶端使用的,會被伺服器忽略。" -#~ msgid "Path to save screenshots at." -#~ msgstr "儲存螢幕截圖的路徑。" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "視差遮蔽強度" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "在磁碟上出現佇列的限制" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "正在下載並安裝 $1,請稍候……" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "您確定要重設您的單人遊戲世界嗎?" #~ msgid "Back" #~ msgstr "返回" +#~ msgid "Bump Mapping" +#~ msgstr "映射貼圖" + +#~ msgid "Bumpmapping" +#~ msgstr "映射貼圖" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "更改主菜單用戶界面:\n" +#~ "-完整:多個單人遊戲世界,遊戲選擇,紋理包選擇器等。\n" +#~ "-簡單:一個單人遊戲世界,沒有遊戲或紋理包選擇器。 也許\n" +#~ "對於較小的屏幕是必需的。" + +#~ msgid "Config mods" +#~ msgstr "設定 Mod" + +#~ msgid "Configure" +#~ msgstr "設定" + +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "控制山地的浮地密度。\n" +#~ "是加入到 'np_mountain' 噪音值的補償。" + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "控制隧道的寬度,較小的值會創造出較寬的隧道。" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "十字色彩 (R,G,B)。" + +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "湖泊坡度" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "定義浮地的平整地形區。\n" +#~ "平整的浮地會在噪音 > 0 時產生。" + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "定義材質的採樣步驟。\n" +#~ "較高的值會有較平滑的一般地圖。" + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "正在下載並安裝 $1,請稍候……" + +#~ msgid "Enable VBO" +#~ msgstr "啟用 VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "為材質啟用貼圖轉儲。普通地圖需要材質包的支援\n" +#~ "或是自動生成。\n" +#~ "必須啟用著色器。" + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "啟用電影色調映射" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "啟用忙碌的一般地圖生成(浮雕效果)。\n" +#~ "必須啟用貼圖轉儲。" + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "啟用視差遮蔽貼圖。\n" +#~ "必須啟用著色器。" + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "實驗性選項,當設定到大於零的值時\n" +#~ "也許會造成在方塊間有視覺空隙。" + +#~ msgid "FPS in pause menu" +#~ msgstr "在暫停選單中的 FPS" + +#~ msgid "Floatland base height noise" +#~ msgstr "浮地基礎高度噪音" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "字型陰影 alpha(不透明度,介於 0 到 255)。" + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "產生一般地圖" + +#~ msgid "Generate normalmaps" +#~ msgstr "生成一般地圖" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 支援。" + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "大型洞穴深度" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "在磁碟上出現佇列的限制" + +#~ msgid "Main" +#~ msgstr "主要" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "主選單指令稿" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "雷達模式的迷你地圖,放大 2 倍" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "雷達模式的迷你地圖,放大 4 倍" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "表面模式的迷你地圖,放大 2 倍" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "表面模式的迷你地圖,放大 4 倍" + +#~ msgid "Name/Password" +#~ msgstr "名稱/密碼" + +#~ msgid "No" +#~ msgstr "否" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法線貼圖採樣" + +#~ msgid "Normalmaps strength" +#~ msgstr "法線貼圖強度" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "視差遮蔽迭代次數。" + #~ msgid "Ok" #~ msgstr "確定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "視差遮蔽效果的總偏差,通常是規模/2。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "視差遮蔽效果的總規模。" + +#~ msgid "Parallax Occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "視差遮蔽偏差" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "視差遮蔽迭代" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "視差遮蔽模式" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "視差遮蔽係數" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "視差遮蔽強度" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueType 字型或點陣字的路徑。" + +#~ msgid "Path to save screenshots at." +#~ msgstr "儲存螢幕截圖的路徑。" + +#~ msgid "Reset singleplayer world" +#~ msgstr "重設單人遊戲世界" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "選取 Mod 檔案:" + +#~ msgid "Shadow limit" +#~ msgstr "陰影限制" + +#~ msgid "Start Singleplayer" +#~ msgstr "開始單人遊戲" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生成之一般地圖的強度。" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "這個字型將會被用於特定的語言。" + +#~ msgid "Toggle Cinematic" +#~ msgstr "切換過場動畫" + +#, fuzzy +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "浮地山區域的典型最大高度,高於與低於中點。" + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "在平整浮地地形的山丘高度與湖泊深度變化。" + +#~ msgid "View" +#~ msgstr "查看" + +#~ msgid "Waving Water" +#~ msgstr "波動的水" + +#~ msgid "Waving water" +#~ msgstr "波動的水" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大型偽隨機洞穴的 Y 上限。" + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "浮地中點與湖表面的 Y 高度。" + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "浮地陰影擴展的 Y 高度。" + +#~ msgid "Yes" +#~ msgstr "是" From 6e0e0324a48130376ab3c9fef03b84ee25608242 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 31 Jan 2021 18:49:51 +0000 Subject: [PATCH 490/624] Fix minetest.dig_node returning true when node isn't diggable (#10890) --- builtin/game/item.lua | 6 ++++-- doc/lua_api.txt | 2 ++ src/script/cpp_api/s_node.cpp | 11 ++++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/builtin/game/item.lua b/builtin/game/item.lua index 63f8d50e5..881aff52e 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -557,7 +557,7 @@ function core.node_dig(pos, node, digger) log("info", diggername .. " tried to dig " .. node.name .. " which is not diggable " .. core.pos_to_string(pos)) - return + return false end if core.is_protected(pos, diggername) then @@ -566,7 +566,7 @@ function core.node_dig(pos, node, digger) .. " at protected position " .. core.pos_to_string(pos)) core.record_protection_violation(pos, diggername) - return + return false end log('action', diggername .. " digs " @@ -649,6 +649,8 @@ function core.node_dig(pos, node, digger) local node_copy = {name=node.name, param1=node.param1, param2=node.param2} callback(pos_copy, node_copy, digger) end + + return true end function core.itemstring_with_palette(item, palette_index) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 8156f785a..df9e3f8b0 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -7628,6 +7628,8 @@ Used by `minetest.register_node`. on_dig = function(pos, node, digger), -- default: minetest.node_dig -- By default checks privileges, wears out tool and removes node. + -- return true if the node was dug successfully, false otherwise. + -- Deprecated: returning nil is the same as returning true. on_timer = function(pos, elapsed), -- default: nil diff --git a/src/script/cpp_api/s_node.cpp b/src/script/cpp_api/s_node.cpp index 269ebacb2..f23fbfbde 100644 --- a/src/script/cpp_api/s_node.cpp +++ b/src/script/cpp_api/s_node.cpp @@ -141,9 +141,14 @@ bool ScriptApiNode::node_on_dig(v3s16 p, MapNode node, push_v3s16(L, p); pushnode(L, node, ndef); objectrefGetOrCreate(L, digger); - PCALL_RES(lua_pcall(L, 3, 0, error_handler)); - lua_pop(L, 1); // Pop error handler - return true; + PCALL_RES(lua_pcall(L, 3, 1, error_handler)); + + // nil is treated as true for backwards compat + bool result = lua_isnil(L, -1) || lua_toboolean(L, -1); + + lua_pop(L, 2); // Pop error handler and result + + return result; } void ScriptApiNode::node_on_construct(v3s16 p, MapNode node) From 112a6adb10d3a5a2e55012a36580607d12ce9758 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 31 Jan 2021 20:36:47 +0100 Subject: [PATCH 491/624] Cache client IP in RemoteClient so it can always be retrieved (#10887) specifically: after the peer has already disappeared --- src/clientiface.cpp | 3 - src/clientiface.h | 15 +++-- src/network/serverpackethandler.cpp | 11 +-- src/script/lua_api/l_server.cpp | 101 +++++++++++----------------- src/server.cpp | 36 ++++------ src/server.h | 15 ++++- 6 files changed, 83 insertions(+), 98 deletions(-) diff --git a/src/clientiface.cpp b/src/clientiface.cpp index 01852c5d1..797afd3c1 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -452,9 +452,6 @@ void RemoteClient::notifyEvent(ClientStateEvent event) case CSE_Hello: m_state = CS_HelloSent; break; - case CSE_InitLegacy: - m_state = CS_AwaitingInit2; - break; case CSE_Disconnect: m_state = CS_Disconnecting; break; diff --git a/src/clientiface.h b/src/clientiface.h index eabffb0b6..cc5292b71 100644 --- a/src/clientiface.h +++ b/src/clientiface.h @@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "serialization.h" // for SER_FMT_VER_INVALID #include "network/networkpacket.h" #include "network/networkprotocol.h" +#include "network/address.h" #include "porting.h" #include @@ -188,7 +189,6 @@ enum ClientStateEvent { CSE_Hello, CSE_AuthAccept, - CSE_InitLegacy, CSE_GotInit2, CSE_SetDenied, CSE_SetDefinitionsSent, @@ -338,17 +338,24 @@ public: u8 getMajor() const { return m_version_major; } u8 getMinor() const { return m_version_minor; } u8 getPatch() const { return m_version_patch; } - const std::string &getFull() const { return m_full_version; } + const std::string &getFullVer() const { return m_full_version; } void setLangCode(const std::string &code) { m_lang_code = code; } const std::string &getLangCode() const { return m_lang_code; } + + void setCachedAddress(const Address &addr) { m_addr = addr; } + const Address &getAddress() const { return m_addr; } + private: // Version is stored in here after INIT before INIT2 u8 m_pending_serialization_version = SER_FMT_VER_INVALID; /* current state of client */ ClientState m_state = CS_Created; - + + // Cached here so retrieval doesn't have to go to connection API + Address m_addr; + // Client sent language code std::string m_lang_code; @@ -412,7 +419,7 @@ private: /* client information - */ + */ u8 m_version_major = 0; u8 m_version_minor = 0; u8 m_version_patch = 0; diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index c636d01e1..882cf71c1 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -56,12 +56,12 @@ void Server::handleCommand_Init(NetworkPacket* pkt) session_t peer_id = pkt->getPeerId(); RemoteClient *client = getClient(peer_id, CS_Created); + Address addr; std::string addr_s; try { - Address address = getPeerAddress(peer_id); - addr_s = address.serializeString(); - } - catch (con::PeerNotFoundException &e) { + addr = m_con->GetPeerAddress(peer_id); + addr_s = addr.serializeString(); + } catch (con::PeerNotFoundException &e) { /* * no peer for this packet found * most common reason is peer timeout, e.g. peer didn't @@ -73,13 +73,14 @@ void Server::handleCommand_Init(NetworkPacket* pkt) return; } - // If net_proto_version is set, this client has already been handled if (client->getState() > CS_Created) { verbosestream << "Server: Ignoring multiple TOSERVER_INITs from " << addr_s << " (peer_id=" << peer_id << ")" << std::endl; return; } + client->setCachedAddress(addr); + verbosestream << "Server: Got TOSERVER_INIT from " << addr_s << " (peer_id=" << peer_id << ")" << std::endl; diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp index 6f934bb9d..0ae699c9f 100644 --- a/src/script/lua_api/l_server.cpp +++ b/src/script/lua_api/l_server.cpp @@ -116,24 +116,18 @@ int ModApiServer::l_get_player_privs(lua_State *L) int ModApiServer::l_get_player_ip(lua_State *L) { NO_MAP_LOCK_REQUIRED; - const char * name = luaL_checkstring(L, 1); - RemotePlayer *player = dynamic_cast(getEnv(L))->getPlayer(name); - if(player == NULL) - { + + Server *server = getServer(L); + + const char *name = luaL_checkstring(L, 1); + RemotePlayer *player = server->getEnv().getPlayer(name); + if (!player) { lua_pushnil(L); // no such player return 1; } - try - { - Address addr = getServer(L)->getPeerAddress(player->getPeerId()); - std::string ip_str = addr.serializeString(); - lua_pushstring(L, ip_str.c_str()); - return 1; - } catch (const con::PeerNotFoundException &) { - dstream << FUNCTION_NAME << ": peer was not found" << std::endl; - lua_pushnil(L); // error - return 1; - } + + lua_pushstring(L, server->getPeerAddress(player->getPeerId()).serializeString().c_str()); + return 1; } // get_player_information(name) @@ -150,26 +144,18 @@ int ModApiServer::l_get_player_information(lua_State *L) return 1; } - Address addr; - try { - addr = server->getPeerAddress(player->getPeerId()); - } catch (const con::PeerNotFoundException &) { - dstream << FUNCTION_NAME << ": peer was not found" << std::endl; - lua_pushnil(L); // error - return 1; - } - - float min_rtt, max_rtt, avg_rtt, min_jitter, max_jitter, avg_jitter; - ClientState state; - u32 uptime; - u16 prot_vers; - u8 ser_vers, major, minor, patch; - std::string vers_string, lang_code; + /* + Be careful not to introduce a depdendency on the connection to + the peer here. This function is >>REQUIRED<< to still be able to return + values even when the peer unexpectedly disappears. + Hence all the ConInfo values here are optional. + */ auto getConInfo = [&] (con::rtt_stat_type type, float *value) -> bool { return server->getClientConInfo(player->getPeerId(), type, value); }; + float min_rtt, max_rtt, avg_rtt, min_jitter, max_jitter, avg_jitter; bool have_con_info = getConInfo(con::MIN_RTT, &min_rtt) && getConInfo(con::MAX_RTT, &max_rtt) && @@ -178,11 +164,9 @@ int ModApiServer::l_get_player_information(lua_State *L) getConInfo(con::MAX_JITTER, &max_jitter) && getConInfo(con::AVG_JITTER, &avg_jitter); - bool r = server->getClientInfo(player->getPeerId(), &state, &uptime, - &ser_vers, &prot_vers, &major, &minor, &patch, &vers_string, - &lang_code); - if (!r) { - dstream << FUNCTION_NAME << ": peer was not found" << std::endl; + ClientInfo info; + if (!server->getClientInfo(player->getPeerId(), info)) { + warningstream << FUNCTION_NAME << ": no client info?!" << std::endl; lua_pushnil(L); // error return 1; } @@ -191,13 +175,13 @@ int ModApiServer::l_get_player_information(lua_State *L) int table = lua_gettop(L); lua_pushstring(L,"address"); - lua_pushstring(L, addr.serializeString().c_str()); + lua_pushstring(L, info.addr.serializeString().c_str()); lua_settable(L, table); lua_pushstring(L,"ip_version"); - if (addr.getFamily() == AF_INET) { + if (info.addr.getFamily() == AF_INET) { lua_pushnumber(L, 4); - } else if (addr.getFamily() == AF_INET6) { + } else if (info.addr.getFamily() == AF_INET6) { lua_pushnumber(L, 6); } else { lua_pushnumber(L, 0); @@ -231,11 +215,11 @@ int ModApiServer::l_get_player_information(lua_State *L) } lua_pushstring(L,"connection_uptime"); - lua_pushnumber(L, uptime); + lua_pushnumber(L, info.uptime); lua_settable(L, table); lua_pushstring(L,"protocol_version"); - lua_pushnumber(L, prot_vers); + lua_pushnumber(L, info.prot_vers); lua_settable(L, table); lua_pushstring(L, "formspec_version"); @@ -243,32 +227,32 @@ int ModApiServer::l_get_player_information(lua_State *L) lua_settable(L, table); lua_pushstring(L, "lang_code"); - lua_pushstring(L, lang_code.c_str()); + lua_pushstring(L, info.lang_code.c_str()); lua_settable(L, table); #ifndef NDEBUG lua_pushstring(L,"serialization_version"); - lua_pushnumber(L, ser_vers); + lua_pushnumber(L, info.ser_vers); lua_settable(L, table); lua_pushstring(L,"major"); - lua_pushnumber(L, major); + lua_pushnumber(L, info.major); lua_settable(L, table); lua_pushstring(L,"minor"); - lua_pushnumber(L, minor); + lua_pushnumber(L, info.minor); lua_settable(L, table); lua_pushstring(L,"patch"); - lua_pushnumber(L, patch); + lua_pushnumber(L, info.patch); lua_settable(L, table); lua_pushstring(L,"version_string"); - lua_pushstring(L, vers_string.c_str()); + lua_pushstring(L, info.vers_string.c_str()); lua_settable(L, table); lua_pushstring(L,"state"); - lua_pushstring(L,ClientInterface::state2Name(state).c_str()); + lua_pushstring(L, ClientInterface::state2Name(info.state).c_str()); lua_settable(L, table); #endif @@ -296,23 +280,18 @@ int ModApiServer::l_get_ban_description(lua_State *L) int ModApiServer::l_ban_player(lua_State *L) { NO_MAP_LOCK_REQUIRED; - const char * name = luaL_checkstring(L, 1); - RemotePlayer *player = dynamic_cast(getEnv(L))->getPlayer(name); - if (player == NULL) { + + Server *server = getServer(L); + + const char *name = luaL_checkstring(L, 1); + RemotePlayer *player = server->getEnv().getPlayer(name); + if (!player) { lua_pushboolean(L, false); // no such player return 1; } - try - { - Address addr = getServer(L)->getPeerAddress( - dynamic_cast(getEnv(L))->getPlayer(name)->getPeerId()); - std::string ip_str = addr.serializeString(); - getServer(L)->setIpBanned(ip_str, name); - } catch(const con::PeerNotFoundException &) { - dstream << FUNCTION_NAME << ": peer was not found" << std::endl; - lua_pushboolean(L, false); // error - return 1; - } + + std::string ip_str = server->getPeerAddress(player->getPeerId()).serializeString(); + server->setIpBanned(ip_str, name); lua_pushboolean(L, true); return 1; } diff --git a/src/server.cpp b/src/server.cpp index aba7b6401..76a817701 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1242,20 +1242,8 @@ bool Server::getClientConInfo(session_t peer_id, con::rtt_stat_type type, float* return *retval != -1; } -bool Server::getClientInfo( - session_t peer_id, - ClientState* state, - u32* uptime, - u8* ser_vers, - u16* prot_vers, - u8* major, - u8* minor, - u8* patch, - std::string* vers_string, - std::string* lang_code - ) +bool Server::getClientInfo(session_t peer_id, ClientInfo &ret) { - *state = m_clients.getClientState(peer_id); m_clients.lock(); RemoteClient* client = m_clients.lockedGetClientNoEx(peer_id, CS_Invalid); @@ -1264,15 +1252,18 @@ bool Server::getClientInfo( return false; } - *uptime = client->uptime(); - *ser_vers = client->serialization_version; - *prot_vers = client->net_proto_version; + ret.state = client->getState(); + ret.addr = client->getAddress(); + ret.uptime = client->uptime(); + ret.ser_vers = client->serialization_version; + ret.prot_vers = client->net_proto_version; - *major = client->getMajor(); - *minor = client->getMinor(); - *patch = client->getPatch(); - *vers_string = client->getFull(); - *lang_code = client->getLangCode(); + ret.major = client->getMajor(); + ret.minor = client->getMinor(); + ret.patch = client->getPatch(); + ret.vers_string = client->getFullVer(); + + ret.lang_code = client->getLangCode(); m_clients.unlock(); @@ -3339,7 +3330,8 @@ void Server::hudSetHotbarSelectedImage(RemotePlayer *player, const std::string & Address Server::getPeerAddress(session_t peer_id) { - return m_con->GetPeerAddress(peer_id); + // Note that this is only set after Init was received in Server::handleCommand_Init + return getClient(peer_id, CS_Invalid)->getAddress(); } void Server::setLocalPlayerAnimations(RemotePlayer *player, diff --git a/src/server.h b/src/server.h index 1dd181794..7071d2d07 100644 --- a/src/server.h +++ b/src/server.h @@ -126,6 +126,17 @@ struct MinimapMode { u16 scale = 1; }; +// structure for everything getClientInfo returns, for convenience +struct ClientInfo { + ClientState state; + Address addr; + u32 uptime; + u8 ser_vers; + u16 prot_vers; + u8 major, minor, patch; + std::string vers_string, lang_code; +}; + class Server : public con::PeerHandler, public MapEventReceiver, public IGameDef { @@ -326,9 +337,7 @@ public: void DenyAccess_Legacy(session_t peer_id, const std::wstring &reason); void DisconnectPeer(session_t peer_id); bool getClientConInfo(session_t peer_id, con::rtt_stat_type type, float *retval); - bool getClientInfo(session_t peer_id, ClientState *state, u32 *uptime, - u8* ser_vers, u16* prot_vers, u8* major, u8* minor, u8* patch, - std::string* vers_string, std::string* lang_code); + bool getClientInfo(session_t peer_id, ClientInfo &ret); void printToConsoleOnly(const std::string &text); From fd1c1a755eaa2251c99680df3c72ca8886ca0a4e Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 30 Jan 2021 11:54:56 +0100 Subject: [PATCH 492/624] Readd Client::sendPlayerPos optimization (was part of 81c7f0a) This reverts commit b49dfa92ce3ef37b1b73698906c64191fb47e226. --- src/client/client.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/client/client.cpp b/src/client/client.cpp index 6577c287d..61888b913 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -1275,9 +1275,8 @@ void Client::sendPlayerPos() // Save bandwidth by only updating position when // player is not dead and something changed - // FIXME: This part causes breakages in mods like 3d_armor, and has been commented for now - // if (m_activeobjects_received && player->isDead()) - // return; + if (m_activeobjects_received && player->isDead()) + return; if ( player->last_position == player->getPosition() && From a01a02f7a1ec915c207632085cd5f24eab28da17 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 30 Jan 2021 12:41:27 +0100 Subject: [PATCH 493/624] Preserve immortal group for players when damage is disabled --- builtin/settingtypes.txt | 2 +- doc/lua_api.txt | 5 +++-- src/script/lua_api/l_object.cpp | 9 +++++++++ src/server.cpp | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 21118134e..8b6227b37 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -1085,7 +1085,7 @@ default_stack_max (Default stack size) int 99 # Enable players getting damage and dying. enable_damage (Damage) bool false -# Enable creative mode for new created maps. +# Enable creative mode for all players creative_mode (Creative) bool false # A chosen map seed for a new map, leave empty for random. diff --git a/doc/lua_api.txt b/doc/lua_api.txt index df9e3f8b0..18499e15a 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -1745,8 +1745,9 @@ to games. ### `ObjectRef` groups * `immortal`: Skips all damage and breath handling for an object. This group - will also hide the integrated HUD status bars for players, and is - automatically set to all players when damage is disabled on the server. + will also hide the integrated HUD status bars for players. It is + automatically set to all players when damage is disabled on the server and + cannot be reset (subject to change). * `punch_operable`: For entities; disables the regular damage mechanism for players punching it by hand or a non-tool item, so that it can do something else than take damage. diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index ba201a9d3..07aa3f7c9 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -355,6 +355,15 @@ int ObjectRef::l_set_armor_groups(lua_State *L) ItemGroupList groups; read_groups(L, 2, groups); + if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + if (!g_settings->getBool("enable_damage") && !itemgroup_get(groups, "immortal")) { + warningstream << "Mod tried to enable damage for a player, but it's " + "disabled globally. Ignoring." << std::endl; + infostream << script_get_backtrace(L) << std::endl; + groups["immortal"] = 1; + } + } + sao->setArmorGroups(groups); return 0; } diff --git a/src/server.cpp b/src/server.cpp index 76a817701..8a86dbd82 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1349,7 +1349,7 @@ void Server::SendPlayerHPOrDie(PlayerSAO *playersao, const PlayerHPChangeReason return; session_t peer_id = playersao->getPeerID(); - bool is_alive = playersao->getHP() > 0; + bool is_alive = !playersao->isDead(); if (is_alive) SendPlayerHP(peer_id); From 40ad9767531beb6cf2e8bd918c9c9ed5f2749320 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 30 Jan 2021 14:35:34 +0100 Subject: [PATCH 494/624] Revise dynamic_add_media API to better accomodate future changes --- builtin/game/misc.lua | 23 +++++++++++++++++++++++ doc/lua_api.txt | 22 ++++++++++++---------- src/script/lua_api/l_server.cpp | 21 ++++++++++++++++----- src/script/lua_api/l_server.h | 2 +- src/server.cpp | 20 +++++++++++++++----- src/server.h | 2 +- 6 files changed, 68 insertions(+), 22 deletions(-) diff --git a/builtin/game/misc.lua b/builtin/game/misc.lua index 96a0a2dda..b8c5e16a9 100644 --- a/builtin/game/misc.lua +++ b/builtin/game/misc.lua @@ -266,3 +266,26 @@ end function core.cancel_shutdown_requests() core.request_shutdown("", false, -1) end + + +-- Callback handling for dynamic_add_media + +local dynamic_add_media_raw = core.dynamic_add_media_raw +core.dynamic_add_media_raw = nil +function core.dynamic_add_media(filepath, callback) + local ret = dynamic_add_media_raw(filepath) + if ret == false then + return ret + end + if callback == nil then + core.log("deprecated", "Calling minetest.dynamic_add_media without ".. + "a callback is deprecated and will stop working in future versions.") + else + -- At the moment async loading is not actually implemented, so we + -- immediately call the callback ourselves + for _, name in ipairs(ret) do + callback(name) + end + end + return true +end diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 18499e15a..9c2a0f131 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -5446,20 +5446,22 @@ Server * Returns a code (0: successful, 1: no such player, 2: player is connected) * `minetest.remove_player_auth(name)`: remove player authentication data * Returns boolean indicating success (false if player nonexistant) -* `minetest.dynamic_add_media(filepath)` - * Adds the file at the given path to the media sent to clients by the server - on startup and also pushes this file to already connected clients. +* `minetest.dynamic_add_media(filepath, callback)` + * `filepath`: path to a media file on the filesystem + * `callback`: function with arguments `name`, where name is a player name + (previously there was no callback argument; omitting it is deprecated) + * Adds the file to the media sent to clients by the server on startup + and also pushes this file to already connected clients. The file must be a supported image, sound or model format. It must not be modified, deleted, moved or renamed after calling this function. The list of dynamically added media is not persisted. - * Returns boolean indicating success (duplicate files count as error) - * The media will be ready to use (in e.g. entity textures, sound_play) - immediately after calling this function. + * Returns false on error, true if the request was accepted + * The given callback will be called for every player as soon as the + media is available on the client. Old clients that lack support for this feature will not see the media - unless they reconnect to the server. - * Since media transferred this way does not use client caching or HTTP - transfers, dynamic media should not be used with big files or performance - will suffer. + unless they reconnect to the server. (callback won't be called) + * Since media transferred this way currently does not use client caching + or HTTP transfers, dynamic media should not be used with big files. Bans ---- diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp index 0ae699c9f..78cf4b403 100644 --- a/src/script/lua_api/l_server.cpp +++ b/src/script/lua_api/l_server.cpp @@ -452,19 +452,30 @@ int ModApiServer::l_sound_fade(lua_State *L) } // dynamic_add_media(filepath) -int ModApiServer::l_dynamic_add_media(lua_State *L) +int ModApiServer::l_dynamic_add_media_raw(lua_State *L) { NO_MAP_LOCK_REQUIRED; - // Reject adding media before the server has started up if (!getEnv(L)) throw LuaError("Dynamic media cannot be added before server has started up"); std::string filepath = readParam(L, 1); CHECK_SECURE_PATH(L, filepath.c_str(), false); - bool ok = getServer(L)->dynamicAddMedia(filepath); - lua_pushboolean(L, ok); + std::vector sent_to; + bool ok = getServer(L)->dynamicAddMedia(filepath, sent_to); + if (ok) { + // (see wrapper code in builtin) + lua_createtable(L, sent_to.size(), 0); + int i = 0; + for (RemotePlayer *player : sent_to) { + lua_pushstring(L, player->getName()); + lua_rawseti(L, -2, ++i); + } + } else { + lua_pushboolean(L, false); + } + return 1; } @@ -532,7 +543,7 @@ void ModApiServer::Initialize(lua_State *L, int top) API_FCT(sound_play); API_FCT(sound_stop); API_FCT(sound_fade); - API_FCT(dynamic_add_media); + API_FCT(dynamic_add_media_raw); API_FCT(get_player_information); API_FCT(get_player_privs); diff --git a/src/script/lua_api/l_server.h b/src/script/lua_api/l_server.h index 938bfa8ef..2df180b17 100644 --- a/src/script/lua_api/l_server.h +++ b/src/script/lua_api/l_server.h @@ -71,7 +71,7 @@ private: static int l_sound_fade(lua_State *L); // dynamic_add_media(filepath) - static int l_dynamic_add_media(lua_State *L); + static int l_dynamic_add_media_raw(lua_State *L); // get_player_privs(name, text) static int l_get_player_privs(lua_State *L); diff --git a/src/server.cpp b/src/server.cpp index 8a86dbd82..90496129e 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -3465,7 +3465,8 @@ void Server::deleteParticleSpawner(const std::string &playername, u32 id) SendDeleteParticleSpawner(peer_id, id); } -bool Server::dynamicAddMedia(const std::string &filepath) +bool Server::dynamicAddMedia(const std::string &filepath, + std::vector &sent_to) { std::string filename = fs::GetFilenameFromPath(filepath.c_str()); if (m_media.find(filename) != m_media.end()) { @@ -3485,9 +3486,17 @@ bool Server::dynamicAddMedia(const std::string &filepath) pkt << raw_hash << filename << (bool) true; pkt.putLongString(filedata); - auto client_ids = m_clients.getClientIDs(CS_DefinitionsSent); - for (session_t client_id : client_ids) { + m_clients.lock(); + for (auto &pair : m_clients.getClientList()) { + if (pair.second->getState() < CS_DefinitionsSent) + continue; + if (pair.second->net_proto_version < 39) + continue; + + if (auto player = m_env->getPlayer(pair.second->peer_id)) + sent_to.emplace_back(player); /* + FIXME: this is a very awful hack The network layer only guarantees ordered delivery inside a channel. Since the very next packet could be one that uses the media, we have to push the media over ALL channels to ensure it is processed before @@ -3496,9 +3505,10 @@ bool Server::dynamicAddMedia(const std::string &filepath) - channel 1 (HUD) - channel 0 (everything else: e.g. play_sound, object messages) */ - m_clients.send(client_id, 1, &pkt, true); - m_clients.send(client_id, 0, &pkt, true); + m_clients.send(pair.second->peer_id, 1, &pkt, true); + m_clients.send(pair.second->peer_id, 0, &pkt, true); } + m_clients.unlock(); return true; } diff --git a/src/server.h b/src/server.h index 7071d2d07..5c143a657 100644 --- a/src/server.h +++ b/src/server.h @@ -257,7 +257,7 @@ public: void deleteParticleSpawner(const std::string &playername, u32 id); - bool dynamicAddMedia(const std::string &filepath); + bool dynamicAddMedia(const std::string &filepath, std::vector &sent_to); ServerInventoryManager *getInventoryMgr() const { return m_inventory_mgr.get(); } void sendDetachedInventory(Inventory *inventory, const std::string &name, session_t peer_id); From 7ebd5da9cd4a227dcdc140a495f264a97277b3a3 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Tue, 2 Feb 2021 19:10:35 +0100 Subject: [PATCH 495/624] Server GotBlocks(): Lock clients to avoid multithreading issues --- src/network/serverpackethandler.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index 882cf71c1..4d79f375c 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -438,18 +438,20 @@ void Server::handleCommand_GotBlocks(NetworkPacket* pkt) u8 count; *pkt >> count; - RemoteClient *client = getClient(pkt->getPeerId()); - if ((s16)pkt->getSize() < 1 + (int)count * 6) { throw con::InvalidIncomingDataException ("GOTBLOCKS length is too short"); } + m_clients.lock(); + RemoteClient *client = m_clients.lockedGetClientNoEx(pkt->getPeerId()); + for (u16 i = 0; i < count; i++) { v3s16 p; *pkt >> p; client->GotBlock(p); } + m_clients.unlock(); } void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao, From 5e392cf34f8e062dd0533619921223656e32598a Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 29 Jan 2021 13:09:17 +0100 Subject: [PATCH 496/624] Refactor utf8_to_wide/wide_to_utf8 functions --- src/unittest/test_utilities.cpp | 15 +++++++-- src/util/string.cpp | 57 ++++++++++++++------------------- src/util/string.h | 6 ++-- 3 files changed, 40 insertions(+), 38 deletions(-) diff --git a/src/unittest/test_utilities.cpp b/src/unittest/test_utilities.cpp index 447b591e1..5559cdbf2 100644 --- a/src/unittest/test_utilities.cpp +++ b/src/unittest/test_utilities.cpp @@ -302,9 +302,18 @@ void TestUtilities::testAsciiPrintableHelper() void TestUtilities::testUTF8() { - UASSERT(wide_to_utf8(utf8_to_wide("")) == ""); - UASSERT(wide_to_utf8(utf8_to_wide("the shovel dug a crumbly node!")) - == "the shovel dug a crumbly node!"); + UASSERT(utf8_to_wide("¤") == L"¤"); + + UASSERT(wide_to_utf8(L"¤") == "¤"); + + UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("")), ""); + UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("the shovel dug a crumbly node!")), + "the shovel dug a crumbly node!"); + UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("-ä-")), + "-ä-"); + UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("-\xF0\xA0\x80\x8B-")), + "-\xF0\xA0\x80\x8B-"); + } void TestUtilities::testRemoveEscapes() diff --git a/src/util/string.cpp b/src/util/string.cpp index 3ac3b8cf0..7e6d6d3b3 100644 --- a/src/util/string.cpp +++ b/src/util/string.cpp @@ -50,8 +50,8 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color #ifndef _WIN32 -bool convert(const char *to, const char *from, char *outbuf, - size_t outbuf_size, char *inbuf, size_t inbuf_size) +static bool convert(const char *to, const char *from, char *outbuf, + size_t *outbuf_size, char *inbuf, size_t inbuf_size) { iconv_t cd = iconv_open(to, from); @@ -60,15 +60,14 @@ bool convert(const char *to, const char *from, char *outbuf, #else char *inbuf_ptr = inbuf; #endif - char *outbuf_ptr = outbuf; size_t *inbuf_left_ptr = &inbuf_size; - size_t *outbuf_left_ptr = &outbuf_size; + const size_t old_outbuf_size = *outbuf_size; size_t old_size = inbuf_size; while (inbuf_size > 0) { - iconv(cd, &inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_left_ptr); + iconv(cd, &inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_size); if (inbuf_size == old_size) { iconv_close(cd); return false; @@ -77,11 +76,12 @@ bool convert(const char *to, const char *from, char *outbuf, } iconv_close(cd); + *outbuf_size = old_outbuf_size - *outbuf_size; return true; } #ifdef __ANDROID__ -// Android need manual caring to support the full character set possible with wchar_t +// On Android iconv disagrees how big a wchar_t is for whatever reason const char *DEFAULT_ENCODING = "UTF-32LE"; #else const char *DEFAULT_ENCODING = "WCHAR_T"; @@ -89,58 +89,52 @@ const char *DEFAULT_ENCODING = "WCHAR_T"; std::wstring utf8_to_wide(const std::string &input) { - size_t inbuf_size = input.length() + 1; + const size_t inbuf_size = input.length(); // maximum possible size, every character is sizeof(wchar_t) bytes - size_t outbuf_size = (input.length() + 1) * sizeof(wchar_t); + size_t outbuf_size = input.length() * sizeof(wchar_t); - char *inbuf = new char[inbuf_size]; + char *inbuf = new char[inbuf_size]; // intentionally NOT null-terminated memcpy(inbuf, input.c_str(), inbuf_size); - char *outbuf = new char[outbuf_size]; - memset(outbuf, 0, outbuf_size); + std::wstring out; + out.resize(outbuf_size / sizeof(wchar_t)); #ifdef __ANDROID__ - // Android need manual caring to support the full character set possible with wchar_t SANITY_CHECK(sizeof(wchar_t) == 4); #endif - if (!convert(DEFAULT_ENCODING, "UTF-8", outbuf, outbuf_size, inbuf, inbuf_size)) { + char *outbuf = reinterpret_cast(&out[0]); + if (!convert(DEFAULT_ENCODING, "UTF-8", outbuf, &outbuf_size, inbuf, inbuf_size)) { infostream << "Couldn't convert UTF-8 string 0x" << hex_encode(input) << " into wstring" << std::endl; delete[] inbuf; - delete[] outbuf; return L""; } - std::wstring out((wchar_t *)outbuf); - delete[] inbuf; - delete[] outbuf; + out.resize(outbuf_size / sizeof(wchar_t)); return out; } std::string wide_to_utf8(const std::wstring &input) { - size_t inbuf_size = (input.length() + 1) * sizeof(wchar_t); - // maximum possible size: utf-8 encodes codepoints using 1 up to 6 bytes - size_t outbuf_size = (input.length() + 1) * 6; + const size_t inbuf_size = input.length() * sizeof(wchar_t); + // maximum possible size: utf-8 encodes codepoints using 1 up to 4 bytes + size_t outbuf_size = input.length() * 4; - char *inbuf = new char[inbuf_size]; + char *inbuf = new char[inbuf_size]; // intentionally NOT null-terminated memcpy(inbuf, input.c_str(), inbuf_size); - char *outbuf = new char[outbuf_size]; - memset(outbuf, 0, outbuf_size); + std::string out; + out.resize(outbuf_size); - if (!convert("UTF-8", DEFAULT_ENCODING, outbuf, outbuf_size, inbuf, inbuf_size)) { + if (!convert("UTF-8", DEFAULT_ENCODING, &out[0], &outbuf_size, inbuf, inbuf_size)) { infostream << "Couldn't convert wstring 0x" << hex_encode(inbuf, inbuf_size) << " into UTF-8 string" << std::endl; delete[] inbuf; - delete[] outbuf; - return ""; + return ""; } - std::string out(outbuf); - delete[] inbuf; - delete[] outbuf; + out.resize(outbuf_size); return out; } @@ -172,15 +166,12 @@ std::string wide_to_utf8(const std::wstring &input) #endif // _WIN32 -// You must free the returned string! -// The returned string is allocated using new wchar_t *utf8_to_wide_c(const char *str) { std::wstring ret = utf8_to_wide(std::string(str)); size_t len = ret.length(); wchar_t *ret_c = new wchar_t[len + 1]; - memset(ret_c, 0, (len + 1) * sizeof(wchar_t)); - memcpy(ret_c, ret.c_str(), len * sizeof(wchar_t)); + memcpy(ret_c, ret.c_str(), (len + 1) * sizeof(wchar_t)); return ret_c; } diff --git a/src/util/string.h b/src/util/string.h index 6fd11fadc..ec14e9a2d 100644 --- a/src/util/string.h +++ b/src/util/string.h @@ -64,11 +64,13 @@ struct FlagDesc { u32 flag; }; -// try not to convert between wide/utf8 encodings; this can result in data loss -// try to only convert between them when you need to input/output stuff via Irrlicht +// Try to avoid converting between wide and UTF-8 unless you need to +// input/output stuff via Irrlicht std::wstring utf8_to_wide(const std::string &input); std::string wide_to_utf8(const std::wstring &input); +// You must free the returned string! +// The returned string is allocated using new[] wchar_t *utf8_to_wide_c(const char *str); // NEVER use those two functions unless you have a VERY GOOD reason to From c834d2ab25694ef2d67dc24f85f304269d202c8e Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 29 Jan 2021 14:03:27 +0100 Subject: [PATCH 497/624] Drop wide/narrow conversion functions The only valid usecase for these is interfacing with OS APIs that want a locale/OS-specific multibyte encoding. But they weren't used for that anywhere, instead UTF-8 is pretty much assumed when it comes to that. Since these are only a potential source of bugs and do not fulfil their purpose at all, drop them entirely. --- src/chat.cpp | 4 +- src/client/client.cpp | 4 +- src/client/keycode.cpp | 3 +- src/gui/guiConfirmRegistration.cpp | 3 +- src/network/serverpackethandler.cpp | 8 ++-- src/script/lua_api/l_server.cpp | 2 +- src/server.cpp | 61 +++++++++++------------------ src/server.h | 8 ++-- src/unittest/test_utilities.cpp | 4 +- src/util/string.cpp | 59 +--------------------------- src/util/string.h | 28 ------------- 11 files changed, 41 insertions(+), 143 deletions(-) diff --git a/src/chat.cpp b/src/chat.cpp index 2f65e68b3..c9317a079 100644 --- a/src/chat.cpp +++ b/src/chat.cpp @@ -485,8 +485,8 @@ void ChatPrompt::nickCompletion(const std::list& names, bool backwa // find all names that start with the selected prefix std::vector completions; for (const std::string &name : names) { - if (str_starts_with(narrow_to_wide(name), prefix, true)) { - std::wstring completion = narrow_to_wide(name); + std::wstring completion = utf8_to_wide(name); + if (str_starts_with(completion, prefix, true)) { if (prefix_start == 0) completion += L": "; completions.push_back(completion); diff --git a/src/client/client.cpp b/src/client/client.cpp index 61888b913..ef4a3cdfc 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -1196,7 +1196,7 @@ void Client::sendChatMessage(const std::wstring &message) if (canSendChatMessage()) { u32 now = time(NULL); float time_passed = now - m_last_chat_message_sent; - m_last_chat_message_sent = time(NULL); + m_last_chat_message_sent = now; m_chat_message_allowance += time_passed * (CLIENT_CHAT_MESSAGE_LIMIT_PER_10S / 8.0f); if (m_chat_message_allowance > CLIENT_CHAT_MESSAGE_LIMIT_PER_10S) @@ -1832,7 +1832,7 @@ void Client::makeScreenshot() sstr << "Failed to save screenshot '" << filename << "'"; } pushToChatQueue(new ChatMessage(CHATMESSAGE_TYPE_SYSTEM, - narrow_to_wide(sstr.str()))); + utf8_to_wide(sstr.str()))); infostream << sstr.str() << std::endl; image->drop(); } diff --git a/src/client/keycode.cpp b/src/client/keycode.cpp index 6a0e9f569..ce5214f54 100644 --- a/src/client/keycode.cpp +++ b/src/client/keycode.cpp @@ -316,7 +316,8 @@ KeyPress::KeyPress(const char *name) int chars_read = mbtowc(&Char, name, 1); FATAL_ERROR_IF(chars_read != 1, "Unexpected multibyte character"); m_name = ""; - warningstream << "KeyPress: Unknown key '" << name << "', falling back to first char."; + warningstream << "KeyPress: Unknown key '" << name + << "', falling back to first char." << std::endl; } KeyPress::KeyPress(const irr::SEvent::SKeyInput &in, bool prefer_character) diff --git a/src/gui/guiConfirmRegistration.cpp b/src/gui/guiConfirmRegistration.cpp index 020a2796a..4a798c39b 100644 --- a/src/gui/guiConfirmRegistration.cpp +++ b/src/gui/guiConfirmRegistration.cpp @@ -192,8 +192,7 @@ void GUIConfirmRegistration::acceptInput() bool GUIConfirmRegistration::processInput() { - std::wstring m_password_ws = narrow_to_wide(m_password); - if (m_password_ws != m_pass_confirm) { + if (utf8_to_wide(m_password) != m_pass_confirm) { gui::IGUIElement *e = getElementFromId(ID_message); if (e) e->setVisible(true); diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index 4d79f375c..02af06abc 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -778,15 +778,13 @@ void Server::handleCommand_ChatMessage(NetworkPacket* pkt) return; } - // Get player name of this client std::string name = player->getName(); - std::wstring wname = narrow_to_wide(name); - std::wstring answer_to_sender = handleChat(name, wname, message, true, player); + std::wstring answer_to_sender = handleChat(name, message, true, player); if (!answer_to_sender.empty()) { // Send the answer to sender - SendChatMessage(peer_id, ChatMessage(CHATMESSAGE_TYPE_NORMAL, - answer_to_sender, wname)); + SendChatMessage(peer_id, ChatMessage(CHATMESSAGE_TYPE_SYSTEM, + answer_to_sender)); } } diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp index 78cf4b403..bf5292521 100644 --- a/src/script/lua_api/l_server.cpp +++ b/src/script/lua_api/l_server.cpp @@ -44,7 +44,7 @@ int ModApiServer::l_request_shutdown(lua_State *L) int ModApiServer::l_get_server_status(lua_State *L) { NO_MAP_LOCK_REQUIRED; - lua_pushstring(L, wide_to_narrow(getServer(L)->getStatusString()).c_str()); + lua_pushstring(L, getServer(L)->getStatusString().c_str()); return 1; } diff --git a/src/server.cpp b/src/server.cpp index 90496129e..907bc6d24 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2955,7 +2955,7 @@ void Server::handleChatInterfaceEvent(ChatEvent *evt) } } -std::wstring Server::handleChat(const std::string &name, const std::wstring &wname, +std::wstring Server::handleChat(const std::string &name, std::wstring wmessage, bool check_shout_priv, RemotePlayer *player) { // If something goes wrong, this player is to blame @@ -2993,7 +2993,7 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna auto message = trim(wide_to_utf8(wmessage)); if (message.find_first_of("\n\r") != std::wstring::npos) { - return L"New lines are not permitted in chat messages"; + return L"Newlines are not permitted in chat messages"; } // Run script hook, exit if script ate the chat message @@ -3014,10 +3014,10 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna the Cyrillic alphabet and some characters on older Android devices */ #ifdef __ANDROID__ - line += L"<" + wname + L"> " + wmessage; + line += L"<" + utf8_to_wide(name) + L"> " + wmessage; #else - line += narrow_to_wide(m_script->formatChatMessage(name, - wide_to_narrow(wmessage))); + line += utf8_to_wide(m_script->formatChatMessage(name, + wide_to_utf8(wmessage))); #endif } @@ -3030,35 +3030,23 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna /* Send the message to others */ - actionstream << "CHAT: " << wide_to_narrow(unescape_enriched(line)) << std::endl; + actionstream << "CHAT: " << wide_to_utf8(unescape_enriched(line)) << std::endl; + + ChatMessage chatmsg(line); std::vector clients = m_clients.getClientIDs(); + for (u16 cid : clients) + SendChatMessage(cid, chatmsg); - /* - Send the message back to the inital sender - if they are using protocol version >= 29 - */ - - session_t peer_id_to_avoid_sending = - (player ? player->getPeerId() : PEER_ID_INEXISTENT); - - if (player && player->protocol_version >= 29) - peer_id_to_avoid_sending = PEER_ID_INEXISTENT; - - for (u16 cid : clients) { - if (cid != peer_id_to_avoid_sending) - SendChatMessage(cid, ChatMessage(line)); - } return L""; } void Server::handleAdminChat(const ChatEventChat *evt) { std::string name = evt->nick; - std::wstring wname = utf8_to_wide(name); std::wstring wmessage = evt->evt_msg; - std::wstring answer = handleChat(name, wname, wmessage); + std::wstring answer = handleChat(name, wmessage); // If asked to send answer to sender if (!answer.empty()) { @@ -3095,46 +3083,43 @@ PlayerSAO *Server::getPlayerSAO(session_t peer_id) return player->getPlayerSAO(); } -std::wstring Server::getStatusString() +std::string Server::getStatusString() { - std::wostringstream os(std::ios_base::binary); - os << L"# Server: "; + std::ostringstream os(std::ios_base::binary); + os << "# Server: "; // Version - os << L"version=" << narrow_to_wide(g_version_string); + os << "version=" << g_version_string; // Uptime - os << L", uptime=" << m_uptime_counter->get(); + os << ", uptime=" << m_uptime_counter->get(); // Max lag estimate - os << L", max_lag=" << (m_env ? m_env->getMaxLagEstimate() : 0); + os << ", max_lag=" << (m_env ? m_env->getMaxLagEstimate() : 0); // Information about clients bool first = true; - os << L", clients={"; + os << ", clients={"; if (m_env) { std::vector clients = m_clients.getClientIDs(); for (session_t client_id : clients) { RemotePlayer *player = m_env->getPlayer(client_id); // Get name of player - std::wstring name = L"unknown"; - if (player) - name = narrow_to_wide(player->getName()); + const char *name = player ? player->getName() : ""; // Add name to information string if (!first) - os << L", "; + os << ", "; else first = false; - os << name; } } - os << L"}"; + os << "}"; if (m_env && !((ServerMap*)(&m_env->getMap()))->isSavingEnabled()) - os << std::endl << L"# Server: " << " WARNING: Map saving is disabled."; + os << std::endl << "# Server: " << " WARNING: Map saving is disabled."; if (!g_settings->get("motd").empty()) - os << std::endl << L"# Server: " << narrow_to_wide(g_settings->get("motd")); + os << std::endl << "# Server: " << g_settings->get("motd"); return os.str(); } diff --git a/src/server.h b/src/server.h index 5c143a657..0b4084aa9 100644 --- a/src/server.h +++ b/src/server.h @@ -219,7 +219,7 @@ public: void onMapEditEvent(const MapEditEvent &event); // Connection must be locked when called - std::wstring getStatusString(); + std::string getStatusString(); inline double getUptime() const { return m_uptime_counter->get(); } // read shutdown state @@ -495,10 +495,8 @@ private: void handleChatInterfaceEvent(ChatEvent *evt); // This returns the answer to the sender of wmessage, or "" if there is none - std::wstring handleChat(const std::string &name, const std::wstring &wname, - std::wstring wmessage_input, - bool check_shout_priv = false, - RemotePlayer *player = NULL); + std::wstring handleChat(const std::string &name, std::wstring wmessage_input, + bool check_shout_priv = false, RemotePlayer *player = nullptr); void handleAdminChat(const ChatEventChat *evt); // When called, connection mutex should be locked diff --git a/src/unittest/test_utilities.cpp b/src/unittest/test_utilities.cpp index 5559cdbf2..93ba3f844 100644 --- a/src/unittest/test_utilities.cpp +++ b/src/unittest/test_utilities.cpp @@ -247,8 +247,8 @@ void TestUtilities::testStartsWith() void TestUtilities::testStrEqual() { - UASSERT(str_equal(narrow_to_wide("abc"), narrow_to_wide("abc"))); - UASSERT(str_equal(narrow_to_wide("ABC"), narrow_to_wide("abc"), true)); + UASSERT(str_equal(utf8_to_wide("abc"), utf8_to_wide("abc"))); + UASSERT(str_equal(utf8_to_wide("ABC"), utf8_to_wide("abc"), true)); } diff --git a/src/util/string.cpp b/src/util/string.cpp index 7e6d6d3b3..611ad35cb 100644 --- a/src/util/string.cpp +++ b/src/util/string.cpp @@ -175,62 +175,6 @@ wchar_t *utf8_to_wide_c(const char *str) return ret_c; } -// You must free the returned string! -// The returned string is allocated using new -wchar_t *narrow_to_wide_c(const char *str) -{ - wchar_t *nstr = nullptr; -#if defined(_WIN32) - int nResult = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR) str, -1, 0, 0); - if (nResult == 0) { - errorstream<<"gettext: MultiByteToWideChar returned null"< wcs(wcl + 1); - size_t len = mbstowcs(*wcs, mbs.c_str(), wcl); - if (len == (size_t)(-1)) - return L""; - wcs[len] = 0; - return *wcs; -#endif -} - - -std::string wide_to_narrow(const std::wstring &wcs) -{ -#ifdef __ANDROID__ - return wide_to_utf8(wcs); -#else - size_t mbl = wcs.size() * 4; - SharedBuffer mbs(mbl+1); - size_t len = wcstombs(*mbs, wcs.c_str(), mbl); - if (len == (size_t)(-1)) - return "Character conversion failed!"; - - mbs[len] = 0; - return *mbs; -#endif -} - std::string urlencode(const std::string &str) { @@ -757,7 +701,8 @@ void translate_string(const std::wstring &s, Translations *translations, } else { // This is an escape sequence *inside* the template string to translate itself. // This should not happen, show an error message. - errorstream << "Ignoring escape sequence '" << wide_to_narrow(escape_sequence) << "' in translation" << std::endl; + errorstream << "Ignoring escape sequence '" + << wide_to_utf8(escape_sequence) << "' in translation" << std::endl; } } diff --git a/src/util/string.h b/src/util/string.h index ec14e9a2d..d4afcaec8 100644 --- a/src/util/string.h +++ b/src/util/string.h @@ -73,16 +73,6 @@ std::string wide_to_utf8(const std::wstring &input); // The returned string is allocated using new[] wchar_t *utf8_to_wide_c(const char *str); -// NEVER use those two functions unless you have a VERY GOOD reason to -// they just convert between wide and multibyte encoding -// multibyte encoding depends on current locale, this is no good, especially on Windows - -// You must free the returned string! -// The returned string is allocated using new -wchar_t *narrow_to_wide_c(const char *str); -std::wstring narrow_to_wide(const std::string &mbs); -std::string wide_to_narrow(const std::wstring &wcs); - std::string urlencode(const std::string &str); std::string urldecode(const std::string &str); u32 readFlagString(std::string str, const FlagDesc *flagdesc, u32 *flagmask); @@ -355,11 +345,6 @@ inline s32 mystoi(const std::string &str, s32 min, s32 max) return i; } - -// MSVC2010 includes it's own versions of these -//#if !defined(_MSC_VER) || _MSC_VER < 1600 - - /** * Returns a 32-bit value reprensented by the string \p str (decimal). * @see atoi(3) for further limitations @@ -369,17 +354,6 @@ inline s32 mystoi(const std::string &str) return atoi(str.c_str()); } - -/** - * Returns s 32-bit value represented by the wide string \p str (decimal). - * @see atoi(3) for further limitations - */ -inline s32 mystoi(const std::wstring &str) -{ - return mystoi(wide_to_narrow(str)); -} - - /** * Returns a float reprensented by the string \p str (decimal). * @see atof(3) @@ -389,8 +363,6 @@ inline float mystof(const std::string &str) return atof(str.c_str()); } -//#endif - #define stoi mystoi #define stof mystof From 674d67f312c815e7f10dc00705e352bc392fc2af Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 29 Jan 2021 15:24:07 +0100 Subject: [PATCH 498/624] Encode high codepoints as surrogates to safely transport wchar_t over network fixes #7643 --- src/network/networkpacket.cpp | 51 +++++++++++++++++++++++------ src/network/networkpacket.h | 2 +- src/network/serverpackethandler.cpp | 15 +-------- src/server.cpp | 3 +- src/unittest/test_connection.cpp | 35 ++++++++++++++++++++ 5 files changed, 80 insertions(+), 26 deletions(-) diff --git a/src/network/networkpacket.cpp b/src/network/networkpacket.cpp index 6d0abb12c..a71e26572 100644 --- a/src/network/networkpacket.cpp +++ b/src/network/networkpacket.cpp @@ -50,7 +50,7 @@ void NetworkPacket::checkReadOffset(u32 from_offset, u32 field_size) } } -void NetworkPacket::putRawPacket(u8 *data, u32 datasize, session_t peer_id) +void NetworkPacket::putRawPacket(const u8 *data, u32 datasize, session_t peer_id) { // If a m_command is already set, we are rewriting on same packet // This is not permitted @@ -145,6 +145,8 @@ void NetworkPacket::putLongString(const std::string &src) putRawString(src.c_str(), msgsize); } +static constexpr bool NEED_SURROGATE_CODING = sizeof(wchar_t) > 2; + NetworkPacket& NetworkPacket::operator>>(std::wstring& dst) { checkReadOffset(m_read_offset, 2); @@ -160,9 +162,16 @@ NetworkPacket& NetworkPacket::operator>>(std::wstring& dst) checkReadOffset(m_read_offset, strLen * 2); dst.reserve(strLen); - for(u16 i=0; i= 0xD800 && c < 0xDC00 && i+1 < strLen) { + i++; + m_read_offset += sizeof(u16); + + wchar_t c2 = readU16(&m_data[m_read_offset]); + c = 0x10000 + ( ((c & 0x3ff) << 10) | (c2 & 0x3ff) ); + } + dst.push_back(c); m_read_offset += sizeof(u16); } @@ -175,15 +184,37 @@ NetworkPacket& NetworkPacket::operator<<(const std::wstring &src) throw PacketError("String too long"); } - u16 msgsize = src.size(); + if (!NEED_SURROGATE_CODING || src.size() == 0) { + *this << static_cast(src.size()); + for (u16 i = 0; i < src.size(); i++) + *this << static_cast(src[i]); - *this << msgsize; - - // Write string - for (u16 i=0; i(0xfff0); + + for (u16 i = 0; i < src.size(); i++) { + wchar_t c = src[i]; + if (c > 0xffff) { + // Encode high code-points as surrogate pairs + u32 n = c - 0x10000; + *this << static_cast(0xD800 | (n >> 10)) + << static_cast(0xDC00 | (n & 0x3ff)); + written += 2; + } else { + *this << static_cast(c); + written++; + } + } + + if (written > WIDE_STRING_MAX_LEN) + throw PacketError("String too long"); + writeU16(&m_data[len_offset], written); + return *this; } diff --git a/src/network/networkpacket.h b/src/network/networkpacket.h index e77bfb744..c7ff03b8e 100644 --- a/src/network/networkpacket.h +++ b/src/network/networkpacket.h @@ -34,7 +34,7 @@ public: ~NetworkPacket(); - void putRawPacket(u8 *data, u32 datasize, session_t peer_id); + void putRawPacket(const u8 *data, u32 datasize, session_t peer_id); void clear(); // Getters diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index 02af06abc..270b8e01f 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -752,21 +752,8 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) void Server::handleCommand_ChatMessage(NetworkPacket* pkt) { - /* - u16 command - u16 length - wstring message - */ - u16 len; - *pkt >> len; - std::wstring message; - for (u16 i = 0; i < len; i++) { - u16 tmp_wchar; - *pkt >> tmp_wchar; - - message += (wchar_t)tmp_wchar; - } + *pkt >> message; session_t peer_id = pkt->getPeerId(); RemotePlayer *player = m_env->getPlayer(peer_id); diff --git a/src/server.cpp b/src/server.cpp index 907bc6d24..b815558fb 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1482,7 +1482,8 @@ void Server::SendChatMessage(session_t peer_id, const ChatMessage &message) NetworkPacket pkt(TOCLIENT_CHAT_MESSAGE, 0, peer_id); u8 version = 1; u8 type = message.type; - pkt << version << type << std::wstring(L"") << message.message << (u64)message.timestamp; + pkt << version << type << message.sender << message.message + << static_cast(message.timestamp); if (peer_id != PEER_ID_INEXISTENT) { RemotePlayer *player = m_env->getPlayer(peer_id); diff --git a/src/unittest/test_connection.cpp b/src/unittest/test_connection.cpp index c5e4085e1..c3aacc536 100644 --- a/src/unittest/test_connection.cpp +++ b/src/unittest/test_connection.cpp @@ -39,6 +39,7 @@ public: void runTests(IGameDef *gamedef); + void testNetworkPacketSerialize(); void testHelpers(); void testConnectSendReceive(); }; @@ -47,6 +48,7 @@ static TestConnection g_test_instance; void TestConnection::runTests(IGameDef *gamedef) { + TEST(testNetworkPacketSerialize); TEST(testHelpers); TEST(testConnectSendReceive); } @@ -78,6 +80,39 @@ struct Handler : public con::PeerHandler const char *name; }; +void TestConnection::testNetworkPacketSerialize() +{ + const static u8 expected[] = { + 0x00, 0x7b, + 0x00, 0x02, 0xd8, 0x42, 0xdf, 0x9a + }; + + if (sizeof(wchar_t) == 2) + warningstream << __func__ << " may fail on this platform." << std::endl; + + { + NetworkPacket pkt(123, 0); + + // serializing wide strings should do surrogate encoding, we test that here + pkt << std::wstring(L"\U00020b9a"); + + SharedBuffer buf = pkt.oldForgePacket(); + UASSERTEQ(int, buf.getSize(), sizeof(expected)); + UASSERT(!memcmp(expected, &buf[0], buf.getSize())); + } + + { + NetworkPacket pkt; + pkt.putRawPacket(expected, sizeof(expected), 0); + + // same for decoding + std::wstring pkt_s; + pkt >> pkt_s; + + UASSERT(pkt_s == L"\U00020b9a"); + } +} + void TestConnection::testHelpers() { // Some constants for testing From 9388c23e86e85e507c521b1ac01687f249fd1a0a Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 29 Jan 2021 16:08:49 +0100 Subject: [PATCH 499/624] Handle UTF-16 correctly in Wireshark dissector --- util/wireshark/minetest.lua | 33 ++------------------------------- 1 file changed, 2 insertions(+), 31 deletions(-) diff --git a/util/wireshark/minetest.lua b/util/wireshark/minetest.lua index dd0507c3e..d954c7597 100644 --- a/util/wireshark/minetest.lua +++ b/util/wireshark/minetest.lua @@ -299,7 +299,7 @@ do t:add(f_length, buffer(2,2)) local textlen = buffer(2,2):uint() if minetest_check_length(buffer, 4 + textlen*2, t) then - t:add(f_message, minetest_convert_utf16(buffer(4, textlen*2), "Converted chat message")) + t:add(f_message, buffer(4, textlen*2), buffer(4, textlen*2):ustring()) end end } @@ -1379,35 +1379,6 @@ function minetest_check_length(tvb, min_len, t) end end --- Takes a Tvb or TvbRange (i.e. part of a packet) that --- contains a UTF-16 string and returns a TvbRange containing --- string converted to ASCII. Any characters outside the range --- 0x20 to 0x7e are replaced by a question mark. --- Parameter: tvb: Tvb or TvbRange that contains the UTF-16 data --- Parameter: name: will be the name of the newly created Tvb. --- Returns: New TvbRange containing the ASCII string. --- TODO: Handle surrogates (should only produce one question mark) --- TODO: Remove this when Wireshark supports UTF-16 strings natively. -function minetest_convert_utf16(tvb, name) - local hex, pos, char - hex = "" - for pos = 0, tvb:len() - 2, 2 do - char = tvb(pos, 2):uint() - if (char >= 0x20 and char <= 0x7e) or char == 0x0a then - hex = hex .. string.format(" %02x", char) - else - hex = hex .. " 3F" - end - end - if hex == "" then - -- This is a hack to avoid a failed assertion in tvbuff.c - -- (function: ensure_contiguous_no_exception) - return ByteArray.new("00"):tvb(name):range(0,0) - else - return ByteArray.new(hex):tvb(name):range() - end -end - -- Decodes a variable-length string as ASCII text -- t_textlen, t_text should be the ProtoFields created by minetest_field_helper -- alternatively t_text can be a ProtoField.string and t_textlen can be nil @@ -1438,7 +1409,7 @@ function minetest_decode_helper_utf16(tvb, t, lentype, offset, f_textlen, f_text end local textlen = tvb(offset, n):uint() * 2 if minetest_check_length(tvb, offset + n + textlen, t) then - t:add(f_text, minetest_convert_utf16(tvb(offset + n, textlen), "UTF-16 text")) + t:add(f_text, tvb(offset + n, textlen), tvb(offset + n, textlen):ustring()) return offset + n + textlen end end From f227e40180b2035f33059749b14287478bab374a Mon Sep 17 00:00:00 2001 From: Vincent Robinson Date: Tue, 2 Feb 2021 11:55:13 -0800 Subject: [PATCH 500/624] Fix list spacing and size (again) (#10869) --- games/devtest/mods/testformspec/formspec.lua | 30 ++++++++++++---- src/gui/guiFormSpecMenu.cpp | 38 ++++++++++---------- src/gui/guiInventoryList.cpp | 2 -- 3 files changed, 42 insertions(+), 28 deletions(-) diff --git a/games/devtest/mods/testformspec/formspec.lua b/games/devtest/mods/testformspec/formspec.lua index 62578b740..bb178e1b3 100644 --- a/games/devtest/mods/testformspec/formspec.lua +++ b/games/devtest/mods/testformspec/formspec.lua @@ -35,11 +35,30 @@ local tabheaders_fs = [[ local inv_style_fs = [[ style_type[list;noclip=true] - list[current_player;main;-1.125,-1.125;2,2] + list[current_player;main;-0.75,0.75;2,2] + + real_coordinates[false] + list[current_player;main;1.5,0;3,2] + real_coordinates[true] + + real_coordinates[false] + style_type[list;size=1.1;spacing=0.1] + list[current_player;main;5,0;3,2] + real_coordinates[true] + + style_type[list;size=.001;spacing=0] + list[current_player;main;7,3.5;8,4] + + box[3,3.5;1,1;#000000] + box[5,3.5;1,1;#000000] + box[4,4.5;1,1;#000000] + box[3,5.5;1,1;#000000] + box[5,5.5;1,1;#000000] style_type[list;spacing=.25,.125;size=.75,.875] - list[current_player;main;3,.5;3,3] - style_type[list;spacing=0;size=1] - list[current_player;main;.5,4;8,4] + list[current_player;main;3,3.5;3,3] + + style_type[list;spacing=0;size=1.1] + list[current_player;main;.5,7;8,4] ]] local hypertext_basic = [[ @@ -322,8 +341,7 @@ local pages = { "container[0.5,1.5]" .. tabheaders_fs .. "container_end[]", -- Inv - "size[12,13]real_coordinates[true]" .. - "container[0.5,1.5]" .. inv_style_fs .. "container_end[]", + "size[12,13]real_coordinates[true]" .. inv_style_fs, -- Animation [[ diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index e4678bcd1..88ea77812 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include +#include #include #include #include @@ -500,37 +501,34 @@ void GUIFormSpecMenu::parseList(parserData *data, const std::string &element) auto style = getDefaultStyleForElement("list", spec.fname); v2f32 slot_scale = style.getVector2f(StyleSpec::SIZE, v2f32(0, 0)); - v2s32 slot_size( - slot_scale.X <= 0 ? imgsize.X : slot_scale.X * imgsize.X, - slot_scale.Y <= 0 ? imgsize.Y : slot_scale.Y * imgsize.Y + v2f32 slot_size( + slot_scale.X <= 0 ? imgsize.X : std::max(slot_scale.X * imgsize.X, 1), + slot_scale.Y <= 0 ? imgsize.Y : std::max(slot_scale.Y * imgsize.Y, 1) ); v2f32 slot_spacing = style.getVector2f(StyleSpec::SPACING, v2f32(-1, -1)); - if (data->real_coordinates) { - slot_spacing.X = slot_spacing.X < 0 ? imgsize.X * 0.25f : - imgsize.X * slot_spacing.X; - slot_spacing.Y = slot_spacing.Y < 0 ? imgsize.Y * 0.25f : - imgsize.Y * slot_spacing.Y; + v2f32 default_spacing = data->real_coordinates ? + v2f32(imgsize.X * 0.25f, imgsize.Y * 0.25f) : + v2f32(spacing.X - imgsize.X, spacing.Y - imgsize.Y); - slot_spacing.X += slot_size.X; - slot_spacing.Y += slot_size.Y; - } else { - slot_spacing.X = slot_spacing.X < 0 ? spacing.X : - slot_spacing.X * spacing.X; - slot_spacing.Y = slot_spacing.Y < 0 ? spacing.Y : - slot_spacing.Y * spacing.Y; - } + slot_spacing.X = slot_spacing.X < 0 ? default_spacing.X : + imgsize.X * slot_spacing.X; + slot_spacing.Y = slot_spacing.Y < 0 ? default_spacing.Y : + imgsize.Y * slot_spacing.Y; + + slot_spacing += slot_size; v2s32 pos = data->real_coordinates ? getRealCoordinateBasePos(v_pos) : getElementBasePos(&v_pos); core::rect rect = core::rect(pos.X, pos.Y, - pos.X + (geom.X - 1) * slot_spacing.X + imgsize.X, - pos.Y + (geom.Y - 1) * slot_spacing.Y + imgsize.Y); + pos.X + (geom.X - 1) * slot_spacing.X + slot_size.X, + pos.Y + (geom.Y - 1) * slot_spacing.Y + slot_size.Y); GUIInventoryList *e = new GUIInventoryList(Environment, data->current_parent, - spec.fid, rect, m_invmgr, loc, listname, geom, start_i, slot_size, - slot_spacing, this, data->inventorylist_options, m_font); + spec.fid, rect, m_invmgr, loc, listname, geom, start_i, + v2s32(slot_size.X, slot_size.Y), slot_spacing, this, + data->inventorylist_options, m_font); e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); diff --git a/src/gui/guiInventoryList.cpp b/src/gui/guiInventoryList.cpp index dfdb60448..183d72165 100644 --- a/src/gui/guiInventoryList.cpp +++ b/src/gui/guiInventoryList.cpp @@ -104,8 +104,6 @@ void GUIInventoryList::draw() && m_invmgr->getInventory(selected_item->inventoryloc) == inv && selected_item->listname == m_listname && selected_item->i == item_i; - core::rect clipped_rect(rect); - clipped_rect.clipAgainst(AbsoluteClippingRect); bool hovering = m_hovered_i == item_i; ItemRotationKind rotation_kind = selected ? IT_ROT_SELECTED : (hovering ? IT_ROT_HOVERED : IT_ROT_NONE); From 2072afb72b4b3e9c5dcbcec71d824aeae1b35d19 Mon Sep 17 00:00:00 2001 From: "k.h.lai" Date: Wed, 3 Feb 2021 03:56:24 +0800 Subject: [PATCH 501/624] Fix memory leak detected by address sanitizer (#10896) --- src/client/renderingengine.cpp | 2 +- src/gui/guiEngine.cpp | 3 +-- src/irrlicht_changes/CGUITTFont.cpp | 4 ++++ src/irrlicht_changes/CGUITTFont.h | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/client/renderingengine.cpp b/src/client/renderingengine.cpp index f5aca8f58..99ff8c1ee 100644 --- a/src/client/renderingengine.cpp +++ b/src/client/renderingengine.cpp @@ -153,7 +153,7 @@ RenderingEngine::RenderingEngine(IEventReceiver *receiver) RenderingEngine::~RenderingEngine() { core.reset(); - m_device->drop(); + m_device->closeDevice(); s_singleton = nullptr; } diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp index 6e2c2b053..93463ad70 100644 --- a/src/gui/guiEngine.cpp +++ b/src/gui/guiEngine.cpp @@ -75,8 +75,6 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id) if (name.empty()) return NULL; - m_to_delete.insert(name); - #if ENABLE_GLES video::ITexture *retval = m_driver->findTexture(name.c_str()); if (retval) @@ -88,6 +86,7 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id) image = Align2Npot2(image, m_driver); retval = m_driver->addTexture(name.c_str(), image); + m_to_delete.insert(name); image->drop(); return retval; #else diff --git a/src/irrlicht_changes/CGUITTFont.cpp b/src/irrlicht_changes/CGUITTFont.cpp index bd4e700de..0f3368822 100644 --- a/src/irrlicht_changes/CGUITTFont.cpp +++ b/src/irrlicht_changes/CGUITTFont.cpp @@ -378,6 +378,7 @@ bool CGUITTFont::load(const io::path& filename, const u32 size, const bool antia } // Store our face. + sguitt_face = face; tt_face = face->face; // Store font metrics. @@ -436,6 +437,9 @@ CGUITTFont::~CGUITTFont() // Drop our driver now. if (Driver) Driver->drop(); + + // Destroy sguitt_face after clearing c_faces + delete sguitt_face; } void CGUITTFont::reset_images() diff --git a/src/irrlicht_changes/CGUITTFont.h b/src/irrlicht_changes/CGUITTFont.h index 310f74f67..b64e57a45 100644 --- a/src/irrlicht_changes/CGUITTFont.h +++ b/src/irrlicht_changes/CGUITTFont.h @@ -375,6 +375,7 @@ namespace gui gui::IGUIEnvironment* Environment; video::IVideoDriver* Driver; io::path filename; + SGUITTFace* sguitt_face = nullptr; FT_Face tt_face; FT_Size_Metrics font_metrics; FT_Int32 load_flags; From 8c19823aa7206e6c73a4ad00620365552c82d241 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Thu, 4 Feb 2021 20:43:12 +0000 Subject: [PATCH 502/624] Fix documentation of formspec sound style (#10913) --- doc/lua_api.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 9c2a0f131..7b7825614 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2872,14 +2872,14 @@ Some types may inherit styles from parent types. * noclip - boolean, set to true to allow the element to exceed formspec bounds. * padding - rect, adds space between the edges of the button and the content. This value is relative to bgimg_middle. - * sound - a sound to be played when clicked. + * sound - a sound to be played when triggered. * textcolor - color, default white. * checkbox * noclip - boolean, set to true to allow the element to exceed formspec bounds. - * sound - a sound to be played when clicked. + * sound - a sound to be played when triggered. * dropdown * noclip - boolean, set to true to allow the element to exceed formspec bounds. - * sound - a sound to be played when clicked. + * sound - a sound to be played when the entry is changed. * field, pwdfield, textarea * border - set to false to hide the textbox background and border. Default true. * font - Sets font type. See button `font` property for more information. @@ -2910,12 +2910,12 @@ Some types may inherit styles from parent types. * fgimg_pressed - image when pressed. Defaults to fgimg when not provided. * This is deprecated, use states instead. * NOTE: The parameters of any given image_button will take precedence over fgimg/fgimg_pressed - * sound - a sound to be played when clicked. + * sound - a sound to be played when triggered. * scrollbar * noclip - boolean, set to true to allow the element to exceed formspec bounds. * tabheader * noclip - boolean, set to true to allow the element to exceed formspec bounds. - * sound - a sound to be played when clicked. + * sound - a sound to be played when a different tab is selected. * textcolor - color. Default white. * table, textlist * font - Sets font type. See button `font` property for more information. From 9b64834c6a2ae6eb254e486c87864e6116cfafa1 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Thu, 4 Feb 2021 20:43:29 +0000 Subject: [PATCH 503/624] Devtest: Remove bumpmap/parallax occl. test nodes (#10902) --- games/devtest/mods/testnodes/textures.lua | 48 ------------------ .../textures/testnodes_height_pyramid.png | Bin 90 -> 0 bytes .../testnodes_height_pyramid_normal.png | Bin 239 -> 0 bytes .../textures/testnodes_parallax_extruded.png | Bin 591 -> 0 bytes .../testnodes_parallax_extruded_normal.png | Bin 143 -> 0 bytes 5 files changed, 48 deletions(-) delete mode 100644 games/devtest/mods/testnodes/textures/testnodes_height_pyramid.png delete mode 100644 games/devtest/mods/testnodes/textures/testnodes_height_pyramid_normal.png delete mode 100644 games/devtest/mods/testnodes/textures/testnodes_parallax_extruded.png delete mode 100644 games/devtest/mods/testnodes/textures/testnodes_parallax_extruded_normal.png diff --git a/games/devtest/mods/testnodes/textures.lua b/games/devtest/mods/testnodes/textures.lua index a508b6a4d..f6e6a0c2a 100644 --- a/games/devtest/mods/testnodes/textures.lua +++ b/games/devtest/mods/testnodes/textures.lua @@ -65,51 +65,3 @@ for a=1,#alphas do }) end - --- Bumpmapping and Parallax Occlusion - --- This node has a normal map which corresponds to a pyramid with sides tilted --- by an angle of 45°, i.e. the normal map contains four vectors which point --- diagonally away from the surface (e.g. (0.7, 0.7, 0)), --- and the heights in the height map linearly increase towards the centre, --- so that the surface corresponds to a simple pyramid. --- The node can help to determine if e.g. tangent space transformations work --- correctly. --- If, for example, the light comes from above, then the (tilted) pyramids --- should look like they're lit from this light direction on all node faces. --- The white albedo texture has small black indicators which can be used to see --- how it is transformed ingame (and thus see if there's rotation around the --- normal vector). -minetest.register_node("testnodes:height_pyramid", { - description = "Bumpmapping and Parallax Occlusion Tester (height pyramid)", - tiles = {"testnodes_height_pyramid.png"}, - groups = {dig_immediate = 3}, -}) - --- The stairs nodes should help to validate if shading works correctly for --- rotated nodes (which have rotated textures). -stairs.register_stair_and_slab("height_pyramid", "experimantal:height_pyramid", - {dig_immediate = 3}, - {"testnodes_height_pyramid.png"}, - "Bumpmapping and Parallax Occlusion Tester Stair (height pyramid)", - "Bumpmapping and Parallax Occlusion Tester Slab (height pyramid)") - --- This node has a simple heightmap for parallax occlusion testing and flat --- normalmap. --- When parallax occlusion is enabled, the yellow scrawl should stick out of --- the texture when viewed at an angle. -minetest.register_node("testnodes:parallax_extruded", { - description = "Parallax Occlusion Tester", - tiles = {"testnodes_parallax_extruded.png"}, - groups = {dig_immediate = 3}, -}) - --- Analogously to the height pyramid stairs nodes, --- these nodes should help to validate if parallax occlusion works correctly for --- rotated nodes (which have rotated textures). -stairs.register_stair_and_slab("parallax_extruded", - "experimantal:parallax_extruded", - {dig_immediate = 3}, - {"testnodes_parallax_extruded.png"}, - "Parallax Occlusion Tester Stair", - "Parallax Occlusion Tester Slab") diff --git a/games/devtest/mods/testnodes/textures/testnodes_height_pyramid.png b/games/devtest/mods/testnodes/textures/testnodes_height_pyramid.png deleted file mode 100644 index 8c787b7401e1dd936e6e89bf132b9f187cf1d1b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx*Bp9q_EZ7UA6g^!WLnJOI|2h9-KBJ_8k%7S< l_h&{)D;%BznT9;_j11Q|ut~+NeZ2vs$~~oxG9vh=Ksi-Ja-z zF6Uhfc!H`Hh$XG#`4Y}!e@IZs$-&^{X6x;I|F{;~J-lZ8BChUq+zxrhT}cw zf(=X36e=`Ma6IrxXz>ro?Z~NPnl5~lZ`vBp9Wt6ci6>(Yr1}?dc^_lavu5(%utdDz m=BEv;-gb_^tyj-;{LVim+=bh?|GX^F2MnIBelF{r5}E+pj#X#? diff --git a/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded.png b/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded.png deleted file mode 100644 index 7e1c323987597e8555e4a74bb637d4705dd2d88c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0}3b3I7v6KL@mH@Gv0J4(+ zvY!gFpboR10JM`7w50>JnEaTizT*oMt54M&9ww4jLmKe5|6SkNDwwN2XnFF?&54M>YwwW5XngF(% z0k)bBwwn*OoB+0+0JfbNww?gCpB}cM1mNJ{;^N}t=;-R|>g((4 z?Ck9A?d|XH@AC5U^Yiod_4W4l_V@Sq`uh6&`}_X>{{R2~TWLV^0002qNkl^sfqHC|*%qp+DVE=OwVRQ){8H6qCzBsS8yv zPRFw}Lh#+euxuqHJ@M{BSj%s0U5{ImH6K%b5WcLPhH}i6bL6b*zS!G)=k53BV?k;A zhA%NScwb}y(Q7v+LYiT3v*4umb5tc)Ny6*)Do9HP*a)$tQh_ZQFmV{{z(k#HXqvCy dU*zKm`454QOBEGnk`Vv^002ovPDHLkV1i>NAjALw diff --git a/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded_normal.png b/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded_normal.png deleted file mode 100644 index b134699d0c82621f7ba10fcbf177f93a74ce7456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9YeU0-AX089Hv)< Date: Fri, 5 Feb 2021 18:34:25 +0100 Subject: [PATCH 504/624] Server: properly delete ServerMap on interrupted startups A static mod error (e.g. typo) would abort the initialization but never free ServerMap --- src/map_settings_manager.cpp | 3 ++- src/server.cpp | 3 +++ src/server.h | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/map_settings_manager.cpp b/src/map_settings_manager.cpp index ed65eed1c..99e3cb0e6 100644 --- a/src/map_settings_manager.cpp +++ b/src/map_settings_manager.cpp @@ -116,7 +116,8 @@ bool MapSettingsManager::saveMapMeta() { // If mapgen params haven't been created yet; abort if (!mapgen_params) { - errorstream << "saveMapMeta: mapgen_params not present!" << std::endl; + infostream << "saveMapMeta: mapgen_params not present! " + << "Server startup was probably interrupted." << std::endl; return false; } diff --git a/src/server.cpp b/src/server.cpp index b815558fb..af4eb17e2 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -351,6 +351,7 @@ Server::~Server() // Deinitialize scripting infostream << "Server: Deinitializing scripting" << std::endl; delete m_script; + delete m_startup_server_map; // if available delete m_game_settings; while (!m_unsent_map_edit_queue.empty()) { @@ -399,6 +400,7 @@ void Server::init() // Create the Map (loads map_meta.txt, overriding configured mapgen params) ServerMap *servermap = new ServerMap(m_path_world, this, m_emerge, m_metrics_backend.get()); + m_startup_server_map = servermap; // Initialize scripting infostream << "Server: Initializing Lua" << std::endl; @@ -440,6 +442,7 @@ void Server::init() m_craftdef->initHashes(this); // Initialize Environment + m_startup_server_map = nullptr; // Ownership moved to ServerEnvironment m_env = new ServerEnvironment(servermap, m_script, this, m_path_world); m_inventory_mgr->setEnv(m_env); diff --git a/src/server.h b/src/server.h index 0b4084aa9..9857215d0 100644 --- a/src/server.h +++ b/src/server.h @@ -547,6 +547,10 @@ private: // Environment ServerEnvironment *m_env = nullptr; + // Reference to the server map until ServerEnvironment is initialized + // after that this variable must be a nullptr + ServerMap *m_startup_server_map = nullptr; + // server connection std::shared_ptr m_con; From 0f74c7a977c412a81890926548e2a5c8dae5f6eb Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 6 Feb 2021 13:34:00 +0100 Subject: [PATCH 505/624] Fix double free caused by CGUITTFont code This partially reverts commit 2072afb72b4b3e9c5dcbcec71d824aeae1b35d19. fixes #10920 --- src/irrlicht_changes/CGUITTFont.cpp | 4 ---- src/irrlicht_changes/CGUITTFont.h | 1 - 2 files changed, 5 deletions(-) diff --git a/src/irrlicht_changes/CGUITTFont.cpp b/src/irrlicht_changes/CGUITTFont.cpp index 0f3368822..bd4e700de 100644 --- a/src/irrlicht_changes/CGUITTFont.cpp +++ b/src/irrlicht_changes/CGUITTFont.cpp @@ -378,7 +378,6 @@ bool CGUITTFont::load(const io::path& filename, const u32 size, const bool antia } // Store our face. - sguitt_face = face; tt_face = face->face; // Store font metrics. @@ -437,9 +436,6 @@ CGUITTFont::~CGUITTFont() // Drop our driver now. if (Driver) Driver->drop(); - - // Destroy sguitt_face after clearing c_faces - delete sguitt_face; } void CGUITTFont::reset_images() diff --git a/src/irrlicht_changes/CGUITTFont.h b/src/irrlicht_changes/CGUITTFont.h index b64e57a45..310f74f67 100644 --- a/src/irrlicht_changes/CGUITTFont.h +++ b/src/irrlicht_changes/CGUITTFont.h @@ -375,7 +375,6 @@ namespace gui gui::IGUIEnvironment* Environment; video::IVideoDriver* Driver; io::path filename; - SGUITTFace* sguitt_face = nullptr; FT_Face tt_face; FT_Size_Metrics font_metrics; FT_Int32 load_flags; From fbb9ef3818b17894843f967c0c23b5d57a1e3771 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 6 Feb 2021 12:46:45 +0000 Subject: [PATCH 506/624] Reduce ore noise_parms error to deprecation warning (#10921) Fixes #10914 --- src/script/lua_api/l_mapgen.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index 183f20540..12a497b1e 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -1336,10 +1336,8 @@ int ModApiMapgen::l_register_ore(lua_State *L) if (read_noiseparams(L, -1, &ore->np)) { ore->flags |= OREFLAG_USE_NOISE; } else if (ore->needs_noise) { - errorstream << "register_ore: specified ore type requires valid " - "'noise_params' parameter" << std::endl; - delete ore; - return 0; + log_deprecated(L, + "register_ore: ore type requires 'noise_params' but it is not specified, falling back to defaults"); } lua_pop(L, 1); From 3ac07ad34daa2e06a11f76d2fab402f411487d46 Mon Sep 17 00:00:00 2001 From: Muhammad Rifqi Priyo Susanto Date: Sat, 6 Feb 2021 19:47:12 +0700 Subject: [PATCH 507/624] Fall back to default when rendering mode (3d_mode) is set invalid (#10922) --- src/client/render/factory.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/client/render/factory.cpp b/src/client/render/factory.cpp index 30f9480fc..7fcec40dd 100644 --- a/src/client/render/factory.cpp +++ b/src/client/render/factory.cpp @@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., */ #include "factory.h" -#include +#include "log.h" #include "plain.h" #include "anaglyph.h" #include "interlaced.h" @@ -45,5 +45,8 @@ RenderingCore *createRenderingCore(const std::string &stereo_mode, IrrlichtDevic return new RenderingCoreSideBySide(device, client, hud, true); if (stereo_mode == "crossview") return new RenderingCoreSideBySide(device, client, hud, false, true); - throw std::invalid_argument("Invalid rendering mode: " + stereo_mode); + + // fallback to plain renderer + errorstream << "Invalid rendering mode: " << stereo_mode << std::endl; + return new RenderingCorePlain(device, client, hud); } From 4caf156be5baf80e6bcdb6797937ffabbe476a0f Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Sun, 7 Feb 2021 13:48:30 +0300 Subject: [PATCH 508/624] Rewrite touch event conversion (#10636) --- src/gui/modalMenu.cpp | 171 +++++++++++++++++++++++------------------- src/gui/modalMenu.h | 9 +++ 2 files changed, 104 insertions(+), 76 deletions(-) diff --git a/src/gui/modalMenu.cpp b/src/gui/modalMenu.cpp index 9b1e6dd9c..0d3fb55f0 100644 --- a/src/gui/modalMenu.cpp +++ b/src/gui/modalMenu.cpp @@ -183,6 +183,64 @@ static bool isChild(gui::IGUIElement *tocheck, gui::IGUIElement *parent) return false; } +#ifdef __ANDROID__ + +bool GUIModalMenu::simulateMouseEvent( + gui::IGUIElement *target, ETOUCH_INPUT_EVENT touch_event) +{ + SEvent mouse_event{}; // value-initialized, not unitialized + mouse_event.EventType = EET_MOUSE_INPUT_EVENT; + mouse_event.MouseInput.X = m_pointer.X; + mouse_event.MouseInput.Y = m_pointer.Y; + switch (touch_event) { + case ETIE_PRESSED_DOWN: + mouse_event.MouseInput.Event = EMIE_LMOUSE_PRESSED_DOWN; + mouse_event.MouseInput.ButtonStates = EMBSM_LEFT; + break; + case ETIE_MOVED: + mouse_event.MouseInput.Event = EMIE_MOUSE_MOVED; + mouse_event.MouseInput.ButtonStates = EMBSM_LEFT; + break; + case ETIE_LEFT_UP: + mouse_event.MouseInput.Event = EMIE_LMOUSE_LEFT_UP; + mouse_event.MouseInput.ButtonStates = 0; + break; + default: + return false; + } + if (preprocessEvent(mouse_event)) + return true; + if (!target) + return false; + return target->OnEvent(mouse_event); +} + +void GUIModalMenu::enter(gui::IGUIElement *hovered) +{ + sanity_check(!m_hovered); + m_hovered.grab(hovered); + SEvent gui_event{}; + gui_event.EventType = EET_GUI_EVENT; + gui_event.GUIEvent.Caller = m_hovered.get(); + gui_event.GUIEvent.EventType = EGET_ELEMENT_HOVERED; + gui_event.GUIEvent.Element = gui_event.GUIEvent.Caller; + m_hovered->OnEvent(gui_event); +} + +void GUIModalMenu::leave() +{ + if (!m_hovered) + return; + SEvent gui_event{}; + gui_event.EventType = EET_GUI_EVENT; + gui_event.GUIEvent.Caller = m_hovered.get(); + gui_event.GUIEvent.EventType = EGET_ELEMENT_LEFT; + m_hovered->OnEvent(gui_event); + m_hovered.reset(); +} + +#endif + bool GUIModalMenu::preprocessEvent(const SEvent &event) { #ifdef __ANDROID__ @@ -230,89 +288,50 @@ bool GUIModalMenu::preprocessEvent(const SEvent &event) } if (event.EventType == EET_TOUCH_INPUT_EVENT) { - SEvent translated; - memset(&translated, 0, sizeof(SEvent)); - translated.EventType = EET_MOUSE_INPUT_EVENT; - gui::IGUIElement *root = Environment->getRootGUIElement(); + irr_ptr holder; + holder.grab(this); // keep this alive until return (it might be dropped downstream [?]) - if (!root) { - errorstream << "GUIModalMenu::preprocessEvent" - << " unable to get root element" << std::endl; - return false; - } - gui::IGUIElement *hovered = - root->getElementFromPoint(core::position2d( - event.TouchInput.X, event.TouchInput.Y)); - - translated.MouseInput.X = event.TouchInput.X; - translated.MouseInput.Y = event.TouchInput.Y; - translated.MouseInput.Control = false; - - if (event.TouchInput.touchedCount == 1) { - switch (event.TouchInput.Event) { - case ETIE_PRESSED_DOWN: + switch ((int)event.TouchInput.touchedCount) { + case 1: { + if (event.TouchInput.Event == ETIE_PRESSED_DOWN || event.TouchInput.Event == ETIE_MOVED) m_pointer = v2s32(event.TouchInput.X, event.TouchInput.Y); - translated.MouseInput.Event = EMIE_LMOUSE_PRESSED_DOWN; - translated.MouseInput.ButtonStates = EMBSM_LEFT; + if (event.TouchInput.Event == ETIE_PRESSED_DOWN) m_down_pos = m_pointer; - break; - case ETIE_MOVED: - m_pointer = v2s32(event.TouchInput.X, event.TouchInput.Y); - translated.MouseInput.Event = EMIE_MOUSE_MOVED; - translated.MouseInput.ButtonStates = EMBSM_LEFT; - break; - case ETIE_LEFT_UP: - translated.MouseInput.Event = EMIE_LMOUSE_LEFT_UP; - translated.MouseInput.ButtonStates = 0; - hovered = root->getElementFromPoint(m_down_pos); - // we don't have a valid pointer element use last - // known pointer pos - translated.MouseInput.X = m_pointer.X; - translated.MouseInput.Y = m_pointer.Y; - - // reset down pos - m_down_pos = v2s32(0, 0); - break; - default: - break; + gui::IGUIElement *hovered = Environment->getRootGUIElement()->getElementFromPoint(core::position2d(m_pointer)); + if (event.TouchInput.Event == ETIE_PRESSED_DOWN) + Environment->setFocus(hovered); + if (m_hovered != hovered) { + leave(); + enter(hovered); } - } else if ((event.TouchInput.touchedCount == 2) && - (event.TouchInput.Event == ETIE_PRESSED_DOWN)) { - hovered = root->getElementFromPoint(m_down_pos); - - translated.MouseInput.Event = EMIE_RMOUSE_PRESSED_DOWN; - translated.MouseInput.ButtonStates = EMBSM_LEFT | EMBSM_RIGHT; - translated.MouseInput.X = m_pointer.X; - translated.MouseInput.Y = m_pointer.Y; - if (hovered) - hovered->OnEvent(translated); - - translated.MouseInput.Event = EMIE_RMOUSE_LEFT_UP; - translated.MouseInput.ButtonStates = EMBSM_LEFT; - - if (hovered) - hovered->OnEvent(translated); - - return true; - } else { - // ignore unhandled 2 touch events (accidental moving for example) + gui::IGUIElement *focused = Environment->getFocus(); + bool ret = simulateMouseEvent(focused, event.TouchInput.Event); + if (!ret && m_hovered != focused) + ret = simulateMouseEvent(m_hovered.get(), event.TouchInput.Event); + if (event.TouchInput.Event == ETIE_LEFT_UP) + leave(); + return ret; + } + case 2: { + if (event.TouchInput.Event != ETIE_PRESSED_DOWN) + return true; // ignore + auto focused = Environment->getFocus(); + if (!focused) + return true; + SEvent rclick_event{}; + rclick_event.EventType = EET_MOUSE_INPUT_EVENT; + rclick_event.MouseInput.Event = EMIE_RMOUSE_PRESSED_DOWN; + rclick_event.MouseInput.ButtonStates = EMBSM_LEFT | EMBSM_RIGHT; + rclick_event.MouseInput.X = m_pointer.X; + rclick_event.MouseInput.Y = m_pointer.Y; + focused->OnEvent(rclick_event); + rclick_event.MouseInput.Event = EMIE_RMOUSE_LEFT_UP; + rclick_event.MouseInput.ButtonStates = EMBSM_LEFT; + focused->OnEvent(rclick_event); return true; } - - // check if translated event needs to be preprocessed again - if (preprocessEvent(translated)) + default: // ignored return true; - - if (hovered) { - grab(); - bool retval = hovered->OnEvent(translated); - - if (event.TouchInput.Event == ETIE_LEFT_UP) - // reset pointer - m_pointer = v2s32(0, 0); - - drop(); - return retval; } } #endif diff --git a/src/gui/modalMenu.h b/src/gui/modalMenu.h index 1cb687f82..ed0da3205 100644 --- a/src/gui/modalMenu.h +++ b/src/gui/modalMenu.h @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once #include "irrlichttypes_extrabloated.h" +#include "irr_ptr.h" #include "util/string.h" class GUIModalMenu; @@ -100,4 +101,12 @@ private: // This might be necessary to expose to the implementation if it // wants to launch other menus bool m_allow_focus_removal = false; + +#ifdef __ANDROID__ + irr_ptr m_hovered; + + bool simulateMouseEvent(gui::IGUIElement *target, ETOUCH_INPUT_EVENT touch_event); + void enter(gui::IGUIElement *element); + void leave(); +#endif }; From 3a8c37181a9bf9624f3243e8e884f12ae7692609 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 7 Feb 2021 15:27:24 +0000 Subject: [PATCH 509/624] Use consistent temp folder path (#10892) --- builtin/mainmenu/common.lua | 36 +++++++------------------------ doc/menu_lua_api.txt | 1 + src/defaultsettings.cpp | 1 - src/filesys.cpp | 6 ++---- src/script/lua_api/l_mainmenu.cpp | 11 ++++++++++ src/script/lua_api/l_mainmenu.h | 2 ++ 6 files changed, 24 insertions(+), 33 deletions(-) diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua index 01f9a30b9..cd896f9ec 100644 --- a/builtin/mainmenu/common.lua +++ b/builtin/mainmenu/common.lua @@ -146,35 +146,15 @@ end -------------------------------------------------------------------------------- os.tempfolder = function() - if core.settings:get("TMPFolder") then - return core.settings:get("TMPFolder") .. DIR_DELIM .. "MT_" .. math.random(0,10000) - end + local temp = core.get_temp_path() + return temp .. DIR_DELIM .. "MT_" .. math.random(0, 10000) +end - local filetocheck = os.tmpname() - os.remove(filetocheck) - - -- luacheck: ignore - -- https://blogs.msdn.microsoft.com/vcblog/2014/06/18/c-runtime-crt-features-fixes-and-breaking-changes-in-visual-studio-14-ctp1/ - -- The C runtime (CRT) function called by os.tmpname is tmpnam. - -- Microsofts tmpnam implementation in older CRT / MSVC releases is defective. - -- tmpnam return values starting with a backslash characterize this behavior. - -- https://sourceforge.net/p/mingw-w64/bugs/555/ - -- MinGW tmpnam implementation is forwarded to the CRT directly. - -- https://sourceforge.net/p/mingw-w64/discussion/723797/thread/55520785/ - -- MinGW links to an older CRT release (msvcrt.dll). - -- Due to legal concerns MinGW will never use a newer CRT. - -- - -- Make use of TEMP to compose the temporary filename if an old - -- style tmpnam return value is detected. - if filetocheck:sub(1, 1) == "\\" then - local tempfolder = os.getenv("TEMP") - return tempfolder .. filetocheck - end - - local randname = "MTTempModFolder_" .. math.random(0,10000) - local backstring = filetocheck:reverse() - return filetocheck:sub(0, filetocheck:len() - backstring:find(DIR_DELIM) + 1) .. - randname +-------------------------------------------------------------------------------- +os.tmpname = function() + local path = os.tempfolder() + io.open(path, "w"):close() + return path end -------------------------------------------------------------------------------- diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt index db49c1736..b3975bc1d 100644 --- a/doc/menu_lua_api.txt +++ b/doc/menu_lua_api.txt @@ -85,6 +85,7 @@ core.get_video_drivers() core.get_mapgen_names([include_hidden=false]) -> table of map generator algorithms registered in the core (possible in async calls) core.get_cache_path() -> path of cache +core.get_temp_path() -> path of temp folder HTTP Requests diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index d34ec324b..41c4922a4 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -461,7 +461,6 @@ void set_default_settings() settings->setDefault("screen_h", "0"); settings->setDefault("fullscreen", "true"); settings->setDefault("touchtarget", "true"); - settings->setDefault("TMPFolder", porting::path_cache); settings->setDefault("touchscreen_threshold","20"); settings->setDefault("fixed_virtual_joystick", "false"); settings->setDefault("virtual_joystick_triggers_aux", "false"); diff --git a/src/filesys.cpp b/src/filesys.cpp index eeba0c564..5ffb4506e 100644 --- a/src/filesys.cpp +++ b/src/filesys.cpp @@ -27,9 +27,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "log.h" #include "config.h" #include "porting.h" -#ifdef __ANDROID__ -#include "settings.h" // For g_settings -#endif namespace fs { @@ -359,8 +356,9 @@ std::string TempPath() compatible with lua's os.tmpname which under the default configuration hardcodes mkstemp("/tmp/lua_XXXXXX"). */ + #ifdef __ANDROID__ - return g_settings->get("TMPFolder"); + return porting::path_cache; #else return DIR_DELIM "tmp"; #endif diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 4733c4003..ba7f708a4 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -529,6 +529,7 @@ int ModApiMainMenu::l_get_texturepath(lua_State *L) return 1; } +/******************************************************************************/ int ModApiMainMenu::l_get_texturepath_share(lua_State *L) { std::string gamepath = fs::RemoveRelativePathComponents( @@ -537,12 +538,20 @@ int ModApiMainMenu::l_get_texturepath_share(lua_State *L) return 1; } +/******************************************************************************/ int ModApiMainMenu::l_get_cache_path(lua_State *L) { lua_pushstring(L, fs::RemoveRelativePathComponents(porting::path_cache).c_str()); return 1; } +/******************************************************************************/ +int ModApiMainMenu::l_get_temp_path(lua_State *L) +{ + lua_pushstring(L, fs::TempPath().c_str()); + return 1; +} + /******************************************************************************/ int ModApiMainMenu::l_create_dir(lua_State *L) { const char *path = luaL_checkstring(L, 1); @@ -942,6 +951,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(get_texturepath); API_FCT(get_texturepath_share); API_FCT(get_cache_path); + API_FCT(get_temp_path); API_FCT(create_dir); API_FCT(delete_dir); API_FCT(copy_dir); @@ -975,6 +985,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top) API_FCT(get_texturepath); API_FCT(get_texturepath_share); API_FCT(get_cache_path); + API_FCT(get_temp_path); API_FCT(create_dir); API_FCT(delete_dir); API_FCT(copy_dir); diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index 580a0df72..49ce7c251 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -122,6 +122,8 @@ private: static int l_get_cache_path(lua_State *L); + static int l_get_temp_path(lua_State *L); + static int l_create_dir(lua_State *L); static int l_delete_dir(lua_State *L); From 857dbcd5728e2f18cdbb478d85f5861d5f0c7123 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 7 Feb 2021 15:28:15 +0000 Subject: [PATCH 510/624] Reduce empty translation error to infostream Fixes #10905 --- src/translation.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/translation.cpp b/src/translation.cpp index 82e813a5d..55c958fa2 100644 --- a/src/translation.cpp +++ b/src/translation.cpp @@ -144,14 +144,13 @@ void Translations::loadTranslation(const std::string &data) } std::wstring oword1 = word1.str(), oword2 = word2.str(); - if (oword2.empty()) { - oword2 = oword1; - errorstream << "Ignoring empty translation for \"" - << wide_to_utf8(oword1) << "\"" << std::endl; + if (!oword2.empty()) { + std::wstring translation_index = textdomain + L"|"; + translation_index.append(oword1); + m_translations[translation_index] = oword2; + } else { + infostream << "Ignoring empty translation for \"" + << wide_to_utf8(oword1) << "\"" << std::endl; } - - std::wstring translation_index = textdomain + L"|"; - translation_index.append(oword1); - m_translations[translation_index] = oword2; } } From 6591597430c8a06c579e2631fcdbb022ae12160d Mon Sep 17 00:00:00 2001 From: Jean-Patrick Guerrero Date: Mon, 8 Feb 2021 00:04:38 +0000 Subject: [PATCH 511/624] Fix animation_image support in scroll containers --- games/devtest/mods/testformspec/formspec.lua | 1 + src/gui/guiFormSpecMenu.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/games/devtest/mods/testformspec/formspec.lua b/games/devtest/mods/testformspec/formspec.lua index bb178e1b3..2a2bdad60 100644 --- a/games/devtest/mods/testformspec/formspec.lua +++ b/games/devtest/mods/testformspec/formspec.lua @@ -227,6 +227,7 @@ local scroll_fs = "box[1,1;8,6;#00aa]".. "scroll_container[1,1;8,6;scrbar;vertical]".. "button[0,1;1,1;lorem;Lorem]".. + "animated_image[0,1;4.5,1;clip_animated_image;testformspec_animation.png;4;100]" .. "button[0,10;1,1;ipsum;Ipsum]".. "pwdfield[2,2;1,1;lorem2;Lorem]".. "list[current_player;main;4,4;1,5;]".. diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 88ea77812..5aa6dc9ae 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -928,7 +928,7 @@ void GUIFormSpecMenu::parseAnimatedImage(parserData *data, const std::string &el core::rect rect = core::rect(pos, pos + geom); - GUIAnimatedImage *e = new GUIAnimatedImage(Environment, this, spec.fid, + GUIAnimatedImage *e = new GUIAnimatedImage(Environment, data->current_parent, spec.fid, rect, texture_name, frame_count, frame_duration, m_tsrc); if (parts.size() >= 7) From 1d64e6537c3fb048e0d0594680d1c727a80c30d8 Mon Sep 17 00:00:00 2001 From: Jean-Patrick Guerrero Date: Mon, 8 Feb 2021 18:56:51 +0100 Subject: [PATCH 512/624] Pause menu: Fix segfault on u/down key input --- src/client/game.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/client/game.cpp b/src/client/game.cpp index 9e942f47a..3c58fb46f 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -171,13 +171,7 @@ struct LocalFormspecHandler : public TextDest return; } - if (fields.find("quit") != fields.end()) { - return; - } - - if (fields.find("btn_continue") != fields.end()) { - return; - } + return; } if (m_formname == "MT_DEATH_SCREEN") { From b28749057a614075c1f9ba3f96bb86a6e248a210 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 9 Feb 2021 12:39:36 +0000 Subject: [PATCH 513/624] Fix crash in tab_online when cURL is disabled --- builtin/mainmenu/serverlistmgr.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/builtin/mainmenu/serverlistmgr.lua b/builtin/mainmenu/serverlistmgr.lua index d98736e54..9876d8ac5 100644 --- a/builtin/mainmenu/serverlistmgr.lua +++ b/builtin/mainmenu/serverlistmgr.lua @@ -47,6 +47,15 @@ function serverlistmgr.sync() }} end + local serverlist_url = core.settings:get("serverlist_url") or "" + if not core.get_http_api or serverlist_url == "" then + serverlistmgr.servers = {{ + name = fgettext("Public server list is disabled"), + description = "" + }} + return + end + if public_downloading then return end From 9736b9cea5f841bb0e9bb2c9c05c3b2560327064 Mon Sep 17 00:00:00 2001 From: TotalCaesar659 <14265316+TotalCaesar659@users.noreply.github.com> Date: Wed, 10 Feb 2021 16:34:21 +0300 Subject: [PATCH 514/624] Update URLs to HTTPS (#10923) --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a06c3e257..58ec0c821 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,10 @@ Table of Contents Further documentation ---------------------- -- Website: http://minetest.net/ -- Wiki: http://wiki.minetest.net/ -- Developer wiki: http://dev.minetest.net/ -- Forum: http://forum.minetest.net/ +- Website: https://minetest.net/ +- Wiki: https://wiki.minetest.net/ +- Developer wiki: https://dev.minetest.net/ +- Forum: https://forum.minetest.net/ - GitHub: https://github.com/minetest/minetest/ - [doc/](doc/) directory of source distribution From 4db7fb4a3be9de29460919ff2dc042e0812f31bd Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 10 Feb 2021 11:02:34 +0000 Subject: [PATCH 515/624] Replace 'minetest.' with 'core.' in builtin --- builtin/common/information_formspecs.lua | 2 +- builtin/game/item.lua | 2 +- builtin/game/statbars.lua | 4 ++-- builtin/mainmenu/dlg_config_world.lua | 2 +- builtin/mainmenu/dlg_contentstore.lua | 18 +++++++++--------- builtin/mainmenu/dlg_create_world.lua | 2 +- builtin/mainmenu/pkgmgr.lua | 6 +++--- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/builtin/common/information_formspecs.lua b/builtin/common/information_formspecs.lua index 8afa5bc87..3e2f1f079 100644 --- a/builtin/common/information_formspecs.lua +++ b/builtin/common/information_formspecs.lua @@ -115,7 +115,7 @@ core.register_on_player_receive_fields(function(player, formname, fields) return end - local event = minetest.explode_table_event(fields.list) + local event = core.explode_table_event(fields.list) if event.type ~= "INV" then local name = player:get_player_name() core.show_formspec(name, "__builtin:help_cmds", diff --git a/builtin/game/item.lua b/builtin/game/item.lua index 881aff52e..b68177c22 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -678,7 +678,7 @@ end -- Item definition defaults -- -local default_stack_max = tonumber(minetest.settings:get("default_stack_max")) or 99 +local default_stack_max = tonumber(core.settings:get("default_stack_max")) or 99 core.nodedef_default = { -- Item properties diff --git a/builtin/game/statbars.lua b/builtin/game/statbars.lua index d192029c5..db5087a16 100644 --- a/builtin/game/statbars.lua +++ b/builtin/game/statbars.lua @@ -84,8 +84,8 @@ local function update_builtin_statbars(player) end if hud.id_breathbar and (not show_breathbar or breath == breath_max) then - minetest.after(1, function(player_name, breath_bar) - local player = minetest.get_player_by_name(player_name) + core.after(1, function(player_name, breath_bar) + local player = core.get_player_by_name(player_name) if player then player:hud_remove(breath_bar) end diff --git a/builtin/mainmenu/dlg_config_world.lua b/builtin/mainmenu/dlg_config_world.lua index 2cf70c9c9..9bdf92a74 100644 --- a/builtin/mainmenu/dlg_config_world.lua +++ b/builtin/mainmenu/dlg_config_world.lua @@ -74,7 +74,7 @@ local function get_formspec(data) "label[1.75,0;" .. data.worldspec.name .. "]" if mod.is_modpack or mod.type == "game" then - local info = minetest.formspec_escape( + local info = core.formspec_escape( core.get_content_info(mod.path).description) if info == "" then if mod.is_modpack then diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua index 7328f3358..b0736a4fd 100644 --- a/builtin/mainmenu/dlg_contentstore.lua +++ b/builtin/mainmenu/dlg_contentstore.lua @@ -15,7 +15,7 @@ --with this program; if not, write to the Free Software Foundation, Inc., --51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -if not minetest.get_http_api then +if not core.get_http_api then function create_store_dlg() return messagebox("store", fgettext("ContentDB is not available when Minetest was compiled without cURL")) @@ -27,7 +27,7 @@ end -- before the package list is ordered based on installed state. local store = { packages = {}, packages_full = {}, packages_full_unordered = {} } -local http = minetest.get_http_api() +local http = core.get_http_api() -- Screenshot local screenshot_dir = core.get_cache_path() .. DIR_DELIM .. "cdb" @@ -152,7 +152,7 @@ local function start_install(package) end local function queue_download(package) - local max_concurrent_downloads = tonumber(minetest.settings:get("contentdb_max_concurrent_downloads")) + local max_concurrent_downloads = tonumber(core.settings:get("contentdb_max_concurrent_downloads")) if number_downloading < max_concurrent_downloads then start_install(package) else @@ -320,7 +320,7 @@ function install_dialog.get_formspec() selected_game_idx = i end - games[i] = minetest.formspec_escape(games[i].name) + games[i] = core.formspec_escape(games[i].name) end local selected_game = pkgmgr.games[selected_game_idx] @@ -331,7 +331,7 @@ function install_dialog.get_formspec() local formatted_deps = {} for _, dep in pairs(install_dialog.dependencies) do formatted_deps[#formatted_deps + 1] = "#fff" - formatted_deps[#formatted_deps + 1] = minetest.formspec_escape(dep.name) + formatted_deps[#formatted_deps + 1] = core.formspec_escape(dep.name) if dep.installed then formatted_deps[#formatted_deps + 1] = "#ccf" formatted_deps[#formatted_deps + 1] = fgettext("Already installed") @@ -402,7 +402,7 @@ function install_dialog.handle_submit(this, fields) end if fields.will_install_deps ~= nil then - install_dialog.will_install_deps = minetest.is_yes(fields.will_install_deps) + install_dialog.will_install_deps = core.is_yes(fields.will_install_deps) return true end @@ -553,7 +553,7 @@ function store.load() end end - local timeout = tonumber(minetest.settings:get("curl_file_download_timeout")) + local timeout = tonumber(core.settings:get("curl_file_download_timeout")) local response = http.fetch_sync({ url = url, timeout = timeout }) if not response.succeeded then return @@ -793,8 +793,8 @@ function store.get_formspec(dlgdata) -- title formspec[#formspec + 1] = "label[1.875,0.1;" formspec[#formspec + 1] = core.formspec_escape( - minetest.colorize(mt_color_green, package.title) .. - minetest.colorize("#BFBFBF", " by " .. package.author)) + core.colorize(mt_color_green, package.title) .. + core.colorize("#BFBFBF", " by " .. package.author)) formspec[#formspec + 1] = "]" -- buttons diff --git a/builtin/mainmenu/dlg_create_world.lua b/builtin/mainmenu/dlg_create_world.lua index 5931496c1..1938747fe 100644 --- a/builtin/mainmenu/dlg_create_world.lua +++ b/builtin/mainmenu/dlg_create_world.lua @@ -443,7 +443,7 @@ local function create_world_buttonhandler(this, fields) end if fields["mgv6_biomes"] then - local entry = minetest.formspec_escape(fields["mgv6_biomes"]) + local entry = core.formspec_escape(fields["mgv6_biomes"]) for b=1, #mgv6_biomes do if entry == mgv6_biomes[b][1] then local ftable = core.settings:get_flags("mgv6_spflags") diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua index bfb5d269a..19127d8d3 100644 --- a/builtin/mainmenu/pkgmgr.lua +++ b/builtin/mainmenu/pkgmgr.lua @@ -459,7 +459,7 @@ function pkgmgr.enable_mod(this, toset) if not toset then -- Mod(s) were disabled, so no dependencies need to be enabled table.sort(toggled_mods) - minetest.log("info", "Following mods were disabled: " .. + core.log("info", "Following mods were disabled: " .. table.concat(toggled_mods, ", ")) return end @@ -496,7 +496,7 @@ function pkgmgr.enable_mod(this, toset) enabled_mods[name] = true local mod_to_enable = list[mod_ids[name]] if not mod_to_enable then - minetest.log("warning", "Mod dependency \"" .. name .. + core.log("warning", "Mod dependency \"" .. name .. "\" not found!") else if mod_to_enable.enabled == false then @@ -517,7 +517,7 @@ function pkgmgr.enable_mod(this, toset) -- Log the list of enabled mods table.sort(toggled_mods) - minetest.log("info", "Following mods were enabled: " .. + core.log("info", "Following mods were enabled: " .. table.concat(toggled_mods, ", ")) end From 375bcd65c1903957e3a640cefffcc8df164b78bd Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Fri, 12 Feb 2021 20:54:06 +0100 Subject: [PATCH 516/624] Send attachments instantly before set_pos (#10235) --- src/server.cpp | 3 +++ src/server/luaentity_sao.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/server.cpp b/src/server.cpp index af4eb17e2..81cdd1f8d 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1821,6 +1821,9 @@ void Server::SendMovePlayer(session_t peer_id) PlayerSAO *sao = player->getPlayerSAO(); assert(sao); + // Send attachment updates instantly to the client prior updating position + sao->sendOutdatedData(); + NetworkPacket pkt(TOCLIENT_MOVE_PLAYER, sizeof(v3f) + sizeof(f32) * 2, peer_id); pkt << sao->getBasePosition() << sao->getLookPitch() << sao->getRotation().Y; diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp index c7277491a..5f35aaed8 100644 --- a/src/server/luaentity_sao.cpp +++ b/src/server/luaentity_sao.cpp @@ -492,6 +492,9 @@ void LuaEntitySAO::sendPosition(bool do_interpolate, bool is_movement_end) if(isAttached()) return; + // Send attachment updates instantly to the client prior updating position + sendOutdatedData(); + m_last_sent_move_precision = m_base_position.getDistanceFrom( m_last_sent_position); m_last_sent_position_timer = 0; From f018737b0646e0961a46a74765945d6039e47b88 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 14 Feb 2021 11:28:02 +0100 Subject: [PATCH 517/624] Fix segfault with invalid texture strings and minimap enabled closes #10949 --- src/client/tile.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/client/tile.cpp b/src/client/tile.cpp index aad956ada..f2639757e 100644 --- a/src/client/tile.cpp +++ b/src/client/tile.cpp @@ -2224,9 +2224,14 @@ video::SColor TextureSource::getTextureAverageColor(const std::string &name) video::IVideoDriver *driver = RenderingEngine::get_video_driver(); video::SColor c(0, 0, 0, 0); video::ITexture *texture = getTexture(name); + if (!texture) + return c; video::IImage *image = driver->createImage(texture, core::position2d(0, 0), texture->getOriginalSize()); + if (!image) + return c; + u32 total = 0; u32 tR = 0; u32 tG = 0; From 7832b6843e73410e15677d1324d582b4b7c7e824 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Mon, 15 Feb 2021 20:41:19 +0100 Subject: [PATCH 518/624] Server-side authority for attached players (#10952) The server must have authority about attachments. This commit ignores any player movement packets as long they're attached. --- src/network/serverpackethandler.cpp | 8 ++++++-- src/server/luaentity_sao.cpp | 10 +++------ src/server/player_sao.cpp | 32 ++++++----------------------- 3 files changed, 15 insertions(+), 35 deletions(-) diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index 270b8e01f..ddc6f4e47 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -488,8 +488,12 @@ void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao, pitch = modulo360f(pitch); yaw = wrapDegrees_0_360(yaw); - playersao->setBasePosition(position); - player->setSpeed(speed); + if (!playersao->isAttached()) { + // Only update player positions when moving freely + // to not interfere with attachment handling + playersao->setBasePosition(position); + player->setSpeed(speed); + } playersao->setLookPitch(pitch); playersao->setPlayerYaw(yaw); playersao->setFov(fov); diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp index 5f35aaed8..3bcbe107b 100644 --- a/src/server/luaentity_sao.cpp +++ b/src/server/luaentity_sao.cpp @@ -146,15 +146,11 @@ void LuaEntitySAO::step(float dtime, bool send_recommended) // Each frame, parent position is copied if the object is attached, otherwise it's calculated normally // If the object gets detached this comes into effect automatically from the last known origin - if(isAttached()) - { - v3f pos = m_env->getActiveObject(m_attachment_parent_id)->getBasePosition(); - m_base_position = pos; + if (auto *parent = getParent()) { + m_base_position = parent->getBasePosition(); m_velocity = v3f(0,0,0); m_acceleration = v3f(0,0,0); - } - else - { + } else { if(m_prop.physical){ aabb3f box = m_prop.collisionbox; box.MinEdge *= BS; diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index 110d2010d..0d31f2e0b 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -260,10 +260,13 @@ void PlayerSAO::step(float dtime, bool send_recommended) // otherwise it's calculated normally. // If the object gets detached this comes into effect automatically from // the last known origin. - if (isAttached()) { - v3f pos = m_env->getActiveObject(m_attachment_parent_id)->getBasePosition(); + if (auto *parent = getParent()) { + v3f pos = parent->getBasePosition(); m_last_good_position = pos; setBasePosition(pos); + + if (m_player) + m_player->setSpeed(v3f()); } if (!send_recommended) @@ -570,34 +573,11 @@ void PlayerSAO::setMaxSpeedOverride(const v3f &vel) bool PlayerSAO::checkMovementCheat() { if (m_is_singleplayer || + isAttached() || g_settings->getBool("disable_anticheat")) { m_last_good_position = m_base_position; return false; } - if (UnitSAO *parent = dynamic_cast(getParent())) { - v3f attachment_pos; - { - int parent_id; - std::string bone; - v3f attachment_rot; - bool force_visible; - getAttachment(&parent_id, &bone, &attachment_pos, &attachment_rot, &force_visible); - } - - v3f parent_pos = parent->getBasePosition(); - f32 diff = m_base_position.getDistanceFromSQ(parent_pos) - attachment_pos.getLengthSQ(); - const f32 maxdiff = 4.0f * BS; // fair trade-off value for various latencies - - if (diff > maxdiff * maxdiff) { - setBasePosition(parent_pos); - actionstream << "Server: " << m_player->getName() - << " moved away from parent; diff=" << sqrtf(diff) / BS - << " resetting position." << std::endl; - return true; - } - // Player movement is locked to the entity. Skip further checks - return false; - } bool cheated = false; /* From a8f6befd398cb8f962f3bb1fab092d6355bfe015 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 17 Feb 2021 18:53:44 +0000 Subject: [PATCH 519/624] Fix short_description fallback order (#10943) --- builtin/game/register.lua | 4 ---- doc/lua_api.txt | 13 +++++++------ games/devtest/mods/unittests/itemdescription.lua | 11 +++++++++-- src/script/common/c_content.cpp | 6 ++++-- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/builtin/game/register.lua b/builtin/game/register.lua index b006957e9..1cff85813 100644 --- a/builtin/game/register.lua +++ b/builtin/game/register.lua @@ -118,10 +118,6 @@ function core.register_item(name, itemdef) end itemdef.name = name - -- default short_description to first line of description - itemdef.short_description = itemdef.short_description or - (itemdef.description or ""):gsub("\n.*","") - -- Apply defaults and add to registered_* table if itemdef.type == "node" then -- Use the nodebox as selection box if it's not set manually diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 7b7825614..a09b98924 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6039,18 +6039,18 @@ an itemstring, a table or `nil`. stack). * `set_metadata(metadata)`: (DEPRECATED) Returns true. * `get_description()`: returns the description shown in inventory list tooltips. - * The engine uses the same as this function for item descriptions. + * The engine uses this when showing item descriptions in tooltips. * Fields for finding the description, in order: * `description` in item metadata (See [Item Metadata].) * `description` in item definition * item name -* `get_short_description()`: returns the short description. +* `get_short_description()`: returns the short description or nil. * Unlike the description, this does not include new lines. - * The engine uses the same as this function for short item descriptions. * Fields for finding the short description, in order: * `short_description` in item metadata (See [Item Metadata].) * `short_description` in item definition - * first line of the description (See `get_description()`.) + * first line of the description (From item meta or def, see `get_description()`.) + * Returns nil if none of the above are set * `clear()`: removes all items from the stack, making it empty. * `replace(item)`: replace the contents of this stack. * `item` can also be an itemstring or table. @@ -7171,8 +7171,9 @@ Used by `minetest.register_node`, `minetest.register_craftitem`, and short_description = "Steel Axe", -- Must not contain new lines. - -- Defaults to the first line of description. - -- See also: `get_short_description` in [`ItemStack`] + -- Defaults to nil. + -- Use an [`ItemStack`] to get the short description, eg: + -- ItemStack(itemname):get_short_description() groups = {}, -- key = name, value = rating; rating = 1..3. diff --git a/games/devtest/mods/unittests/itemdescription.lua b/games/devtest/mods/unittests/itemdescription.lua index 1d0826545..d6ee6551a 100644 --- a/games/devtest/mods/unittests/itemdescription.lua +++ b/games/devtest/mods/unittests/itemdescription.lua @@ -26,15 +26,22 @@ minetest.register_chatcommand("item_description", { }) function unittests.test_short_desc() + local function get_short_description(item) + return ItemStack(item):get_short_description() + end + local stack = ItemStack("unittests:colorful_pick") assert(stack:get_short_description() == "Colorful Pickaxe") - assert(stack:get_short_description() == minetest.registered_items["unittests:colorful_pick"].short_description) + assert(get_short_description("unittests:colorful_pick") == "Colorful Pickaxe") + assert(minetest.registered_items["unittests:colorful_pick"].short_description == nil) assert(stack:get_description() == full_description) assert(stack:get_description() == minetest.registered_items["unittests:colorful_pick"].description) stack:get_meta():set_string("description", "Hello World") - assert(stack:get_short_description() == "Colorful Pickaxe") + assert(stack:get_short_description() == "Hello World") assert(stack:get_description() == "Hello World") + assert(get_short_description(stack) == "Hello World") + assert(get_short_description("unittests:colorful_pick") == "Colorful Pickaxe") stack:get_meta():set_string("short_description", "Foo Bar") assert(stack:get_short_description() == "Foo Bar") diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index ecab7baa1..2f9fbd74b 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -140,8 +140,10 @@ void push_item_definition_full(lua_State *L, const ItemDefinition &i) lua_setfield(L, -2, "name"); lua_pushstring(L, i.description.c_str()); lua_setfield(L, -2, "description"); - lua_pushstring(L, i.short_description.c_str()); - lua_setfield(L, -2, "short_description"); + if (!i.short_description.empty()) { + lua_pushstring(L, i.short_description.c_str()); + lua_setfield(L, -2, "short_description"); + } lua_pushstring(L, type.c_str()); lua_setfield(L, -2, "type"); lua_pushstring(L, i.inventory_image.c_str()); From f85e9ab9254e2ae4ac13170f9edea00fb8d931a2 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 17 Feb 2021 19:51:28 +0000 Subject: [PATCH 520/624] Add nametag background setting and object property (#10937) --- .clang-format | 1 + builtin/settingtypes.txt | 4 ++ doc/lua_api.txt | 18 +++-- games/devtest/mods/testentities/visuals.lua | 16 ++++- src/activeobjectmgr.h | 3 +- src/client/camera.cpp | 33 ++++----- src/client/camera.h | 47 +++++++++---- src/client/content_cao.cpp | 12 ++-- src/defaultsettings.cpp | 1 + src/object_properties.cpp | 22 ++++++ src/object_properties.h | 2 + src/script/common/c_content.cpp | 18 +++++ src/script/common/helper.cpp | 24 ++++--- src/script/common/helper.h | 3 +- src/script/lua_api/l_object.cpp | 29 +++++++- src/util/Optional.h | 77 +++++++++++++++++++++ src/util/serialize.h | 2 +- 17 files changed, 254 insertions(+), 58 deletions(-) create mode 100644 src/util/Optional.h diff --git a/.clang-format b/.clang-format index dc7380ffd..0db8ab167 100644 --- a/.clang-format +++ b/.clang-format @@ -29,3 +29,4 @@ AlignAfterOpenBracket: DontAlign ContinuationIndentWidth: 16 ConstructorInitializerIndentWidth: 16 BreakConstructorInitializers: AfterColon +AlwaysBreakTemplateDeclarations: Yes diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 8b6227b37..f800f71ab 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -451,6 +451,10 @@ keymap_decrease_viewing_range_min (View range decrease key) key - [**Basic] +# Whether nametag backgrounds should be shown by default. +# Mods may still set a background. +show_nametag_backgrounds (Show nametag backgrounds by default) bool true + # Enable vertex buffer objects. # This should greatly improve graphics performance. enable_vbo (VBO) bool true diff --git a/doc/lua_api.txt b/doc/lua_api.txt index a09b98924..a9c3bcdd9 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -6274,15 +6274,21 @@ object you are working with still exists. * `get_nametag_attributes()` * returns a table with the attributes of the nametag of an object * { - color = {a=0..255, r=0..255, g=0..255, b=0..255}, text = "", + color = {a=0..255, r=0..255, g=0..255, b=0..255}, + bgcolor = {a=0..255, r=0..255, g=0..255, b=0..255}, } * `set_nametag_attributes(attributes)` * sets the attributes of the nametag of an object * `attributes`: { - color = ColorSpec, text = "My Nametag", + color = ColorSpec, + -- ^ Text color + bgcolor = ColorSpec or false, + -- ^ Sets background color of nametag + -- `false` will cause the background to be set automatically based on user settings + -- Default: false } #### Lua entity only (no-op for other objects) @@ -6956,9 +6962,13 @@ Player properties need to be saved manually. -- For all other objects, a nil or empty string removes the nametag. -- To hide a nametag, set its color alpha to zero. That will disable it entirely. - nametag_color = , - -- Sets color of nametag + -- Sets text color of nametag + + nametag_bgcolor = , + -- Sets background color of nametag + -- `false` will cause the background to be set automatically based on user settings. + -- Default: false infotext = "", -- By default empty, text to be shown when pointed at object diff --git a/games/devtest/mods/testentities/visuals.lua b/games/devtest/mods/testentities/visuals.lua index e3b758329..e382ec44c 100644 --- a/games/devtest/mods/testentities/visuals.lua +++ b/games/devtest/mods/testentities/visuals.lua @@ -103,23 +103,35 @@ minetest.register_entity("testentities:nametag", { on_activate = function(self, staticdata) if staticdata ~= "" then - self.color = minetest.deserialize(staticdata).color + local data = minetest.deserialize(staticdata) + self.color = data.color + self.bgcolor = data.bgcolor else self.color = { r = math.random(0, 255), g = math.random(0, 255), b = math.random(0, 255), } + + if math.random(0, 10) > 5 then + self.bgcolor = { + r = math.random(0, 255), + g = math.random(0, 255), + b = math.random(0, 255), + a = math.random(0, 255), + } + end end assert(self.color) self.object:set_properties({ nametag = tostring(math.random(1000, 10000)), nametag_color = self.color, + nametag_bgcolor = self.bgcolor, }) end, get_staticdata = function(self) - return minetest.serialize({ color = self.color }) + return minetest.serialize({ color = self.color, bgcolor = self.bgcolor }) end, }) diff --git a/src/activeobjectmgr.h b/src/activeobjectmgr.h index 95e7d3344..aa0538e60 100644 --- a/src/activeobjectmgr.h +++ b/src/activeobjectmgr.h @@ -25,7 +25,8 @@ with this program; if not, write to the Free Software Foundation, Inc., class TestClientActiveObjectMgr; class TestServerActiveObjectMgr; -template class ActiveObjectMgr +template +class ActiveObjectMgr { friend class ::TestClientActiveObjectMgr; friend class ::TestServerActiveObjectMgr; diff --git a/src/client/camera.cpp b/src/client/camera.cpp index 9a08254b4..350b685e1 100644 --- a/src/client/camera.cpp +++ b/src/client/camera.cpp @@ -79,6 +79,7 @@ Camera::Camera(MapDrawControl &draw_control, Client *client): m_cache_fov = std::fmax(g_settings->getFloat("fov"), 45.0f); m_arm_inertia = g_settings->getBool("arm_inertia"); m_nametags.clear(); + m_show_nametag_backgrounds = g_settings->getBool("show_nametag_backgrounds"); } Camera::~Camera() @@ -696,18 +697,14 @@ void Camera::drawNametags() v2u32 screensize = driver->getScreenSize(); for (const Nametag *nametag : m_nametags) { - if (nametag->nametag_color.getAlpha() == 0) { - // Enforce hiding nametag, - // because if freetype is enabled, a grey - // shadow can remain. - continue; - } - v3f pos = nametag->parent_node->getAbsolutePosition() + nametag->nametag_pos * BS; + // Nametags are hidden in GenericCAO::updateNametag() + + v3f pos = nametag->parent_node->getAbsolutePosition() + nametag->pos * BS; f32 transformed_pos[4] = { pos.X, pos.Y, pos.Z, 1.0f }; trans.multiplyWith1x4Matrix(transformed_pos); if (transformed_pos[3] > 0) { std::wstring nametag_colorless = - unescape_translate(utf8_to_wide(nametag->nametag_text)); + unescape_translate(utf8_to_wide(nametag->text)); core::dimension2d textsize = font->getDimension( nametag_colorless.c_str()); f32 zDiv = transformed_pos[3] == 0.0f ? 1.0f : @@ -720,26 +717,22 @@ void Camera::drawNametags() core::rect size(0, 0, textsize.Width, textsize.Height); core::rect bg_size(-2, 0, textsize.Width+2, textsize.Height); - video::SColor textColor = nametag->nametag_color; - - bool darkBackground = textColor.getLuminance() > 186; - video::SColor backgroundColor = darkBackground - ? video::SColor(50, 50, 50, 50) - : video::SColor(50, 255, 255, 255); - driver->draw2DRectangle(backgroundColor, bg_size + screen_pos); + auto bgcolor = nametag->getBgColor(m_show_nametag_backgrounds); + if (bgcolor.getAlpha() != 0) + driver->draw2DRectangle(bgcolor, bg_size + screen_pos); font->draw( - translate_string(utf8_to_wide(nametag->nametag_text)).c_str(), - size + screen_pos, textColor); + translate_string(utf8_to_wide(nametag->text)).c_str(), + size + screen_pos, nametag->textcolor); } } } Nametag *Camera::addNametag(scene::ISceneNode *parent_node, - const std::string &nametag_text, video::SColor nametag_color, - const v3f &pos) + const std::string &text, video::SColor textcolor, + Optional bgcolor, const v3f &pos) { - Nametag *nametag = new Nametag(parent_node, nametag_text, nametag_color, pos); + Nametag *nametag = new Nametag(parent_node, text, textcolor, bgcolor, pos); m_nametags.push_back(nametag); return nametag; } diff --git a/src/client/camera.h b/src/client/camera.h index 16a1961be..6fd8d9aa7 100644 --- a/src/client/camera.h +++ b/src/client/camera.h @@ -25,27 +25,47 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include +#include "util/Optional.h" class LocalPlayer; struct MapDrawControl; class Client; class WieldMeshSceneNode; -struct Nametag { +struct Nametag +{ + scene::ISceneNode *parent_node; + std::string text; + video::SColor textcolor; + Optional bgcolor; + v3f pos; + Nametag(scene::ISceneNode *a_parent_node, - const std::string &a_nametag_text, - const video::SColor &a_nametag_color, - const v3f &a_nametag_pos): + const std::string &text, + const video::SColor &textcolor, + const Optional &bgcolor, + const v3f &pos): parent_node(a_parent_node), - nametag_text(a_nametag_text), - nametag_color(a_nametag_color), - nametag_pos(a_nametag_pos) + text(text), + textcolor(textcolor), + bgcolor(bgcolor), + pos(pos) { } - scene::ISceneNode *parent_node; - std::string nametag_text; - video::SColor nametag_color; - v3f nametag_pos; + + video::SColor getBgColor(bool use_fallback) const + { + if (bgcolor) + return bgcolor.value(); + else if (!use_fallback) + return video::SColor(0, 0, 0, 0); + else if (textcolor.getLuminance() > 186) + // Dark background for light text + return video::SColor(50, 50, 50, 50); + else + // Light background for dark text + return video::SColor(50, 255, 255, 255); + } }; enum CameraMode {CAMERA_MODE_FIRST, CAMERA_MODE_THIRD, CAMERA_MODE_THIRD_FRONT}; @@ -164,8 +184,8 @@ public: } Nametag *addNametag(scene::ISceneNode *parent_node, - const std::string &nametag_text, video::SColor nametag_color, - const v3f &pos); + const std::string &text, video::SColor textcolor, + Optional bgcolor, const v3f &pos); void removeNametag(Nametag *nametag); @@ -245,4 +265,5 @@ private: bool m_arm_inertia; std::list m_nametags; + bool m_show_nametag_backgrounds; }; diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index c65977b44..97ae9afc4 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -934,7 +934,7 @@ void GenericCAO::updateNametag() if (m_is_local_player) // No nametag for local player return; - if (m_prop.nametag.empty()) { + if (m_prop.nametag.empty() || m_prop.nametag_color.getAlpha() == 0) { // Delete nametag if (m_nametag) { m_client->getCamera()->removeNametag(m_nametag); @@ -952,12 +952,14 @@ void GenericCAO::updateNametag() if (!m_nametag) { // Add nametag m_nametag = m_client->getCamera()->addNametag(node, - m_prop.nametag, m_prop.nametag_color, pos); + m_prop.nametag, m_prop.nametag_color, + m_prop.nametag_bgcolor, pos); } else { // Update nametag - m_nametag->nametag_text = m_prop.nametag; - m_nametag->nametag_color = m_prop.nametag_color; - m_nametag->nametag_pos = pos; + m_nametag->text = m_prop.nametag; + m_nametag->textcolor = m_prop.nametag_color; + m_nametag->bgcolor = m_prop.nametag_bgcolor; + m_nametag->pos = pos; } } diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 41c4922a4..cda953082 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -240,6 +240,7 @@ void set_default_settings() #endif settings->setDefault("enable_particles", "true"); settings->setDefault("arm_inertia", "true"); + settings->setDefault("show_nametag_backgrounds", "true"); settings->setDefault("enable_minimap", "true"); settings->setDefault("minimap_shape_round", "true"); diff --git a/src/object_properties.cpp b/src/object_properties.cpp index f31773060..2eebc27d6 100644 --- a/src/object_properties.cpp +++ b/src/object_properties.cpp @@ -24,6 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/basic_macros.h" #include +static const video::SColor NULL_BGCOLOR{0, 1, 1, 1}; + ObjectProperties::ObjectProperties() { textures.emplace_back("unknown_object.png"); @@ -62,6 +64,13 @@ std::string ObjectProperties::dump() os << ", nametag=" << nametag; os << ", nametag_color=" << "\"" << nametag_color.getAlpha() << "," << nametag_color.getRed() << "," << nametag_color.getGreen() << "," << nametag_color.getBlue() << "\" "; + + if (nametag_bgcolor) + os << ", nametag_bgcolor=" << "\"" << nametag_color.getAlpha() << "," << nametag_color.getRed() + << "," << nametag_color.getGreen() << "," << nametag_color.getBlue() << "\" "; + else + os << ", nametag_bgcolor=null "; + os << ", selectionbox=" << PP(selectionbox.MinEdge) << "," << PP(selectionbox.MaxEdge); os << ", pointable=" << pointable; os << ", static_save=" << static_save; @@ -121,6 +130,13 @@ void ObjectProperties::serialize(std::ostream &os) const writeU8(os, shaded); writeU8(os, show_on_minimap); + if (!nametag_bgcolor) + writeARGB8(os, NULL_BGCOLOR); + else if (nametag_bgcolor.value().getAlpha() == 0) + writeARGB8(os, video::SColor(0, 0, 0, 0)); + else + writeARGB8(os, nametag_bgcolor.value()); + // Add stuff only at the bottom. // Never remove anything, because we don't want new versions of this } @@ -182,5 +198,11 @@ void ObjectProperties::deSerialize(std::istream &is) if (is.eof()) return; show_on_minimap = tmp; + + auto bgcolor = readARGB8(is); + if (bgcolor != NULL_BGCOLOR) + nametag_bgcolor = bgcolor; + else + nametag_bgcolor = nullopt; } catch (SerializationError &e) {} } diff --git a/src/object_properties.h b/src/object_properties.h index adb483527..db28eebfd 100644 --- a/src/object_properties.h +++ b/src/object_properties.h @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include +#include "util/Optional.h" struct ObjectProperties { @@ -53,6 +54,7 @@ struct ObjectProperties s8 glow = 0; std::string nametag = ""; video::SColor nametag_color = video::SColor(255, 255, 255, 255); + Optional nametag_bgcolor = nullopt; f32 automatic_face_movement_max_rotation_per_sec = -1.0f; std::string infotext; //! For dropped items, this contains item information. diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 2f9fbd74b..6995f6b61 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -312,6 +312,17 @@ void read_object_properties(lua_State *L, int index, prop->nametag_color = color; } lua_pop(L, 1); + lua_getfield(L, -1, "nametag_bgcolor"); + if (!lua_isnil(L, -1)) { + if (lua_toboolean(L, -1)) { + video::SColor color; + if (read_color(L, -1, &color)) + prop->nametag_bgcolor = color; + } else { + prop->nametag_bgcolor = nullopt; + } + } + lua_pop(L, 1); lua_getfield(L, -1, "automatic_face_movement_max_rotation_per_sec"); if (lua_isnumber(L, -1)) { @@ -403,6 +414,13 @@ void push_object_properties(lua_State *L, ObjectProperties *prop) lua_setfield(L, -2, "nametag"); push_ARGB8(L, prop->nametag_color); lua_setfield(L, -2, "nametag_color"); + if (prop->nametag_bgcolor) { + push_ARGB8(L, prop->nametag_bgcolor.value()); + lua_setfield(L, -2, "nametag_bgcolor"); + } else { + lua_pushboolean(L, false); + lua_setfield(L, -2, "nametag_bgcolor"); + } lua_pushnumber(L, prop->automatic_face_movement_max_rotation_per_sec); lua_setfield(L, -2, "automatic_face_movement_max_rotation_per_sec"); lua_pushlstring(L, prop->infotext.c_str(), prop->infotext.size()); diff --git a/src/script/common/helper.cpp b/src/script/common/helper.cpp index 488144790..fbf24e1b7 100644 --- a/src/script/common/helper.cpp +++ b/src/script/common/helper.cpp @@ -50,22 +50,26 @@ bool LuaHelper::isNaN(lua_State *L, int idx) /* * Read template functions */ -template <> bool LuaHelper::readParam(lua_State *L, int index) +template <> +bool LuaHelper::readParam(lua_State *L, int index) { return lua_toboolean(L, index) != 0; } -template <> s16 LuaHelper::readParam(lua_State *L, int index) +template <> +s16 LuaHelper::readParam(lua_State *L, int index) { return lua_tonumber(L, index); } -template <> int LuaHelper::readParam(lua_State *L, int index) +template <> +int LuaHelper::readParam(lua_State *L, int index) { return luaL_checkint(L, index); } -template <> float LuaHelper::readParam(lua_State *L, int index) +template <> +float LuaHelper::readParam(lua_State *L, int index) { if (isNaN(L, index)) throw LuaError("NaN value is not allowed."); @@ -73,7 +77,8 @@ template <> float LuaHelper::readParam(lua_State *L, int index) return (float)luaL_checknumber(L, index); } -template <> v2s16 LuaHelper::readParam(lua_State *L, int index) +template <> +v2s16 LuaHelper::readParam(lua_State *L, int index) { v2s16 p; CHECK_POS_TAB(index); @@ -88,7 +93,8 @@ template <> v2s16 LuaHelper::readParam(lua_State *L, int index) return p; } -template <> v2f LuaHelper::readParam(lua_State *L, int index) +template <> +v2f LuaHelper::readParam(lua_State *L, int index) { v2f p; CHECK_POS_TAB(index); @@ -103,7 +109,8 @@ template <> v2f LuaHelper::readParam(lua_State *L, int index) return p; } -template <> v3f LuaHelper::readParam(lua_State *L, int index) +template <> +v3f LuaHelper::readParam(lua_State *L, int index) { v3f p; CHECK_POS_TAB(index); @@ -122,7 +129,8 @@ template <> v3f LuaHelper::readParam(lua_State *L, int index) return p; } -template <> std::string LuaHelper::readParam(lua_State *L, int index) +template <> +std::string LuaHelper::readParam(lua_State *L, int index) { size_t length; std::string result; diff --git a/src/script/common/helper.h b/src/script/common/helper.h index 7a794dc9b..6491e73cf 100644 --- a/src/script/common/helper.h +++ b/src/script/common/helper.h @@ -38,7 +38,8 @@ protected: * @param index Lua Index to read * @return read value from Lua */ - template static T readParam(lua_State *L, int index); + template + static T readParam(lua_State *L, int index); /** * Read a value using a template type T from Lua State L and index diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 07aa3f7c9..8ae99b929 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -737,6 +737,18 @@ int ObjectRef::l_set_nametag_attributes(lua_State *L) } lua_pop(L, 1); + lua_getfield(L, -1, "bgcolor"); + if (!lua_isnil(L, -1)) { + if (lua_toboolean(L, -1)) { + video::SColor color; + if (read_color(L, -1, &color)) + prop->nametag_bgcolor = color; + } else { + prop->nametag_bgcolor = nullopt; + } + } + lua_pop(L, 1); + std::string nametag = getstringfield_default(L, 2, "text", ""); prop->nametag = nametag; @@ -758,13 +770,24 @@ int ObjectRef::l_get_nametag_attributes(lua_State *L) if (!prop) return 0; - video::SColor color = prop->nametag_color; - lua_newtable(L); - push_ARGB8(L, color); + + push_ARGB8(L, prop->nametag_color); lua_setfield(L, -2, "color"); + + if (prop->nametag_bgcolor) { + push_ARGB8(L, prop->nametag_bgcolor.value()); + lua_setfield(L, -2, "bgcolor"); + } else { + lua_pushboolean(L, false); + lua_setfield(L, -2, "bgcolor"); + } + lua_pushstring(L, prop->nametag.c_str()); lua_setfield(L, -2, "text"); + + + return 1; } diff --git a/src/util/Optional.h b/src/util/Optional.h new file mode 100644 index 000000000..9c2842b43 --- /dev/null +++ b/src/util/Optional.h @@ -0,0 +1,77 @@ +/* +Minetest +Copyright (C) 2021 rubenwardy + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#pragma once + +#include "debug.h" + +struct nullopt_t +{ +}; +constexpr nullopt_t nullopt{}; + +/** + * An implementation of optional for C++11, which aims to be + * compatible with a subset of std::optional features. + * + * Unfortunately, Minetest doesn't use C++17 yet. + * + * @tparam T The type to be stored + */ +template +class Optional +{ + bool m_has_value = false; + T m_value; + +public: + Optional() noexcept {} + Optional(nullopt_t) noexcept {} + Optional(const T &value) noexcept : m_has_value(true), m_value(value) {} + Optional(const Optional &other) noexcept : + m_has_value(other.m_has_value), m_value(other.m_value) + { + } + + void operator=(nullopt_t) noexcept { m_has_value = false; } + + void operator=(const Optional &other) noexcept + { + m_has_value = other.m_has_value; + m_value = other.m_value; + } + + T &value() + { + FATAL_ERROR_IF(!m_has_value, "optional doesn't have value"); + return m_value; + } + + const T &value() const + { + FATAL_ERROR_IF(!m_has_value, "optional doesn't have value"); + return m_value; + } + + const T &value_or(const T &def) const { return m_has_value ? m_value : def; } + + bool has_value() const noexcept { return m_has_value; } + + explicit operator bool() const { return m_has_value; } +}; diff --git a/src/util/serialize.h b/src/util/serialize.h index b3ec28eab..15bdd050d 100644 --- a/src/util/serialize.h +++ b/src/util/serialize.h @@ -290,7 +290,7 @@ inline void writeS8(u8 *data, s8 i) inline void writeS16(u8 *data, s16 i) { - writeU16(data, (u16)i); + writeU16(data, (u16)i); } inline void writeS32(u8 *data, s32 i) From b2ab5fd1615ac5f907e43992d0905a56cddf798f Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein <54945686+EliasFleckenstein03@users.noreply.github.com> Date: Thu, 18 Feb 2021 15:39:04 +0100 Subject: [PATCH 521/624] Replace deprecated call to add_player_velocity in builtin (#10968) --- builtin/game/knockback.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/game/knockback.lua b/builtin/game/knockback.lua index b5c4cbc5a..a937aa186 100644 --- a/builtin/game/knockback.lua +++ b/builtin/game/knockback.lua @@ -42,5 +42,5 @@ core.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool return -- barely noticeable, so don't even send end - player:add_player_velocity(kdir) + player:add_velocity(kdir) end) From e441ab9675238b9530cf6ab1911fa9b5fd4ae13e Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 19 Feb 2021 18:45:36 +0000 Subject: [PATCH 522/624] Fix world-aligned node rendering at bottom (#10742) --- src/client/mapblock_mesh.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index d78a86b2d..167e1e3ec 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -404,7 +404,7 @@ static void getNodeVertexDirs(const v3s16 &dir, v3s16 *vertex_dirs) static void getNodeTextureCoords(v3f base, const v3f &scale, const v3s16 &dir, float *u, float *v) { - if (dir.X > 0 || dir.Y > 0 || dir.Z < 0) + if (dir.X > 0 || dir.Y != 0 || dir.Z < 0) base -= scale; if (dir == v3s16(0,0,1)) { *u = -base.X - 1; @@ -422,8 +422,8 @@ static void getNodeTextureCoords(v3f base, const v3f &scale, const v3s16 &dir, f *u = base.X + 1; *v = -base.Z - 2; } else if (dir == v3s16(0,-1,0)) { - *u = base.X; - *v = base.Z; + *u = base.X + 1; + *v = base.Z + 1; } } From c12e9cdcba6b4183de6df4fd05f61a06f804642c Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 19 Feb 2021 18:59:48 +0000 Subject: [PATCH 523/624] Fail gracefully if main_menu_script has bad value (#10938) Builtin: Move :close() before dofile --- builtin/init.lua | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/builtin/init.lua b/builtin/init.lua index 75bb3db85..89b1fdc64 100644 --- a/builtin/init.lua +++ b/builtin/init.lua @@ -39,9 +39,20 @@ if INIT == "game" then assert(not core.get_http_api) elseif INIT == "mainmenu" then local mm_script = core.settings:get("main_menu_script") + local custom_loaded = false if mm_script and mm_script ~= "" then - dofile(mm_script) - else + local testfile = io.open(mm_script, "r") + if testfile then + testfile:close() + dofile(mm_script) + custom_loaded = true + core.log("info", "Loaded custom main menu script: "..mm_script) + else + core.log("error", "Failed to load custom main menu script: "..mm_script) + core.log("info", "Falling back to default main menu script") + end + end + if not custom_loaded then dofile(core.get_mainmenu_path() .. DIR_DELIM .. "init.lua") end elseif INIT == "async" then From 051e4c2b00a30c496b5545a6f0b01c9a14e937a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= <34514239+appgurueu@users.noreply.github.com> Date: Sun, 21 Feb 2021 20:02:23 +0100 Subject: [PATCH 524/624] Fix wrong reported item counts for inventory actions using Shift-Move (#10930) --- games/devtest/mods/chest/init.lua | 16 +++++++++++++-- src/inventorymanager.cpp | 33 +++++++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/games/devtest/mods/chest/init.lua b/games/devtest/mods/chest/init.lua index fc92bfdd1..5798c13e7 100644 --- a/games/devtest/mods/chest/init.lua +++ b/games/devtest/mods/chest/init.lua @@ -23,6 +23,18 @@ minetest.register_node("chest:chest", { local inv = meta:get_inventory() return inv:is_empty("main") end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.chat_send_player(player:get_player_name(), "Allow put: " .. stack:to_string()) + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.chat_send_player(player:get_player_name(), "Allow take: " .. stack:to_string()) + return stack:get_count() + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.chat_send_player(player:get_player_name(), "On put: " .. stack:to_string()) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.chat_send_player(player:get_player_name(), "On take: " .. stack:to_string()) + end, }) - - diff --git a/src/inventorymanager.cpp b/src/inventorymanager.cpp index 635bd2e4b..554708e8e 100644 --- a/src/inventorymanager.cpp +++ b/src/inventorymanager.cpp @@ -301,6 +301,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame if (!list_to->getItem(dest_i).empty()) { to_i = dest_i; apply(mgr, player, gamedef); + assert(move_count <= count); count -= move_count; } } @@ -352,10 +353,12 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame bool allow_swap = !list_to->itemFits(to_i, src_item, &restitem) && restitem.count == src_item.count && !caused_by_move_somewhere; + move_count = src_item.count - restitem.count; // Shift-click: Cannot fill this stack, proceed with next slot - if (caused_by_move_somewhere && restitem.count == src_item.count) + if (caused_by_move_somewhere && move_count == 0) { return; + } if (allow_swap) { // Swap will affect the entire stack if it can performed. @@ -384,9 +387,16 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame src_can_take_count = dst_can_put_count = 0; } else { // Take from one inventory, put into another + int src_item_count = src_item.count; + if (caused_by_move_somewhere) + // When moving somewhere: temporarily use the actual movable stack + // size to ensure correct callback execution. + src_item.count = move_count; dst_can_put_count = allowPut(src_item, player); src_can_take_count = allowTake(src_item, player); - + if (caused_by_move_somewhere) + // Reset source item count + src_item.count = src_item_count; bool swap_expected = allow_swap; allow_swap = allow_swap && (src_can_take_count == -1 || src_can_take_count >= src_item.count) @@ -416,12 +426,17 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame count = src_can_take_count; if (dst_can_put_count != -1 && count > dst_can_put_count) count = dst_can_put_count; + /* Limit according to source item count */ if (count > list_from->getItem(from_i).count) count = list_from->getItem(from_i).count; /* If no items will be moved, don't go further */ if (count == 0) { + if (caused_by_move_somewhere) + // Set move count to zero, as no items have been moved + move_count = 0; + // Undo client prediction. See 'clientApply' if (from_inv.type == InventoryLocation::PLAYER) list_from->setModified(); @@ -438,6 +453,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame <<" list=\""<mode = MinimapModeDef{MINIMAP_TYPE_OFF, gettext("Minimap hidden"), 0, 0, ""}; m_current_mode_index = 0; } @@ -330,25 +330,26 @@ void Minimap::addMode(MinimapModeDef mode) if (mode.label == "") { switch (mode.type) { case MINIMAP_TYPE_OFF: - mode.label = N_("Minimap hidden"); + mode.label = gettext("Minimap hidden"); break; case MINIMAP_TYPE_SURFACE: - mode.label = N_("Minimap in surface mode, Zoom x%d"); + mode.label = gettext("Minimap in surface mode, Zoom x%d"); if (mode.map_size > 0) zoom = 256 / mode.map_size; break; case MINIMAP_TYPE_RADAR: - mode.label = N_("Minimap in radar mode, Zoom x%d"); + mode.label = gettext("Minimap in radar mode, Zoom x%d"); if (mode.map_size > 0) zoom = 512 / mode.map_size; break; case MINIMAP_TYPE_TEXTURE: - mode.label = N_("Minimap in texture mode"); + mode.label = gettext("Minimap in texture mode"); break; default: break; } } + // else: Custom labels need mod-provided client-side translation if (zoom >= 0) { char label_buf[1024]; From 1539c377de9b94af57eab1ac52bd698fb1c97e1b Mon Sep 17 00:00:00 2001 From: Bernd Ritter Date: Sun, 31 Jan 2021 14:51:25 +0000 Subject: [PATCH 526/624] Translated using Weblate (German) Currently translated at 99.6% (1348 of 1353 strings) --- po/de/minetest.po | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/po/de/minetest.po b/po/de/minetest.po index 0a202df74..bd0aaca7e 100644 --- a/po/de/minetest.po +++ b/po/de/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: German (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-06-15 22:41+0000\n" -"Last-Translator: Wuzzy \n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"Last-Translator: Bernd Ritter \n" "Language-Team: German \n" "Language: de\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -7001,6 +7001,14 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"Benutze multi-sample antialiasing (MSAA) um Blockecken zu glätten.\n" +"Dieser Algorithmus glättet das 3D-Sichtfeld während das Bild scharf bleibt,\n" +"beeinträchtigt jedoch nicht die Textureninnenflächen\n" +"(was sich insbesondere bei transparenten Texturen bemerkbar macht).\n" +"Sichtbare Lücken erscheinen zwischen Blöcken wenn Shader ausgeschaltet sind.." +"\n" +"Wenn der Wert auf 0 steht, ist MSAA deaktiviert..\n" +"Ein Neustart ist erforderlich, nachdem diese Option geändert worden ist.." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." From 25e8e2dcdf0af53326bdf79d2860ae8733ac305f Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 30 Jan 2021 21:40:01 +0000 Subject: [PATCH 527/624] Translated using Weblate (German) Currently translated at 99.6% (1348 of 1353 strings) --- po/de/minetest.po | 263 ++++++++++++++++++++++++---------------------- 1 file changed, 135 insertions(+), 128 deletions(-) diff --git a/po/de/minetest.po b/po/de/minetest.po index bd0aaca7e..f98bf8f2a 100644 --- a/po/de/minetest.po +++ b/po/de/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-02-01 05:52+0000\n" -"Last-Translator: Bernd Ritter \n" +"Last-Translator: sfan5 \n" "Language-Team: German \n" "Language: de\n" @@ -52,11 +52,11 @@ msgstr "Protokollversion stimmt nicht überein. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "Server erfordert Protokollversion $1. " +msgstr "Der Server erfordert Protokollversion $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "Server unterstützt Protokollversionen zwischen $1 und $2. " +msgstr "Der Server unterstützt die Protokollversionen von $1 bis $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." @@ -103,8 +103,8 @@ msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"Fehler beim Aktivieren der Mod „$1“, da sie unerlaubte Zeichen enthält. Nur " -"die folgenden Zeichen sind erlaubt: [a-z0-9_]." +"Die Modifikation „$1“ konnte nicht aktiviert werden, da sie unzulässige " +"Zeichen enthält. Nur die folgenden Zeichen sind erlaubt: [a-z0-9_]." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" @@ -124,7 +124,7 @@ msgstr "Keine Spielbeschreibung verfügbar." #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "Keine harten Abhängigkeiten" +msgstr "Keine notwendigen Abhängigkeiten" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -145,7 +145,7 @@ msgstr "Speichern" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "Welt:" +msgstr "Weltname:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" @@ -153,52 +153,51 @@ msgstr "Aktiviert" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "„$1“ existiert bereits. Wollen Sie es überschreiben?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "$1 und $2 Abhängigkeiten werden installiert." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 von $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 laden herunter,\n" +"$2 warten" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Herunterladen …" +msgstr "$1 laden herunter…" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 benötigte Abhängigkeiten konnten nicht gefunden werden." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 wird installiert und $2 Abhängigkeiten werden übersprungen." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Alle Pakete" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Taste bereits in Benutzung" +msgstr "Bereits installiert" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Zurück zum Hauptmenü" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Spiel hosten" +msgstr "Basis-Spiel:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -223,14 +222,12 @@ msgid "Install" msgstr "Installieren" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Installieren" +msgstr "$1 installieren" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Optionale Abhängigkeiten:" +msgstr "Fehlende Abhängigkeiten installieren" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -239,33 +236,31 @@ msgstr "Mods" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "Es konnten keine Pakete empfangen werden" +msgstr "Es konnten keine Pakete abgerufen werden" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "Keine Treffer" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Aktualisieren" +msgstr "Keine Updates" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Ton verstummen" +msgstr "Nicht gefunden" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Überschreiben" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Bitte prüfen Sie ob das Basis-Spiel richtig ist." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "Eingereiht" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -281,11 +276,11 @@ msgstr "Aktualisieren" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Alle aktualisieren [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Mehr Informationen im Webbrowser anschauen" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -378,7 +373,7 @@ msgstr "Seen" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" -"Niedrige Luftfeuchtigkeit und hohe Hitze erzeugen seichte oder " +"Niedrige Luftfeuchtigkeit und große Wärme erzeugen seichte oder " "ausgetrocknete Flüsse" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp @@ -399,7 +394,7 @@ msgstr "Berge" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "Schlammfließen" +msgstr "Erosion" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" @@ -411,11 +406,11 @@ msgstr "Kein Spiel ausgewählt" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "Reduziert Hitze mit der Höhe" +msgstr "Reduziert die Wärme mit der Höhe" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "Reduziert Luftfeuchte mit der Höhe" +msgstr "Reduziert Luftfeuchtigkeit mit der Höhe" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" @@ -423,12 +418,12 @@ msgstr "Flüsse" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "Flüsse am Meeresspiegel" +msgstr "Flüsse auf Meeresspiegelhöhe" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "Seed" +msgstr "Startwert (Seed)" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" @@ -439,13 +434,13 @@ msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" -"Gebäude, die auf dem Gelände auftauchen (keine Wirkung auf von v6 erzeugte " -"Bäume u. Dschungelgras)" +"Strukturen, die auf dem Gelände auftauchen (keine Wirkung auf von v6 " +"erzeugte Bäume u. Dschungelgras)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" msgstr "" -"Gebäude, die auf dem Gelände auftauchen, üblicherweise Bäume und Pflanzen" +"Strukturen, die auf dem Gelände auftauchen, üblicherweise Bäume und Pflanzen" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -489,7 +484,7 @@ msgstr "Es sind keine Spiele installiert." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "Sind Sie sich sicher, dass Sie „$1“ löschen wollen?" +msgstr "Sind Sie sicher, dass „$1“ gelöscht werden soll?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua @@ -499,7 +494,7 @@ msgstr "Entfernen" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "pkgmgr: Fehler beim Löschen von „$1“" +msgstr "pkgmgr: Fehler beim Entfernen von „$1“" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" @@ -507,7 +502,7 @@ msgstr "pkgmgr: Ungültiger Pfad „$1“" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "Welt „$1“ löschen?" +msgstr "Die Welt „$1“ löschen?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" @@ -547,7 +542,7 @@ msgstr "Deaktiviert" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "Ändern" +msgstr "Bearbeiten" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" @@ -599,7 +594,7 @@ msgstr "Datei auswählen" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "Technische Namen zeigen" +msgstr "Techn. Bezeichnung zeigen" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." @@ -670,12 +665,12 @@ msgstr "Fehler bei der Installation von $1 nach $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "Mod installieren: Echter Modname für $1 konnte nicht gefunden werden" +msgstr "Modinstallation: Richtiger Modname für $1 konnte nicht gefunden werden" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Mod installieren: Geeigneter Verzeichnisname für Modpack $1 konnte nicht " +"Modinstallation: Geeigneter Verzeichnisname für Modpack $1 konnte nicht " "gefunden werden" #: builtin/mainmenu/pkgmgr.lua @@ -693,19 +688,19 @@ msgstr "Keine gültige Mod oder Modpack gefunden" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" -msgstr "Fehler bei der Installation von $1 als Texturenpaket" +msgstr "Fehler bei der Texturenpaket-Installation von $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" -msgstr "Fehler bei der Installation eines Spiels als $1" +msgstr "Fehler bei der Spiel-Installation von $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a mod as a $1" -msgstr "Fehler bei der Installation einer Mod als $1" +msgstr "Fehler bei der Mod-Installation von $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" -msgstr "Fehler bei der Installation eines Modpacks als $1" +msgstr "Fehler bei der Modpack-Installation von $1" #: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp msgid "Loading..." @@ -714,12 +709,12 @@ msgstr "Lädt …" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "" -"Versuchen Sie, die öffentliche Serverliste neu zu laden und prüfen Sie Ihre " +"Versuchen Sie die öffentliche Serverliste neu zu laden und prüfen Sie Ihre " "Internetverbindung." #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "Online-Inhalte durchsuchen" +msgstr "Onlineinhalte durchsuchen" #: builtin/mainmenu/tab_content.lua msgid "Content" @@ -770,15 +765,16 @@ msgid "Credits" msgstr "Mitwirkende" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Verzeichnis auswählen" +msgstr "Benutzerdatenverzeichnis öffnen" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Öffnet das Verzeichnis, welches die Welten, Spiele, Mods und\n" +"Texturenpakete des Benutzers enthält im Datei-Manager." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -790,7 +786,7 @@ msgstr "Ehemalige Hauptentwickler" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "Server ankündigen" +msgstr "Server veröffentlichen" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" @@ -814,11 +810,11 @@ msgstr "Server hosten" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "Spiele von ContentDB installieren" +msgstr "Spiele aus ContentDB installieren" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Name" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -829,9 +825,8 @@ msgid "No world created or selected!" msgstr "Keine Welt angegeben oder ausgewählt!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Neues Passwort" +msgstr "Passwort" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -842,9 +837,8 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Welt wählen:" +msgstr "Mods auswählen" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -925,7 +919,7 @@ msgstr "Kantenglättung:" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "Monitorgröße automatisch merken" +msgstr "Fenstergröße merken" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" @@ -933,7 +927,7 @@ msgstr "Bilinearer Filter" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" -msgstr "Tasten ändern" +msgstr "Tastenbelegung" #: builtin/mainmenu/tab_settings.lua msgid "Connected Glass" @@ -957,11 +951,11 @@ msgstr "Kein Filter" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" -msgstr "Keine Mipmap" +msgstr "Kein Mipmapping" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "Blöcke leuchten" +msgstr "Blöcke aufhellen" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" @@ -996,9 +990,8 @@ msgid "Shaders" msgstr "Shader" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Schwebeländer (experimentell)" +msgstr "Shader (experimentell)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1018,11 +1011,11 @@ msgstr "Texturierung:" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "Um Shader zu benutzen, muss der OpenGL-Treiber benutzt werden." +msgstr "Um Shader zu aktivieren, muss der OpenGL-Treiber genutzt werden." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "Tone-Mapping" +msgstr "Dynamikkompression" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" @@ -1078,7 +1071,7 @@ msgstr "Spiel konnte nicht gefunden oder geladen werden: \"" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." -msgstr "Ungültige Spielspezif." +msgstr "Ungültige Spielspezifikationen" #: src/client/clientlauncher.cpp msgid "Main Menu" @@ -1090,7 +1083,7 @@ msgstr "Keine Welt ausgewählt und keine Adresse angegeben. Nichts zu tun." #: src/client/clientlauncher.cpp msgid "Player name too long." -msgstr "Spielername zu lang." +msgstr "Der Spielername ist zu lang." #: src/client/clientlauncher.cpp msgid "Please choose a name!" @@ -1098,7 +1091,7 @@ msgstr "Bitte wählen Sie einen Namen!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "Fehler beim öffnen der ausgewählten Passwort-Datei: " +msgstr "Fehler beim Öffnen der angegebenen Passwortdatei: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " @@ -1122,7 +1115,7 @@ msgid "" "Check debug.txt for details." msgstr "" "\n" -"Siehe debug.txt für Details." +"Für mehr Details siehe debug.txt." #: src/client/game.cpp msgid "- Address: " @@ -1198,7 +1191,7 @@ msgid "Continue" msgstr "Weiter" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1221,12 +1214,12 @@ msgstr "" "- %s: Nach links\n" "- %s: Nach rechts\n" "- %s: Springen/klettern\n" +"- %s: Graben/Schlagen\n" +"- %s: Bauen/Benutzen\n" "- %s: Kriechen/runter\n" "- %s: Gegenstand wegwerfen\n" "- %s: Inventar\n" "- Maus: Drehen/Umschauen\n" -"- Maus links: Graben/Schlagen\n" -"- Maus rechts: Bauen/Benutzen\n" "- Mausrad: Gegenstand wählen\n" "- %s: Chat\n" @@ -1248,7 +1241,7 @@ msgstr "Debug-Infos angezeigt" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "Debug-Infos, Profiler-Graph und Drahtmodell verborgen" +msgstr "Debug-Infos, Profiler und Drahtgitter deaktiviert" #: src/client/game.cpp msgid "" @@ -1288,7 +1281,7 @@ msgstr "Unbegrenzte Sichtweite aktiviert" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "Hauptmenü" +msgstr "Zum Hauptmenü" #: src/client/game.cpp msgid "Exit to OS" @@ -1340,7 +1333,7 @@ msgstr "Gehosteter Server" #: src/client/game.cpp msgid "Item definitions..." -msgstr "Gegenstands-Definitionen …" +msgstr "Gegenstandsdefinitionen …" #: src/client/game.cpp msgid "KiB/s" @@ -1416,7 +1409,7 @@ msgstr "Tonlautstärke" #: src/client/game.cpp msgid "Sound muted" -msgstr "Ton verstummt" +msgstr "Ton stummgeschaltet" #: src/client/game.cpp msgid "Sound system is disabled" @@ -1428,7 +1421,7 @@ msgstr "Tonsystem ist in diesem Build nicht unterstützt" #: src/client/game.cpp msgid "Sound unmuted" -msgstr "Ton nicht mehr verstummt" +msgstr "Ton nicht mehr stumm" #: src/client/game.cpp #, c-format @@ -1452,7 +1445,7 @@ msgstr "Lautstärke auf %d%% gesetzt" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "Drahtmodell angezeigt" +msgstr "Drahtmodell aktiv" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1755,19 +1748,18 @@ msgid "Minimap hidden" msgstr "Übersichtskarte verborgen" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Übersichtskarte im Radarmodus, Zoom ×1" +msgstr "Übersichtskarte im Radarmodus, Zoom ×%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Übersichtskarte im Bodenmodus, Zoom ×1" +msgstr "Übersichtskarte im Bodenmodus, Zoom ×%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Minimale Texturengröße" +msgstr "Übersichtskarte im Texturmodus" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -1873,8 +1865,8 @@ msgstr "Taste bereits in Benutzung" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" -"Steuerung (Falls dieses Menü defekt ist, entfernen Sie Zeugs aus minetest." -"conf)" +"Steuerung (Falls dieses Menü nicht richtig funktioniert, versuchen sie die " +"minetest.conf manuell zu bearbeiten)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" @@ -2188,7 +2180,7 @@ msgstr "ABM-Intervall" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "ABM-Zeitbudget" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2699,7 +2691,7 @@ msgstr "ContentDB: Schwarze Liste" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "ContentDB Max. gleichzeitige Downloads" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2768,11 +2760,12 @@ msgid "Crosshair alpha" msgstr "Fadenkreuzundurchsichtigkeit" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Fadenkreuzundurchsichtigkeit (Wert zwischen 0 und 255)." +msgstr "" +"Fadenkreuzundurchsichtigkeit (Wert zwischen 0 und 255).\n" +"Gilt auch für das Objektfadenkreuz" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2783,6 +2776,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Fadenkreuzfarbe (R,G,B).\n" +"Gilt auch für das Objektfadenkreuz" #: src/settings_translation_file.cpp msgid "DPI" @@ -2972,7 +2967,7 @@ msgstr "Blockanimationen desynchronisieren" #: src/settings_translation_file.cpp #, fuzzy msgid "Dig key" -msgstr "Rechtstaste" +msgstr "Grabetaste" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3204,9 +3199,10 @@ msgstr "" "geeignet." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "Maximale Bildwiederholrate, während das Spiel pausiert ist." +msgstr "" +"Maximale Bildwiederholrate, während das Spiel pausiert oder nicht fokussiert " +"ist" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3604,7 +3600,6 @@ msgid "HUD toggle key" msgstr "Taste zum Umschalten des HUD" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" @@ -3612,12 +3607,12 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Handhabung für veraltete Lua-API-Aufrufe:\n" -"- legacy: Versuchen, altes Verhalten zu imitieren (Standard für Release).\n" -"- log: Imitieren, und den Backtrace des veralteten Funktionsaufrufs " +"- none: Veraltete Aufrufe nicht protokollieren.\n" +"- log: Imitieren und den Backtrace des veralteten Funktionsaufrufs " "protokollieren\n" -" (Standard für Debug).\n" +" (Standard).\n" "- error: Bei Verwendung eines veralteten Funktionsaufrufs abbrechen\n" -" (empfohlen für Mod- Entwickler)." +" (empfohlen für Mod-Entwickler)." #: src/settings_translation_file.cpp msgid "" @@ -4161,7 +4156,7 @@ msgstr "Joystick-Button-Wiederholungsrate" #: src/settings_translation_file.cpp #, fuzzy msgid "Joystick deadzone" -msgstr "Joystick-Typ" +msgstr "Joystick-Totbereich" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4266,13 +4261,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Taste zum Springen.\n" +"Taste zum Graben.\n" "Siehe http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4419,13 +4413,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Taste zum Springen.\n" +"Taste zum Bauen.\n" "Siehe http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5201,11 +5194,11 @@ msgstr "Macht alle Flüssigkeiten undurchsichtig" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Kartenkompressionsstufe für Festspeicher" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Kartenkompressionsstufe für Netzwerkverkehr" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5392,9 +5385,10 @@ msgid "Maximum FPS" msgstr "Maximale Bildwiederholrate" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "Maximale Bildwiederholrate, während das Spiel pausiert ist." +msgstr "" +"Maximale Bildwiederholrate, während das Fenster nicht fokussiert oder das " +"Spiel pausiert ist." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5458,6 +5452,9 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"Maximale Anzahl an gleichzeitigen Downloads. Weitere werden in einer " +"Warteschlange eingereiht.\n" +"Dies sollte niedriger als das curl_parallel_limit sein." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5889,12 +5886,11 @@ msgstr "Nick-Bewegungsmodus" #: src/settings_translation_file.cpp #, fuzzy msgid "Place key" -msgstr "Flugtaste" +msgstr "Bauentaste" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "Rechtsklick-Wiederholungsrate" +msgstr "Bauen-Wiederholungsrate" #: src/settings_translation_file.cpp msgid "" @@ -6125,7 +6121,7 @@ msgstr "Runde Übersichtskarte" #: src/settings_translation_file.cpp msgid "Safe digging and placing" -msgstr "Sicheres graben und bauen" +msgstr "Sicheres Graben und Bauen" #: src/settings_translation_file.cpp msgid "Sandy beaches occur when np_beach exceeds this value." @@ -6383,12 +6379,11 @@ msgid "Show entity selection boxes" msgstr "Entity-Auswahlboxen zeigen" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"Setzt die Sprache. Leer lassen, um Systemsprache zu verwenden.\n" +"Entityauswahlboxen zeigen\n" "Nach Änderung ist ein Neustart erforderlich." #: src/settings_translation_file.cpp @@ -6675,7 +6670,7 @@ msgstr "Die URL für den Inhaltespeicher" #: src/settings_translation_file.cpp #, fuzzy msgid "The deadzone of the joystick" -msgstr "Die Kennung des zu verwendeten Joysticks" +msgstr "Der Totbereich des Joysticks" #: src/settings_translation_file.cpp msgid "" @@ -6751,7 +6746,6 @@ msgstr "" "konfiguriert werden." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6764,10 +6758,10 @@ msgstr "" "Ein Neustart ist erforderlich, wenn dies geändert wird.\n" "Anmerkung: Auf Android belassen Sie dies bei OGLES1, wenn Sie sich unsicher " "sind.\n" -"Die App könnte sonst unfähig sein, zu starten.\n" -"Auf anderen Plattformen wird OpelGL empfohlen, dies ist momentan der " -"einzige\n" -"Treiber mit Shader-Unterstützung." +"Die App könnte sonst nicht mehr starten.\n" +"Auf anderen Plattformen wird OpenGL empfohlen.\n" +"Shader werden unter OpenGL (nur Desktop) und OGLES2 (experimentell) " +"unterstützt." #: src/settings_translation_file.cpp msgid "" @@ -6807,6 +6801,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"Das erlaubte Zeitbudget für ABM-Ausführung jeden Schritt\n" +"(als Bruchteil des ABM-Intervalls)" #: src/settings_translation_file.cpp msgid "" @@ -6822,9 +6818,8 @@ msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." msgstr "" -"Die Zeit in Sekunden, in dem Rechtsklicks wiederholt werden, wenn die " -"rechte\n" -"Maustaste gedrückt gehalten wird." +"Die Zeit in Sekunden, in dem Blockplatzierung wiederholt werden, wenn\n" +"die Bauentaste gedrückt gehalten wird." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -7419,6 +7414,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"ZLib-Kompressionsniveau für Kartenblöcke im Festspeicher.\n" +"-1 - zlib Standard-Kompressionsniveau\n" +"0 - keine Kompression, am schnellsten\n" +"9 - beste Kompression, am langsamsten\n" +"(Niveau 1-3 verwenden zlibs \"schnelles\" Verfahren, 4-9 das normale " +"Verfahren)" #: src/settings_translation_file.cpp msgid "" @@ -7428,6 +7429,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"ZLib-Kompressionsniveau für Kartenblöcke, die zu Clients gesendet werden.\n" +"-1 - zlib Standard-Kompressionsniveau\n" +"0 - keine Kompression, am schnellsten\n" +"9 - beste Kompression, am langsamsten\n" +"(Niveau 1-3 verwenden zlibs \"schnelles\" Verfahren, 4-9 das normale " +"Verfahren)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From ac3d5d08733b93a0e21e34fb28b3f9a2bac30951 Mon Sep 17 00:00:00 2001 From: apo Date: Sun, 31 Jan 2021 16:25:56 +0000 Subject: [PATCH 528/624] Translated using Weblate (Spanish) Currently translated at 73.6% (996 of 1353 strings) --- po/es/minetest.po | 98 ++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 52 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 61d444026..cd1f86fe1 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-12-24 05:29+0000\n" -"Last-Translator: cypMon \n" +"PO-Revision-Date: 2021-02-05 09:40+0000\n" +"Last-Translator: apo \n" "Language-Team: Spanish \n" "Language: es\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -153,52 +153,51 @@ msgstr "activado" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" ya existe. Quieres remplazarlo?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "Las dependencias $1 y $2 serán instaladas." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 por $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 descargando,\n" +"$2 en espera" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Descargando..." +msgstr "$1 descargando..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 dependencias requeridas no se encuentran." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 serán instalados, y $2 dependencias serán ignoradas." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Todos los paquetes" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "La tecla ya se está utilizando" +msgstr "Ya está instalado" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Volver al menú principal" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Hospedar juego" +msgstr "Juego Base:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -223,14 +222,12 @@ msgid "Install" msgstr "Instalar" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Instalar" +msgstr "Instalar $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Dependencias opcionales:" +msgstr "Instalar dependencias faltantes" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -246,26 +243,24 @@ msgid "No results" msgstr "Sin resultados" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Actualizar" +msgstr "No hay actualizaciones" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Silenciar sonido" +msgstr "No encontrado" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Sobreescribir" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Por favor verifica que el juego base está bien." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "En cola" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -281,11 +276,11 @@ msgstr "Actualizar" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Actualizar Todo [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Ver más información en un navegador web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -769,15 +764,16 @@ msgid "Credits" msgstr "Créditos" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Seleccionar carpeta" +msgstr "Abrir Directorio de Datos de Usuario" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Abre el directorio que contiene los mundos, juegos, mods, y paquetes de\n" +"textura, del usuario, en un gestor / explorador de archivos." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -817,7 +813,7 @@ msgstr "Instalar juegos desde ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Nombre" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -828,9 +824,8 @@ msgid "No world created or selected!" msgstr "¡No se ha dado un nombre al mundo o no se ha seleccionado uno!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Contraseña nueva" +msgstr "Contraseña" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -841,9 +836,8 @@ msgid "Port" msgstr "Puerto" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Selecciona un mundo:" +msgstr "Selecciona Mods" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -995,9 +989,8 @@ msgid "Shaders" msgstr "Sombreadores" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Tierras flotantes (experimental)" +msgstr "Sombreadores (experimental)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1199,7 +1192,7 @@ msgid "Continue" msgstr "Continuar" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1222,12 +1215,12 @@ msgstr "" "- %s: moverse a la izquierda\n" "- %s: moverse a la derecha\n" "- %s: saltar/escalar\n" -"- %s: agacharse/bajar\n" +"- %s: excavar/golpear\n" +"- %s: colocar/usar\n" +"- %s: a hurtadillas/bajar\n" "- %s: soltar objeto\n" "- %s: inventario\n" "- Ratón: girar/mirar\n" -"- Ratón izq.: cavar/golpear\n" -"- Ratón der.: colocar/usar\n" "- Rueda del ratón: elegir objeto\n" "- %s: chat\n" @@ -1756,19 +1749,18 @@ msgid "Minimap hidden" msgstr "Minimapa oculto" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Minimapa en modo radar, Zoom x1" +msgstr "Minimapa en modo radar, Zoom x%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Minimapa en modo superficie, Zoom x1" +msgstr "Minimapa en modo superficie, Zoom x%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Minimapa en modo superficie, Zoom x1" +msgstr "Minimapa en modo textura" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -2182,7 +2174,7 @@ msgstr "Intervalo ABM" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "Límite de tiempo para MBA" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2694,7 +2686,7 @@ msgstr "Lista negra de banderas de ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "Descargas máximas simultáneas para ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2764,11 +2756,12 @@ msgid "Crosshair alpha" msgstr "Opacidad del punto de mira" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Alfa del punto de mira (opacidad, entre 0 y 255)." +msgstr "" +"Alfa del punto de mira (opacidad, entre 0 y 255).\n" +"También controla el color del objeto punto de mira." #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2779,6 +2772,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Color del punto de mira (R,G,B).\n" +"También controla el color del objeto punto de mira" #: src/settings_translation_file.cpp msgid "DPI" @@ -2963,9 +2958,8 @@ msgid "Desynchronize block animation" msgstr "Desincronizar la animación de los bloques" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Tecla derecha" +msgstr "Tecla Excavar" #: src/settings_translation_file.cpp msgid "Digging particles" From a4d57b4a16d62edba4e4032fe2cda6370758ea8f Mon Sep 17 00:00:00 2001 From: cafou Date: Sun, 31 Jan 2021 15:23:54 +0000 Subject: [PATCH 529/624] Translated using Weblate (French) Currently translated at 96.7% (1309 of 1353 strings) --- po/fr/minetest.po | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index a6201c240..a6cf41f53 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-10-25 19:26+0000\n" -"Last-Translator: William Desportes \n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"Last-Translator: cafou \n" "Language-Team: French \n" "Language: fr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.3.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -177,11 +177,11 @@ msgstr "Chargement..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "Les dépendances nécessaires à 1 $ n'ont pas pu être trouvées." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 sera installé, et les dépendances de $2 seront ignorées." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" @@ -257,7 +257,7 @@ msgstr "Couper le son" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Écraser" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." @@ -265,7 +265,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "En file d'attente" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -285,7 +285,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Voir plus d'informations dans un navigateur web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -780,6 +780,9 @@ msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Ouvre le répertoire qui contient les mondes fournis par les utilisateurs, " +"les jeux, les mods,\n" +"et des paquets de textures dans un gestionnaire de fichiers." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -819,7 +822,7 @@ msgstr "Installer à partir de ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Nom" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -2689,7 +2692,7 @@ msgstr "Drapeaux ContentDB en liste noire" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "Maximum de téléchargement en parallèle pour ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB URL" From 7f5b4edb66722606b97d7be04b631ca74475a732 Mon Sep 17 00:00:00 2001 From: BreadW Date: Mon, 1 Feb 2021 02:57:27 +0000 Subject: [PATCH 530/624] Translated using Weblate (Japanese) Currently translated at 100.0% (1353 of 1353 strings) --- po/ja/minetest.po | 208 +++++++++++++++++++++++----------------------- 1 file changed, 104 insertions(+), 104 deletions(-) diff --git a/po/ja/minetest.po b/po/ja/minetest.po index ac2e2155f..5669b8e73 100644 --- a/po/ja/minetest.po +++ b/po/ja/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Japanese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-06-15 22:41+0000\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" "Last-Translator: BreadW \n" "Language-Team: Japanese \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.1\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -80,7 +80,7 @@ msgstr "キャンセル" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "依存関係:" +msgstr "依存Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" @@ -116,7 +116,7 @@ msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "(任意)依存関係なし" +msgstr "(任意)依存Modなし" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." @@ -124,7 +124,7 @@ msgstr "ゲームの説明がありません。" #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "依存関係なし" +msgstr "必須依存Modなし" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -132,11 +132,11 @@ msgstr "Modパックの説明がありません。" #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "任意依存関係なし" +msgstr "任意依存Modなし" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "任意:" +msgstr "任意依存Mod:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp @@ -153,52 +153,51 @@ msgstr "有効" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "「$1」はすでに存在します。上書きしますか?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "$1 と依存Mod $2 がインストールされます。" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 by $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 ダウンロード中、\n" +"$2 ダウンロード待機中" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "ダウンロード中..." +msgstr "$1 ダウンロード中..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 つの必要な依存Modが見つかりませんでした。" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 がインストールされ、依存Mod $2 はスキップされます。" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "すべて" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "キーが重複しています" +msgstr "インストール済み" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "メインメニューへ戻る" +msgstr "メインメニューへ" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "ゲームホスト" +msgstr "基盤ゲーム:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -222,14 +221,12 @@ msgid "Install" msgstr "入手" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "入手" +msgstr "$1 のインストール" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "任意:" +msgstr "不足依存Modインストール" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -245,26 +242,24 @@ msgid "No results" msgstr "何も見つかりませんでした" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "更新" +msgstr "更新なし" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "消音" +msgstr "見つかりません" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "上書き" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "基盤となるゲームが正しいかどうか確認してください。" #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "待機中" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -280,15 +275,15 @@ msgstr "更新" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "すべて更新 [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Webブラウザで詳細を見る" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "ワールド名「$1」は既に存在します" +msgstr "ワールド名「$1」はすでに存在します" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" @@ -729,7 +724,7 @@ msgstr "インストール済みのパッケージ:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." -msgstr "依存なし。" +msgstr "依存Modなし。" #: builtin/mainmenu/tab_content.lua msgid "No package description available" @@ -760,15 +755,16 @@ msgid "Credits" msgstr "クレジット" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "ディレクトリの選択" +msgstr "ディレクトリを開く" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"ファイルマネージャー/エクスプローラーで、ワールド、ゲーム、Mod、\n" +"およびテクスチャパックを含むディレクトリを開きます。" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -788,7 +784,7 @@ msgstr "バインドアドレス" #: builtin/mainmenu/tab_local.lua msgid "Creative Mode" -msgstr "クリエイティブモード" +msgstr "クリエイティブ" #: builtin/mainmenu/tab_local.lua msgid "Enable Damage" @@ -808,7 +804,7 @@ msgstr "コンテンツDBからゲームをインストール" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "名前" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -819,9 +815,8 @@ msgid "No world created or selected!" msgstr "ワールドが作成または選択されていません!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "新しいパスワード" +msgstr "パスワード" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -832,9 +827,8 @@ msgid "Port" msgstr "ポート" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "ワールドを選択:" +msgstr "Modを選択" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -915,7 +909,7 @@ msgstr "アンチエイリアス:" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "画面の大きさを自動保存" +msgstr "大きさを自動保存" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" @@ -986,9 +980,8 @@ msgid "Shaders" msgstr "シェーダー" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "浮遊大陸(実験的)" +msgstr "シェーダー(実験的)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1188,7 +1181,7 @@ msgid "Continue" msgstr "再開" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1205,19 +1198,19 @@ msgid "" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" -"操作:\n" +"操作方法:\n" "- %s: 前進\n" "- %s: 後退\n" "- %s: 左移動\n" "- %s: 右移動\n" "- %s: ジャンプ/登る\n" +"- %s: 掘削/パンチ\n" +"- %s: 設置/使用\n" "- %s: スニーク/降りる\n" "- %s: アイテムを落とす\n" "- %s: インベントリ\n" "- マウス: 見回す\n" -"- 左クリック: 掘削/パンチ\n" -"- 右クリック: 設置/使用\n" -"- ホイール: アイテム選択\n" +"- マウスホイール: アイテム選択\n" "- %s: チャット\n" #: src/client/game.cpp @@ -1745,19 +1738,18 @@ msgid "Minimap hidden" msgstr "ミニマップ 非表示" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "ミニマップ レーダーモード、ズーム x1" +msgstr "ミニマップ レーダーモード、ズーム x%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "ミニマップ 表面モード、ズーム x1" +msgstr "ミニマップ 表面モード、ズーム x%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "最小テクスチャサイズ" +msgstr "ミニマップ テクスチャモード" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -1829,7 +1821,7 @@ msgstr "音量を下げる" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "\"ジャンプ\"二度押しで飛行モード切替" +msgstr "\"ジャンプ\"2回で飛行モード切替" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" @@ -1861,9 +1853,7 @@ msgstr "キーが重複しています" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" -"キー設定です。 (このメニューで失敗する場合は、minetest.confから該当する設定を" -"削除してください)" +msgstr "キー設定です。 (このメニューで失敗する場合は minetest.conf から該当する設定を削除してください)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" @@ -2155,7 +2145,7 @@ msgstr "ABMの間隔" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "ABMの時間予算" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2656,7 +2646,7 @@ msgstr "コンテンツDBフラグのブラックリスト" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "コンテンツDBの最大同時ダウンロード数" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2720,24 +2710,27 @@ msgstr "クリエイティブ" #: src/settings_translation_file.cpp msgid "Crosshair alpha" -msgstr "照準線の透過度" +msgstr "十字カーソルの透過度" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "照準線の透過 (不透明、0~255の間)。" +msgstr "" +"十字カーソルの透過度(不透明、0~255の間)。\n" +"オブジェクト十字カーソルの色も制御" #: src/settings_translation_file.cpp msgid "Crosshair color" -msgstr "照準線の色" +msgstr "十字カーソルの色" #: src/settings_translation_file.cpp msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"十字カーソルの色(R,G,B)。\n" +"オブジェクト十字カーソルの色も制御" #: src/settings_translation_file.cpp msgid "DPI" @@ -2881,7 +2874,7 @@ msgstr "ツールチップを表示するまでの遅延、ミリ秒で定めま #: src/settings_translation_file.cpp msgid "Deprecated Lua API handling" -msgstr "廃止予定のLua APIの処理" +msgstr "非推奨の Lua API の処理" #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2914,9 +2907,8 @@ msgid "Desynchronize block animation" msgstr "ブロックのアニメーションの非同期化" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "右キー" +msgstr "掘削キー" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3138,9 +3130,8 @@ msgstr "" "作成し、密な浮遊大陸層に適しています。" #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "ポーズメニューでの最大FPS。" +msgstr "非アクティブまたはポーズメニュー表示中のFPS" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3524,18 +3515,16 @@ msgid "HUD toggle key" msgstr "HUD表示切り替えキー" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" "- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"廃止予定のLua API呼び出しの処理:\n" -"- legacy: 古い振る舞いを模倣する(試みる) (リリース版の既定値)。\n" -"- log: 廃止予定の呼び出しを模倣してバックトレースを記録 (デバッグ版の既定" -"値)。\n" -"- error: 廃止予定の呼び出しの使用を中止する (Mod開発者向けに推奨)。" +"非推奨の Lua API 呼び出しの処理:\n" +"- none: 非推奨の呼び出しを記録しない\n" +"- log: 非推奨の呼び出しのバックトレースを模倣して記録します(既定値)。\n" +"- error: 非推奨の呼び出しの使用を中止します(Mod開発者に推奨)。" #: src/settings_translation_file.cpp msgid "" @@ -4057,9 +4046,8 @@ msgid "Joystick button repetition interval" msgstr "ジョイスティックボタンの繰り返し間隔" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "ジョイスティックの種類" +msgstr "ジョイスティックのデッドゾーン" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4164,13 +4152,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"ジャンプするキーです。\n" +"掘削するキーです。\n" "参照 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4317,13 +4304,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"ジャンプするキーです。\n" +"設置するキーです。\n" "参照 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5085,11 +5071,11 @@ msgstr "すべての液体を不透明にする" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "ディスクストレージのマップ圧縮レベル" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "ネットワーク転送のためのマップ圧縮レベル" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5274,9 +5260,8 @@ msgid "Maximum FPS" msgstr "最大FPS" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "ポーズメニューでの最大FPS。" +msgstr "ウィンドウにフォーカスが合っていないとき、またはポーズメニュー表示中の最大FPS。" #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5336,6 +5321,8 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"同時ダウンロードの最大数です。この制限を超えるダウンロードはキューに入れられます。\n" +"これは curl_parallel_limit よりも低い値でなければなりません。" #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5744,14 +5731,12 @@ msgid "Pitch move mode" msgstr "ピッチ移動モード" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "飛行キー" +msgstr "設置キー" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "右クリック繰り返しの間隔" +msgstr "設置の繰り返し間隔" #: src/settings_translation_file.cpp msgid "" @@ -6227,15 +6212,14 @@ msgstr "デバッグ情報を表示" #: src/settings_translation_file.cpp msgid "Show entity selection boxes" -msgstr "エンティティの選択ボックスを表示" +msgstr "エンティティの選択ボックス表示" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"言語を設定してください。システム言語を使用するには空のままにします。\n" +"エンティティの選択ボックスを表示\n" "変更後は再起動が必要です。" #: src/settings_translation_file.cpp @@ -6509,9 +6493,8 @@ msgid "The URL for the content repository" msgstr "コンテンツリポジトリのURL" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" -msgstr "使用するジョイスティックの識別子" +msgstr "ジョイスティックのデッドゾーン" #: src/settings_translation_file.cpp msgid "" @@ -6582,7 +6565,6 @@ msgstr "" "これは active_object_send_range_blocks と一緒に設定する必要があります。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6593,10 +6575,10 @@ msgid "" msgstr "" "Irrlichtのレンダリングバックエンド。\n" "変更後は再起動が必要です。\n" -"メモ: Androidでは、不明な場合は OGLES1 を使用してください! \n" -"それ以外の場合アプリは起動に失敗することがあります。\n" -"他のプラットフォームでは、OpenGL が推奨されており、現在それが\n" -"シェーダーをサポートする唯一のドライバです。" +"注意:Android の場合、よくわからない場合は OGLES1 を使用してください!\n" +"そうしないとアプリの起動に失敗することがあります。\n" +"その他のプラットフォームでは、OpenGL が推奨されています。\n" +"シェーダーは OpenGL(デスクトップのみ)と OGLES2(実験的)でサポート" #: src/settings_translation_file.cpp msgid "" @@ -6629,6 +6611,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"ABM が各ステップで実行できる時間予算\n" +"(ABM間隔の一部として)" #: src/settings_translation_file.cpp msgid "" @@ -6639,11 +6623,10 @@ msgstr "" "繰り返されるイベントの秒単位の間隔。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." -msgstr "マウスの右ボタンを押したまま右クリックを繰り返す秒単位の間隔。" +msgstr "設置ボタンを押したままノードの設置を繰り返す秒単位の間隔。" #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6807,6 +6790,13 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"マルチサンプルアンチエイリアス(MSAA)を使用して、ブロックエッジを滑らかにします。\n" +"このアルゴリズムは、画像を鮮明に保ちながら3Dビューポートを滑らかにします。\n" +"しかし、それはテクスチャの内部には影響しません\n" +"(これは、透明なテクスチャで特に目立ちます)。\n" +"シェーダーを無効にすると、ノード間に可視スペースが表示されます。\n" +"0 に設定すると、MSAAは無効になります。\n" +"このオプションを変更した場合、再起動が必要です。" #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -7055,7 +7045,7 @@ msgid "" "Deprecated, use the setting player_transfer_distance instead." msgstr "" "プレイヤーが範囲制限なしでクライアントに表示されるかどうかです。\n" -"廃止予定、代わりに設定 player_transfer_distance を使用してください。" +"非推奨。代わりに設定 player_transfer_distance を使用してください。" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." @@ -7205,6 +7195,11 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"マップブロックをディスクに保存するときに使用する ZLib圧縮レベル。\n" +"-1 - Zlib の規定の圧縮レベル\n" +"0 - 圧縮なし、最速\n" +"9 - 最高の圧縮、最も遅い\n" +"(レベル 1〜3 はZlibの「高速」方式を使用し、4〜9 は通常方式を使用)" #: src/settings_translation_file.cpp msgid "" @@ -7214,6 +7209,11 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"マップブロックをクライアントに送信するときに使用する ZLib圧縮レベル。\n" +"-1 - Zlib の規定の圧縮レベル\n" +"0 - 圧縮なし、最速\n" +"9 - 最高の圧縮、最も遅い\n" +"(レベル 1〜3 はZlibの「高速」方式を使用し、4〜9 は通常方式を使用)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From ff8c2dfd6bf61b9efa6ce73cd10b376a396d2422 Mon Sep 17 00:00:00 2001 From: eol Date: Sat, 30 Jan 2021 22:12:27 +0000 Subject: [PATCH 531/624] Translated using Weblate (Dutch) Currently translated at 100.0% (1353 of 1353 strings) --- po/nl/minetest.po | 175 ++++++++++++++++++++++++---------------------- 1 file changed, 93 insertions(+), 82 deletions(-) diff --git a/po/nl/minetest.po b/po/nl/minetest.po index f2efafdc9..6b5329aef 100644 --- a/po/nl/minetest.po +++ b/po/nl/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Dutch (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-01-25 20:32+0000\n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" "Last-Translator: eol \n" "Language-Team: Dutch \n" @@ -153,52 +153,52 @@ msgstr "aangeschakeld" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" bestaat al. Wilt u het overschrijven ?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "Afhankelijkheden $1 en $2 zullen geïnstalleerd worden." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 door $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 is aan het downloaden,\n" +"$2 is ingepland" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Downloaden..." +msgstr "$1 is aan het downloaden..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 benodigde afhankelijkheden werden niet gevonden." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." msgstr "" +"$1 zal worden geïnstalleerd, en $2 afhankelijkheden worden overgeslagen." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Alle pakketten" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Toets is al in gebruik" +msgstr "Reeds geïnstalleerd" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Terug naar hoofdmenu" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Spel Hosten" +msgstr "Basis Spel:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -223,14 +223,12 @@ msgid "Install" msgstr "Installeren" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Installeren" +msgstr "Installeer $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Optionele afhankelijkheden:" +msgstr "Installeer ontbrekende afhankelijkheden" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -246,26 +244,24 @@ msgid "No results" msgstr "Geen resultaten" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Update" +msgstr "Geen updates" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Geluid dempen" +msgstr "Niet gevonden" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Overschrijven" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Controleer of het basis spel correct is, aub." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "Ingepland" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -281,11 +277,11 @@ msgstr "Update" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Allemaal bijwerken [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Bekijk meer informatie in een webbrowser" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -768,15 +764,16 @@ msgid "Credits" msgstr "Credits" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Selecteer map" +msgstr "Open de gebruikersdatamap" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Open de map die de door de gebruiker aangeleverde werelden, spellen, mods\n" +"en textuur pakketten bevat in een bestandsbeheer toepassing / verkenner." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -816,7 +813,7 @@ msgstr "Installeer spellen van ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Naam" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -827,9 +824,8 @@ msgid "No world created or selected!" msgstr "Geen wereldnaam opgegeven of geen wereld aangemaakt!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Nieuw wachtwoord" +msgstr "Wachtwoord" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -840,9 +836,8 @@ msgid "Port" msgstr "Poort" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Selecteer Wereld:" +msgstr "Selecteer Mods" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -994,9 +989,8 @@ msgid "Shaders" msgstr "Shaders" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Zwevende eilanden (experimenteel)" +msgstr "Shaders (experimenteel)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1196,7 +1190,7 @@ msgid "Continue" msgstr "Verder spelen" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1219,12 +1213,12 @@ msgstr "" "-%s: ga naar links \n" "-%s: ga naar rechts \n" "-%s: springen / klimmen \n" +"-%s: graaf/duw\n" +"-%s: plaats/gebruik \n" "-%s: sluip / ga naar beneden \n" "-%s: drop item \n" "-%s: inventaris \n" "- Muis: draaien / kijken \n" -"- Muis links: graven / stoten \n" -"- Muis rechts: plaats / gebruik \n" "- Muiswiel: item selecteren \n" "-%s: chat\n" @@ -1753,19 +1747,18 @@ msgid "Minimap hidden" msgstr "Mini-kaart verborgen" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Mini-kaart in radar modus, Zoom x1" +msgstr "Mini-kaart in radar modus, Zoom x%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Minimap in oppervlaktemodus, Zoom x1" +msgstr "Minimap in oppervlaktemodus, Zoom x%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Minimale textuur-grootte" +msgstr "Minimap textuur modus" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -2176,7 +2169,7 @@ msgstr "Interval voor ABM's" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "ABM tijd budget" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2688,7 +2681,7 @@ msgstr "ContentDB optie: verborgen pakketten lijst" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "ContentDB Maximum Gelijktijdige Downloads" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2759,11 +2752,12 @@ msgid "Crosshair alpha" msgstr "Draadkruis-alphawaarde" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Draadkruis-alphawaarde. (ondoorzichtigheid; tussen 0 en 255)." +msgstr "" +"Draadkruis-alphawaarde (ondoorzichtigheid; tussen 0 en 255).\n" +"Controleert ook het object draadkruis kleur" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2774,6 +2768,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Draadkruis kleur (R,G,B).\n" +"Controleert ook het object draadkruis kleur" #: src/settings_translation_file.cpp msgid "DPI" @@ -2956,9 +2952,8 @@ msgid "Desynchronize block animation" msgstr "Textuur-animaties niet synchroniseren" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Toets voor rechts" +msgstr "Toets voor graven" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3186,9 +3181,8 @@ msgstr "" "platte laaglanden, geschikt voor een solide zwevende eilanden laag." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "Maximum FPS als het spel gepauzeerd is." +msgstr "FPS als het spel gepauzeerd of niet gefocussed is" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3583,20 +3577,18 @@ msgid "HUD toggle key" msgstr "HUD aan/uitschakelen toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" "- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"Behandeling van verouderde lua api aanroepen:\n" -"- legacy: (probeer) het oude gedrag na te bootsen\n" -" (standaard voor een 'release' versie).\n" -"- log: boots het oude gedrag na, en log een backtrace van de aanroep\n" -" (standaard voor een 'debug' versie).\n" -"- error: stop de server bij gebruik van een verouderde aanroep\n" -" (aanbevolen voor mod ontwikkelaars)." +"Behandeling van verouderde Lua API aanroepen:\n" +"- none: log geen verouderde aanroepen\n" +"- log: boots het oude gedrag na, en log een backtrace van de aanroep (" +"standaard voor een 'debug' versie).\n" +"- error: stop de server bij gebruik van een verouderde aanroep (" +"aanbevolen voor mod ontwikkelaars)." #: src/settings_translation_file.cpp msgid "" @@ -4131,9 +4123,8 @@ msgid "Joystick button repetition interval" msgstr "Joystick-knop herhalingsinterval" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "Joystick type" +msgstr "Joystick dode zone" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4238,13 +4229,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets voor springen.\n" +"Toets voor graven.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4391,13 +4381,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets voor springen.\n" +"Toets voor plaatsen.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5171,11 +5160,11 @@ msgstr "Maak alle vloeistoffen ondoorzichtig" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Map compressie niveau voor het bewaren op de harde schijf" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Map compressie niveau voor netwerk transfert" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5363,9 +5352,10 @@ msgid "Maximum FPS" msgstr "Maximum FPS" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "Maximum FPS als het spel gepauzeerd is." +msgstr "" +"Maximum FPS als het venster niet gefocussed is, of wanneer het spel " +"gepauzeerd is." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5429,6 +5419,9 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"Maximaal aantal gelijktijdige downloads. Downloads die deze limiet " +"overschrijden zullen in de wachtrij geplaats worden.\n" +"Deze instelling zou lager moeten zijn dan curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5867,14 +5860,12 @@ msgid "Pitch move mode" msgstr "Pitch beweeg modus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "Vliegen toets" +msgstr "Plaats toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "Rechts-klik herhalingsinterval" +msgstr "Plaats (Rechts-klik) herhalingsinterval" #: src/settings_translation_file.cpp msgid "" @@ -6357,13 +6348,12 @@ msgid "Show entity selection boxes" msgstr "Toon selectie-box voor objecten" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"Stel de taal in. De systeem-taal wordt gebruikt indien leeg.\n" -"Een herstart is noodzakelijk om de nieuwe taal te activeren." +"Toon selectievakjes voor entiteiten\n" +"Een herstart is noodzakelijk om de wijziging te activeren." #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -6649,9 +6639,8 @@ msgid "The URL for the content repository" msgstr "De URL voor de inhoudsrepository" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" -msgstr "De identificatie van de stuurknuppel die u gebruikt" +msgstr "De dode zone van de stuurknuppel die u gebruikt" #: src/settings_translation_file.cpp msgid "" @@ -6727,7 +6716,6 @@ msgstr "" "Dit moet samen met active_object_send_range_blocks worden geconfigureerd." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6740,8 +6728,9 @@ msgstr "" "Na het wijzigen hiervan is een herstart vereist. \n" "Opmerking: op Android, blijf bij OGLES1 als je het niet zeker weet! Anders " "start de app mogelijk niet. \n" -"Op andere platforms wordt OpenGL aanbevolen en het is de enige driver met \n" -"shader-ondersteuning momenteel." +"Op andere platformen wordt OpenGL aanbevolen.\n" +"OpenGL (alleen op desktop pc) en OGLES2 (experimenteel), zijn de enige " +"drivers met shader-ondersteuning momenteel" #: src/settings_translation_file.cpp msgid "" @@ -6779,6 +6768,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"Het tijdsbudget dat toegestaan wordt aan ABM's om elke stap uit te voeren\n" +"(als een deel van het ABM interval)" #: src/settings_translation_file.cpp msgid "" @@ -6789,12 +6780,12 @@ msgstr "" " ingedrukt gehouden wordt." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." msgstr "" -"De tijd in seconden tussen herhaalde rechts-klikken als de rechter muisknop\n" +"De tijd in seconden tussen herhaalde rechts-klikken als de plaats knop (" +"rechter muisknop)\n" "ingedrukt gehouden wordt." #: src/settings_translation_file.cpp @@ -6968,6 +6959,14 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"Gebruik multi-sample anti-aliasing (MSAA) om de randen van de blokken glad " +"te maken.\n" +"Dit algoritme maakt de 3D viewport glad en houdt intussen het beeld scherp,\n" +"zonder de binnenkant van de texturen te wijzigen\n" +"(wat erg opvalt bij transparante texturen)\n" +"Zichtbare ruimtes verschijnen tussen nodes als de shaders uitgezet zijn.\n" +"Als de waarde op 0 staat, is MSAA uitgeschakeld.\n" +"Een herstart is nodig om deze wijziging te laten functioneren." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -7377,6 +7376,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Zlib compressie niveau om mapblokken op de harde schijf te bewaren.\n" +"-1: Zlib's standaard compressie niveau\n" +"0: geen compressie, snelst\n" +"9: maximale compressie, traagst\n" +"(niveau's 1 tot 3 gebruiken Zlib's snelle methode, 4 tot 9 gebruiken de " +"normale methode)" #: src/settings_translation_file.cpp msgid "" @@ -7386,6 +7391,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Zlib compressie niveau om mapblokken te versturen naar de client.\n" +"-1: Zlib's standaard compressie niveau\n" +"0: geen compressie, snelst\n" +"9: maximale compressie, traagst\n" +"(niveau's 1 tot 3 gebruiken Zlib's snelle methode, 4 tot 9 gebruiken de " +"normale methode)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From 6cd5bbeb43e7ad866b1487468f2cc56897d1d932 Mon Sep 17 00:00:00 2001 From: "Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi" Date: Sat, 30 Jan 2021 22:27:05 +0000 Subject: [PATCH 532/624] Translated using Weblate (Malay) Currently translated at 100.0% (1353 of 1353 strings) --- po/ms/minetest.po | 197 ++++++++++++++++++++++++---------------------- 1 file changed, 101 insertions(+), 96 deletions(-) diff --git a/po/ms/minetest.po b/po/ms/minetest.po index 0ea9bf28a..d15da624e 100644 --- a/po/ms/minetest.po +++ b/po/ms/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Malay (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-10-20 18:26+0000\n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" "Language-Team: Malay Date: Sun, 31 Jan 2021 15:00:10 +0000 Subject: [PATCH 533/624] Translated using Weblate (Basque) Currently translated at 21.2% (288 of 1353 strings) --- po/eu/minetest.po | 88 +++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/po/eu/minetest.po b/po/eu/minetest.po index fe0233120..9add230cd 100644 --- a/po/eu/minetest.po +++ b/po/eu/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-10-18 21:26+0000\n" -"Last-Translator: Osoitz \n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" +"Last-Translator: aitzol berasategi \n" "Language-Team: Basque \n" "Language: eu\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.1-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -113,7 +113,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Mod gehiago aurkitu" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -158,11 +158,11 @@ msgstr "gaituta" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" existitzen da. Gainidatzi egin nahi al duzu?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "$1 et $2 mendekotasunak instalatuko dira." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" @@ -173,19 +173,21 @@ msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 deskargatzen,\n" +"$2 ilaran" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Kargatzen..." +msgstr "$1 deskargatzen..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1-ek behar dituen mendekotasunak ezin dira aurkitu." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." msgstr "" +"$1 instalatua izango da, eta $2-ren mendekotasunak baztertu egingo dira." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" @@ -193,25 +195,23 @@ msgstr "Pakete guztiak" #: builtin/mainmenu/dlg_contentstore.lua msgid "Already installed" -msgstr "" +msgstr "Instalaturik jada" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Itzuli menu nagusira" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Joko ostalaria" +msgstr "Oinarri jokoa:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB ez dago erabilgarri Minetest cURL gabe konpilatzean" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Kargatzen..." +msgstr "Deskargatzen..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -227,14 +227,12 @@ msgid "Install" msgstr "Instalatu" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Instalatu" +msgstr "$1 Instalatu" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Aukerako mendekotasunak:" +msgstr "Falta diren mendekotasunak instalatu" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -250,21 +248,20 @@ msgid "No results" msgstr "Emaitzarik ez" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Eguneratu" +msgstr "Eguneraketarik ez" #: builtin/mainmenu/dlg_contentstore.lua msgid "Not found" -msgstr "" +msgstr "Ez da aurkitu" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Gainidatzi" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Mesedez, egiaztatu oinarri jokoa zuzena dela." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" @@ -272,7 +269,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "" +msgstr "testura paketeak" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" @@ -284,11 +281,11 @@ msgstr "Eguneratu" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Guztia eguneratu [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Ikusi informazio gehiago web nabigatzailean" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -296,40 +293,39 @@ msgstr "Badago \"$1\" izeneko mundu bat" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Lurrazal gehigarria" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "Garaierako hotza" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "Garaierako lehortasuna" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "Bioma nahasketa" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Biomak" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "Leizeak" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "Leizeak" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Sortu" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informazioa:" +msgstr "Apaingarriak" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -342,11 +338,11 @@ msgstr "Deskargatu minetest.net zerbitzaritik" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "Leotzak" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Lurrazal laua" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" @@ -362,27 +358,29 @@ msgstr "Jolasa" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Lurrazal ez fraktalak sortu: Ozeanoak eta lurpekoak" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Mendiak" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Erreka hezeak" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Hezetasuna areagotu erreka inguruetan" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Lakuak" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Hezetasun baxuak eta bero handiak sakonera gutxikoak edo lehorrak diren " +"ibaiak sortzen dituzte" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -390,7 +388,7 @@ msgstr "Mapa sortzailea" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Mapgen banderatxoak" #: builtin/mainmenu/dlg_create_world.lua msgid "Mapgen-specific flags" @@ -740,7 +738,7 @@ msgstr "Instalaturiko paketeak:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." -msgstr "Menpekotasunik gabe." +msgstr "Mendekotasunik gabe." #: builtin/mainmenu/tab_content.lua msgid "No package description available" From 48518b88ad1d3517fdafc8d2d23b507a55c3ad05 Mon Sep 17 00:00:00 2001 From: Tviljan Date: Sun, 31 Jan 2021 16:21:12 +0000 Subject: [PATCH 534/624] Translated using Weblate (Finnish) Currently translated at 0.5% (8 of 1353 strings) --- po/fi/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/fi/minetest.po b/po/fi/minetest.po index 25002febd..835a78bf0 100644 --- a/po/fi/minetest.po +++ b/po/fi/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-07-11 13:41+0000\n" -"Last-Translator: Niko Kivinen \n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"Last-Translator: Tviljan \n" "Language-Team: Finnish \n" "Language: fi\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -37,7 +37,7 @@ msgstr "" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "" +msgstr "Tapahtui virhe:" #: builtin/fstk/ui.lua msgid "Main menu" From 0c80c5635d8988d2a493bbcfcfa9f23832714ba1 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Wed, 3 Feb 2021 02:32:24 +0000 Subject: [PATCH 535/624] Translated using Weblate (German) Currently translated at 100.0% (1353 of 1353 strings) --- po/de/minetest.po | 58 ++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/po/de/minetest.po b/po/de/minetest.po index f98bf8f2a..6475ca225 100644 --- a/po/de/minetest.po +++ b/po/de/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: German (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-02-01 05:52+0000\n" -"Last-Translator: sfan5 \n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Wuzzy \n" "Language-Team: German \n" "Language: de\n" @@ -103,8 +103,8 @@ msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"Die Modifikation „$1“ konnte nicht aktiviert werden, da sie unzulässige " -"Zeichen enthält. Nur die folgenden Zeichen sind erlaubt: [a-z0-9_]." +"Die Mod „$1“ konnte nicht aktiviert werden, da sie unzulässige Zeichen " +"enthält. Nur die folgenden Zeichen sind erlaubt: [a-z0-9_]." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" @@ -256,7 +256,7 @@ msgstr "Überschreiben" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "Bitte prüfen Sie ob das Basis-Spiel richtig ist." +msgstr "Bitte prüfen Sie, ob das Basis-Spiel korrekt ist." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" @@ -774,7 +774,7 @@ msgid "" "and texture packs in a file manager / explorer." msgstr "" "Öffnet das Verzeichnis, welches die Welten, Spiele, Mods und\n" -"Texturenpakete des Benutzers enthält im Datei-Manager." +"Texturenpakete des Benutzers enthält, im Datei-Manager." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -1393,7 +1393,7 @@ msgstr "Entfernter Server" #: src/client/game.cpp msgid "Resolving address..." -msgstr "Löse Adresse auf …" +msgstr "Adressauflösung …" #: src/client/game.cpp msgid "Shutting down..." @@ -1865,8 +1865,8 @@ msgstr "Taste bereits in Benutzung" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" -"Steuerung (Falls dieses Menü nicht richtig funktioniert, versuchen sie die " -"minetest.conf manuell zu bearbeiten)" +"Steuerung (Falls dieses Menü defekt ist, entfernen Sie Zeugs aus minetest." +"conf)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" @@ -2079,7 +2079,7 @@ msgstr "3-Dimensionaler-Modus" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "3D-Modus-Parallaxstärke" +msgstr "3-D-Modus-Parallaxstärke" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2101,7 +2101,7 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" -"3D-Rauschen, das die Form von Schwebeländern definiert.\n" +"3-D-Rauschen, das die Form von Schwebeländern definiert.\n" "Falls vom Standardwert verschieden, müsste der Rauschwert „Skalierung“\n" "(standardmäßig 0.7) evtl. angepasst werden, da die Schwebeland-\n" "zuspitzung am Besten funktioniert, wenn dieses Rauschen\n" @@ -2965,7 +2965,6 @@ msgid "Desynchronize block animation" msgstr "Blockanimationen desynchronisieren" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" msgstr "Grabetaste" @@ -3142,7 +3141,7 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" -"Aktiviert filmisches Tone-Mapping wie in Hables „Uncharted 2“.\n" +"Aktiviert filmische Dynamikkompression wie in Hables „Uncharted 2“.\n" "Simuliert die Tonkurve von fotografischem Film und wie dies das Aussehen\n" "von „High Dynamic Range“-Bildern annähert. Mittlerer Kontrast wird leicht\n" "verstärkt, aufleuchtende Bereiche und Schatten werden graduell komprimiert." @@ -3283,7 +3282,7 @@ msgstr "Fülltiefenrauschen" #: src/settings_translation_file.cpp msgid "Filmic tone mapping" -msgstr "Filmisches Tone-Mapping" +msgstr "Filmische Dynamikkompression" #: src/settings_translation_file.cpp msgid "" @@ -4154,7 +4153,6 @@ msgid "Joystick button repetition interval" msgstr "Joystick-Button-Wiederholungsrate" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" msgstr "Joystick-Totbereich" @@ -5884,9 +5882,8 @@ msgid "Pitch move mode" msgstr "Nick-Bewegungsmodus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "Bauentaste" +msgstr "Bautaste" #: src/settings_translation_file.cpp msgid "Place repetition interval" @@ -6542,7 +6539,7 @@ msgstr "Stufenbergsausbreitungsrauschen" #: src/settings_translation_file.cpp msgid "Strength of 3D mode parallax." -msgstr "Stärke von 3D-Modus-Parallax." +msgstr "Stärke von 3-D-Modus-Parallax." #: src/settings_translation_file.cpp msgid "" @@ -6668,7 +6665,6 @@ msgid "The URL for the content repository" msgstr "Die URL für den Inhaltespeicher" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" msgstr "Der Totbereich des Joysticks" @@ -6813,13 +6809,12 @@ msgstr "" "wenn eine Joystick-Tastenkombination gedrückt gehalten wird." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." msgstr "" -"Die Zeit in Sekunden, in dem Blockplatzierung wiederholt werden, wenn\n" -"die Bauentaste gedrückt gehalten wird." +"Die Zeit in Sekunden, in dem die Blockplatzierung wiederholt wird, wenn\n" +"die Bautaste gedrückt gehalten wird." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6996,14 +6991,15 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" -"Benutze multi-sample antialiasing (MSAA) um Blockecken zu glätten.\n" -"Dieser Algorithmus glättet das 3D-Sichtfeld während das Bild scharf bleibt,\n" +"Multi-Sample-Antialiasing (MSAA) benutzen, um Blockecken zu glätten.\n" +"Dieser Algorithmus glättet das 3-D-Sichtfeld während das Bild scharf bleibt," +"\n" "beeinträchtigt jedoch nicht die Textureninnenflächen\n" "(was sich insbesondere bei transparenten Texturen bemerkbar macht).\n" -"Sichtbare Lücken erscheinen zwischen Blöcken wenn Shader ausgeschaltet sind.." +"Sichtbare Lücken erscheinen zwischen Blöcken, wenn Shader ausgeschaltet sind." "\n" -"Wenn der Wert auf 0 steht, ist MSAA deaktiviert..\n" -"Ein Neustart ist erforderlich, nachdem diese Option geändert worden ist.." +"Wenn der Wert auf 0 steht, ist MSAA deaktiviert.\n" +"Ein Neustart ist erforderlich, nachdem diese Option geändert worden ist." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -7415,10 +7411,10 @@ msgid "" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" "ZLib-Kompressionsniveau für Kartenblöcke im Festspeicher.\n" -"-1 - zlib Standard-Kompressionsniveau\n" +"-1 - Zlib-Standard-Kompressionsniveau\n" "0 - keine Kompression, am schnellsten\n" "9 - beste Kompression, am langsamsten\n" -"(Niveau 1-3 verwenden zlibs \"schnelles\" Verfahren, 4-9 das normale " +"(Niveaus 1-3 verwenden Zlibs „schnelles“ Verfahren, 4-9 das normale " "Verfahren)" #: src/settings_translation_file.cpp @@ -7430,10 +7426,10 @@ msgid "" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" "ZLib-Kompressionsniveau für Kartenblöcke, die zu Clients gesendet werden.\n" -"-1 - zlib Standard-Kompressionsniveau\n" +"-1 - Zlib-Standard-Kompressionsniveau\n" "0 - keine Kompression, am schnellsten\n" "9 - beste Kompression, am langsamsten\n" -"(Niveau 1-3 verwenden zlibs \"schnelles\" Verfahren, 4-9 das normale " +"(Niveaus 1-3 verwenden Zlibs „schnelles“ Verfahren, 4-9 das normale " "Verfahren)" #: src/settings_translation_file.cpp From 2291b7ebb8a54b75f882843752285248747a68e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Skalick=C3=BD?= Date: Mon, 1 Feb 2021 13:36:41 +0000 Subject: [PATCH 536/624] Translated using Weblate (Czech) Currently translated at 53.5% (724 of 1353 strings) --- po/cs/minetest.po | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/po/cs/minetest.po b/po/cs/minetest.po index 62cba7656..e9cd790c9 100644 --- a/po/cs/minetest.po +++ b/po/cs/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Czech (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-11-08 06:26+0000\n" -"Last-Translator: Janar Leas \n" +"PO-Revision-Date: 2021-02-03 04:31+0000\n" +"Last-Translator: Vít Skalický \n" "Language-Team: Czech \n" "Language: cs\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.3.2\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Zemřel jsi" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -108,7 +108,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Najít více modů" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -153,7 +153,7 @@ msgstr "zapnuto" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" již existuje. Chcete jej přepsat?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." @@ -161,18 +161,19 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 od $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 se stahuje,\n" +"$2 čeká ve frontě" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Nahrávám..." +msgstr "$1 se stahuje..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." From fbdb517274467779d898b2b32164c5ae78abbc64 Mon Sep 17 00:00:00 2001 From: Ronoaldo Pereira Date: Wed, 3 Feb 2021 04:26:35 +0000 Subject: [PATCH 537/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 93.7% (1269 of 1353 strings) --- po/pt_BR/minetest.po | 769 +++++++++++++++++++++++-------------------- 1 file changed, 410 insertions(+), 359 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index 811834c6b..579069fa6 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-01-22 03:32+0000\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" "Last-Translator: Ronoaldo Pereira \n" "Language-Team: Portuguese (Brazil) \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -60,11 +60,11 @@ msgstr "O servidor suporta versões de protocolo entre $1 e $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "Nós apenas suportamos a versão de protocolo $1." +msgstr "Suportamos apenas o protocolo de versão $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "Nós suportamos as versões de protocolo entre $1 e $2 ." +msgstr "Suportamos protocolos com versões entre $1 e $2." #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_create_world.lua @@ -125,7 +125,7 @@ msgstr "Nenhuma descrição de jogo disponível." #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "Sem dependências rígidas" +msgstr "Sem dependências" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -154,52 +154,51 @@ msgstr "habilitado" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" já existe. Gostaria de sobrescrevê-lo?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "As dependências $1 e $2 serão instaladas." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 por $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 baixando,\n" +"$2 na fila" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Baixando..." +msgstr "$1 baixando..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 dependências obrigatórias não puderam ser encontradas." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 será instalado, e $2 dependências serão ignoradas." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Todos os pacotes" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Essa tecla já está em uso" +msgstr "Já instalado" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Voltar ao menu principal" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Criar Jogo" +msgstr "Jogo Base:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -211,7 +210,7 @@ msgstr "Baixando..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "Falhou em baixar $1" +msgstr "Falha ao baixar $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -223,14 +222,12 @@ msgid "Install" msgstr "Instalar" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Instalar" +msgstr "Instalar $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Dependências opcionais:" +msgstr "Instalar dependências ausentes" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -239,33 +236,31 @@ msgstr "Modulos (Mods)" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "Nenhum pacote pode ser recuperado" +msgstr "Nenhum pacote pôde ser recuperado" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "Sem resultados" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Atualizar" +msgstr "Sem atualizações" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Mutar som" +msgstr "Não encontrado" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Sobrescrever" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Verifique se o jogo base está correto." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "Na fila" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -281,11 +276,11 @@ msgstr "Atualizar" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Atualizar tudo [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Veja mais informações em um navegador da web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -297,15 +292,15 @@ msgstr "Terreno adicional" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "Frio de altitude" +msgstr "Altitude fria" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "Frio de altitude" +msgstr "Altitude seca" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "Harmonização do bioma" +msgstr "Transição de bioma" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" @@ -333,7 +328,7 @@ msgstr "Baixe um jogo, como Minetest Game, do site minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "Baixe um apartir do site minetest.net" +msgstr "Baixe um a partir do site minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" @@ -345,7 +340,7 @@ msgstr "Terreno plano" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "Ilhas flutuantes" +msgstr "Ilhas flutuantes no céu" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" @@ -361,7 +356,7 @@ msgstr "Gera terrenos não fractais: Oceanos e subterrâneos" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "Montanhas" +msgstr "Colinas" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -385,11 +380,11 @@ msgstr "Gerador de mapa" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "Flags do gerador de mundo" +msgstr "Opções do gerador de mapas" #: builtin/mainmenu/dlg_create_world.lua msgid "Mapgen-specific flags" -msgstr "Parâmetros específicos do gerador de mundo V5" +msgstr "Parâmetros específicos do gerador de mapas" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" @@ -409,11 +404,11 @@ msgstr "Nenhum jogo selecionado" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "Reduz calor com altitude" +msgstr "Reduz calor com a altitude" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "Reduz humidade com altitude" +msgstr "Reduz humidade com a altitude" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" @@ -426,7 +421,7 @@ msgstr "Rios ao nível do mar" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "Seed" +msgstr "Semente (Seed)" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" @@ -454,11 +449,11 @@ msgstr "Temperado, Deserto, Selva" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "Temperado, Deserto, Selva, Tundra, Floresta Boreal" +msgstr "Temperado, Deserto, Selva, Tundra, Taiga" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "Altura da erosão de terreno" +msgstr "Erosão na superfície do terreno" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" @@ -466,16 +461,15 @@ msgstr "Árvores e relva da selva" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "Rios profundos" +msgstr "Variar altura dos rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "Cavernas bastante profundas" +msgstr "Cavernas muito grandes nas profundezas do subsolo" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." -msgstr "" -"Aviso: O game \"minimal development test\" apenas serve para desenvolvedores." +msgstr "Aviso: O jogo Development Test é projetado para desenvolvedores." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -513,7 +507,7 @@ msgstr "Aceitar" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "Renomear pacote de módulos:" +msgstr "Renomear Modpack:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -521,7 +515,7 @@ msgid "" "override any renaming here." msgstr "" "Esse modpack possui um nome explícito em seu modpack.conf que vai " -"sobrescrever qualquer renomeio aqui." +"sobrescrever qualquer nome aqui." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" @@ -569,7 +563,7 @@ msgstr "Persistência" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "Por favor insira um inteiro válido." +msgstr "Por favor, insira um inteiro válido." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." @@ -577,7 +571,7 @@ msgstr "Por favor, insira um número válido." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Restaurar para o padrão" +msgstr "Restaurar Padrão" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" @@ -644,7 +638,7 @@ msgstr "valor absoluto" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "Padrões" +msgstr "padrão" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -660,34 +654,33 @@ msgstr "$1 (Habilitado)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" -msgstr "$1 módulos" +msgstr "$1 mods" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "Não foi possível instalar $1 para $2" +msgstr "Não foi possível instalar $1 em $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" -"Instalação de módulo: não foi possível encontrar o nome real do módulo: $1" +msgstr "Instalação de mod: não foi possível encontrar o nome real do mod: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Instalação do Mod: não foi possível encontrar o nome da pasta adequado para " +"Instalação de mod: não foi possível encontrar o nome da pasta adequado para " "o modpack $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "Instalar: Tipo de arquivo \"$1\" não suportado ou corrompido" +msgstr "Instalação: Tipo de arquivo \"$1\" não suportado ou corrompido" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "Instalar: arquivo: \"$1\"" +msgstr "Instalação: arquivo: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "Incapaz de encontrar um módulo ou modpack válido" +msgstr "Incapaz de encontrar um mod ou modpack válido" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -699,7 +692,7 @@ msgstr "Não foi possível instalar um jogo como um $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a mod as a $1" -msgstr "Não foi possível instalar um módulo como um $1" +msgstr "Não foi possível instalar um mod como um $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" @@ -712,8 +705,8 @@ msgstr "Carregando..." #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "" -"Tente reabilitar a lista de servidores públicos e verifique sua conexão com " -"a internet." +"Tente reativar a lista de servidores públicos e verifique sua conexão com a " +"internet." #: builtin/mainmenu/tab_content.lua msgid "Browse online content" @@ -725,7 +718,7 @@ msgstr "Conteúdo" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" -msgstr "Desabilitar pacote de texturas" +msgstr "Desabilitar Pacote de Texturas" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -733,7 +726,7 @@ msgstr "Informação:" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" -msgstr "Pacotes instalados:" +msgstr "Pacotes Instalados:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." @@ -741,7 +734,7 @@ msgstr "Sem dependências." #: builtin/mainmenu/tab_content.lua msgid "No package description available" -msgstr "Nenhuma descrição do pacote disponível" +msgstr "Nenhuma descrição de pacote disponível" #: builtin/mainmenu/tab_content.lua msgid "Rename" @@ -749,66 +742,67 @@ msgstr "Renomear" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" -msgstr "Desinstalar o pacote" +msgstr "Desinstalar Pacote" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" -msgstr "Usar pacote de texturas" +msgstr "Usar Pacote de Texturas" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" -msgstr "Colaboradores ativos" +msgstr "Colaboradores Ativos" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "Desenvolvedores principais" +msgstr "Desenvolvedores Principais" #: builtin/mainmenu/tab_credits.lua msgid "Credits" msgstr "Créditos" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Selecione o diretório" +msgstr "Abrir diretório de dados do usuário" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Abre o diretório que contém mundos, jogos, mods fornecidos pelo usuário,\n" +"e pacotes de textura em um gerenciador / navegador de arquivos." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" -msgstr "Colaboradores anteriores" +msgstr "Colaboradores Anteriores" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "Desenvolvedores principais anteriores" +msgstr "Desenvolvedores Principais Anteriores" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "Anunciar servidor" +msgstr "Anunciar Servidor" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" -msgstr "Endereço de Bind" +msgstr "Endereço" #: builtin/mainmenu/tab_local.lua msgid "Creative Mode" -msgstr "Modo criativo" +msgstr "Modo Criativo" #: builtin/mainmenu/tab_local.lua msgid "Enable Damage" -msgstr "Habilitar dano" +msgstr "Habilitar Dano" #: builtin/mainmenu/tab_local.lua msgid "Host Game" -msgstr "Criar Jogo" +msgstr "Hospedar Jogo" #: builtin/mainmenu/tab_local.lua msgid "Host Server" -msgstr "Criar Servidor" +msgstr "Hospedar Servidor" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" @@ -816,7 +810,7 @@ msgstr "Instalar jogos do ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Nome" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -827,9 +821,8 @@ msgid "No world created or selected!" msgstr "Nenhum mundo criado ou selecionado!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Nova senha" +msgstr "Senha" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -840,9 +833,8 @@ msgid "Port" msgstr "Porta" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Selecione um mundo:" +msgstr "Selecione Mods" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -850,11 +842,11 @@ msgstr "Selecione um mundo:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" -msgstr "Porta do servidor" +msgstr "Porta do Servidor" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "Iniciar o jogo" +msgstr "Iniciar Jogo" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" @@ -874,15 +866,15 @@ msgstr "Dano habilitado" #: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" -msgstr "Deletar Favorito" +msgstr "Rem. Favorito" #: builtin/mainmenu/tab_online.lua msgid "Favorite" -msgstr "Favoritos" +msgstr "Favorito" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "Juntar-se ao jogo" +msgstr "Entrar em um Jogo" #: builtin/mainmenu/tab_online.lua msgid "Name / Password" @@ -919,7 +911,7 @@ msgstr "Todas as configurações" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "Antialiasing:" +msgstr "Anti-aliasing:" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" @@ -994,9 +986,8 @@ msgid "Shaders" msgstr "Sombreadores" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Ilhas flutuantes (experimental)" +msgstr "Sombreadores (experimental)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1093,7 +1084,7 @@ msgstr "Nome de jogador muito longo." #: src/client/clientlauncher.cpp msgid "Please choose a name!" -msgstr "Por favor escolha um nome!" +msgstr "Por favor, escolha um nome!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " @@ -1101,7 +1092,7 @@ msgstr "Arquivo de senha fornecido falhou em abrir : " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " -msgstr "O caminho do mundo providenciado não existe. " +msgstr "Caminho informado para o mundo não existe: " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" @@ -1129,7 +1120,7 @@ msgstr "- Endereço: " #: src/client/game.cpp msgid "- Creative Mode: " -msgstr "Modo Criativo: " +msgstr "- Modo Criativo: " #: src/client/game.cpp msgid "- Damage: " @@ -1197,7 +1188,7 @@ msgid "Continue" msgstr "Continuar" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1215,32 +1206,19 @@ msgid "" "- %s: chat\n" msgstr "" "Controles:\n" -"\n" -"- %s1: andar para frente\n" -"\n" -"- %s2: andar para trás\n" -"\n" -"- %s3: andar para a esquerda\n" -"\n" -"-%s4: andar para a direita\n" -"\n" -"- %s5: pular/escalar\n" -"\n" -"- %s6: esgueirar/descer\n" -"\n" -"- %s7: soltar item\n" -"\n" -"- %s8: inventário\n" -"\n" +"- %s: mover para frente\n" +"- %s: mover para trás\n" +"- %s: mover para esquerda\n" +"- %s: mover para direita\n" +"- %s: pular/subir\n" +"- %s: cavar/socar\n" +"- %s: colocar/usar\n" +"- %s: andar furtivamente/descer\n" +"- %s: soltar item\n" +"- %s: inventário\n" "- Mouse: virar/olhar\n" -"\n" -"- Botão esquerdo do mouse: cavar/dar soco\n" -"\n" -"- Botão direito do mouse: colocar/usar\n" -"\n" "- Roda do mouse: selecionar item\n" -"\n" -"- %s9: bate-papo\n" +"- %s: bate-papo\n" #: src/client/game.cpp msgid "Creating client..." @@ -1316,7 +1294,7 @@ msgstr "Modo rápido habilitado" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Modo rápido habilitado(note: sem privilégio 'fast')" +msgstr "Modo rápido habilitado (nota: sem o privilégio 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" @@ -1432,11 +1410,11 @@ msgstr "Som mutado" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "Som do sistema está desativado" +msgstr "Sistema de som está desativado" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "Som do sistema não é suportado nesta versão" +msgstr "Sistema de som não é suportado nesta versão" #: src/client/game.cpp msgid "Sound unmuted" @@ -1767,19 +1745,18 @@ msgid "Minimap hidden" msgstr "Minimapa escondido" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Minimapa em modo radar, zoom 1x" +msgstr "Minimapa em modo radar, Zoom %dx" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Minimapa em modo de superfície, zoom 1x" +msgstr "Minimapa em modo de superfície, Zoom %dx" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Tamanho mínimo da textura" +msgstr "Minimapa em modo de textura" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -1889,11 +1866,11 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "Comandos de Local" +msgstr "Comando local" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "Mutar" +msgstr "Mudo" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" @@ -2066,7 +2043,7 @@ msgstr "Ruído 2D que controla o formato/tamanho de colinas." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "Ruído 2D que controla o formato/tamanho de montanhas de etapa." +msgstr "Ruído 2D que controla o formato/tamanho de montanhas de caminhada." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." @@ -2078,7 +2055,9 @@ msgstr "2D noise que controla o tamanho/ocorrência de colinas." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "Ruído 2D que controla o tamanho/ocorrência de montanhas de passo." +msgstr "" +"Ruído 2D que controla o tamanho/ocorrência de intervalos de montanhas de " +"caminhar." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." @@ -2098,14 +2077,14 @@ msgstr "Força de paralaxe do modo 3D" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "barulho 3D que define cavernas gigantes." +msgstr "Ruído 3D que define cavernas gigantes." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" -"barulho 3D que define estrutura de montanha e altura.\n" +"Ruído 3D que define estrutura de montanha e altura.\n" "Também define a estrutura do terreno da montanha das ilhas flutuantes." #: src/settings_translation_file.cpp @@ -2190,7 +2169,7 @@ msgstr "Intervalo do ABM" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "Alocação de tempo do ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2314,7 +2293,7 @@ msgstr "Concatenar nome do item a descrição." #: src/settings_translation_file.cpp msgid "Apple trees noise" -msgstr "Barulho das Árvores de Macieira" +msgstr "Ruído de Árvores de Macieira" #: src/settings_translation_file.cpp msgid "Arm inertia" @@ -2401,11 +2380,11 @@ msgstr "Privilégios básicos" #: src/settings_translation_file.cpp msgid "Beach noise" -msgstr "barulho de praia" +msgstr "Ruído de praias" #: src/settings_translation_file.cpp msgid "Beach noise threshold" -msgstr "Limitar o barulho da praia" +msgstr "Limiar do ruído de praias." #: src/settings_translation_file.cpp msgid "Bilinear filtering" @@ -2484,15 +2463,15 @@ msgstr "Tecla para alternar atualização da câmera" #: src/settings_translation_file.cpp msgid "Cave noise" -msgstr "Barulho nas caverna" +msgstr "Ruído de cavernas" #: src/settings_translation_file.cpp msgid "Cave noise #1" -msgstr "Barulho na caverna #1" +msgstr "Ruído de cavernas #1" #: src/settings_translation_file.cpp msgid "Cave noise #2" -msgstr "Barulho na caverna #2" +msgstr "Ruído de cavernas #2" #: src/settings_translation_file.cpp msgid "Cave width" @@ -2500,11 +2479,11 @@ msgstr "Largura da caverna" #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "Barulho na caverna1" +msgstr "Ruídos de Cave1" #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "Barulho na caverna2" +msgstr "Ruídos de Cave2" #: src/settings_translation_file.cpp msgid "Cavern limit" @@ -2512,7 +2491,7 @@ msgstr "Limite da caverna" #: src/settings_translation_file.cpp msgid "Cavern noise" -msgstr "Barulho da caverna" +msgstr "Ruído de cavernas" #: src/settings_translation_file.cpp msgid "Cavern taper" @@ -2531,6 +2510,8 @@ msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"Centro da faixa de aumento da curva de luz.\n" +"Onde 0.0 é o nível mínimo de luz, 1.0 é o nível máximo de luz." #: src/settings_translation_file.cpp msgid "Chat font size" @@ -2698,7 +2679,7 @@ msgstr "Lista negra de flags do ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "Máximo de downloads simultâneos de ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2766,11 +2747,12 @@ msgid "Crosshair alpha" msgstr "Alpha do cursor" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Alpha do cursor (o quanto ele é opaco, níveis entre 0 e 255)." +msgstr "" +"Alpha do cursor (o quanto ele é opaco, níveis entre 0 e 255).\n" +"Também controla a cor da cruz do objeto" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2781,6 +2763,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Cor da cruz (R, G, B).\n" +"Também controla a cor da cruz do objeto" #: src/settings_translation_file.cpp msgid "DPI" @@ -2945,8 +2929,8 @@ msgid "" "Description of server, to be displayed when players join and in the " "serverlist." msgstr "" -"Descrição do servidor, a ser exibida quando os jogadores se se conectarem e " -"na lista de servidores." +"Descrição do servidor, a ser exibida quando os jogadores se conectarem e na " +"lista de servidores." #: src/settings_translation_file.cpp msgid "Desert noise threshold" @@ -2965,9 +2949,8 @@ msgid "Desynchronize block animation" msgstr "Dessincronizar animação do bloco" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Tecla direita" +msgstr "Tecla para escavar" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3184,11 +3167,18 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Expoente de estreitamento das ilhas flutuantes. Altera o comportamento de " +"afilamento.\n" +"Valor = 1.0 cria um afunilamento linear uniforme.\n" +"Valores> 1.0 criam um estreitamento suave adequado para as ilhas flutuantes\n" +"padrão (separadas).\n" +"Valores <1.0 (por exemplo 0.25) criam um nível de superfície mais definido " +"com\n" +"planícies mais planas, adequadas para uma camada sólida de ilhas flutuantes." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "Máximo FPS quando o jogo é pausado." +msgstr "FPS quando o jogo é pausado ou perde o foco" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3203,9 +3193,8 @@ msgid "Fall bobbing factor" msgstr "Fator de balanço em queda" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fallback font path" -msgstr "Fonte Alternativa" +msgstr "Fonte reserva" #: src/settings_translation_file.cpp msgid "Fallback font shadow" @@ -3306,39 +3295,32 @@ msgid "Fixed virtual joystick" msgstr "Joystick virtual fixo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Densidade da Ilha Flutuante montanhosa" +msgstr "Densidade das terras flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Y máximo da dungeon" +msgstr "Y máximo das terras flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Y mínimo da dungeon" +msgstr "Y mínimo das terras flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Ruído base de Ilha Flutuante" +msgstr "Ruído das terras flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Expoente de terras flutuantes montanhosas" +msgstr "Expoente de conicidade das ilhas flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Ruído base de Ilha Flutuante" +msgstr "Distância de afilamento da ilha flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Nível de água" +msgstr "Nível de água da ilha flutuante" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3362,11 +3344,11 @@ msgstr "Tecla de comutação de névoa" #: src/settings_translation_file.cpp msgid "Font bold by default" -msgstr "" +msgstr "Fonte em negrito por padrão" #: src/settings_translation_file.cpp msgid "Font italic by default" -msgstr "" +msgstr "Fonte em itálico por padrão" #: src/settings_translation_file.cpp msgid "Font shadow" @@ -3382,21 +3364,24 @@ msgstr "Tamanho da fonte" #: src/settings_translation_file.cpp msgid "Font size of the default font in point (pt)." -msgstr "" +msgstr "Tamanho da fonte padrão em pontos (pt)." #: src/settings_translation_file.cpp msgid "Font size of the fallback font in point (pt)." -msgstr "" +msgstr "Tamanho da fonte reserva em pontos (pt)." #: src/settings_translation_file.cpp msgid "Font size of the monospace font in point (pt)." -msgstr "" +msgstr "Tamanho da fonte de largura fixa em pontos (pt)." #: src/settings_translation_file.cpp msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Tamanho da fonte do texto de bate-papo recente e do prompt do bate-papo em " +"pontos (pt).\n" +"O valor 0 irá utilizar o tamanho padrão de fonte." #: src/settings_translation_file.cpp msgid "" @@ -3404,6 +3389,9 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Formato das mensagem de bate-papo dos jogadores. Os textos abaixo são " +"palavras-chave válidas:\n" +"@name, @message, @timestamp (opcional)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3532,18 +3520,20 @@ msgstr "" "todas as decorações." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Gradient of light curve at maximum light level.\n" "Controls the contrast of the highest light levels." -msgstr "Curva gradiente de iluminaçao no nível de luz maximo." +msgstr "" +"Gradiente da curva de luz no nível de luz máximo.\n" +"Controla o contraste dos níveis de luz mais altos." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Gradient of light curve at minimum light level.\n" "Controls the contrast of the lowest light levels." -msgstr "Curva gradiente de iluminação no nível de luz mínimo." +msgstr "" +"Gradiente da curva de luz no nível de luz mínimo.\n" +"Controla o contraste dos níveis de luz mais baixos." #: src/settings_translation_file.cpp msgid "Graphics" @@ -3574,7 +3564,6 @@ msgid "HUD toggle key" msgstr "Tecla de comutação HUD" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" @@ -3582,9 +3571,9 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Lidando com funções obsoletas da API Lua:\n" -"-...legacy: (tenta) imitar o comportamento antigo (padrão para release).\n" -"-...log: Imita e gera log das funções obsoletas (padrão para debug).\n" -"-...error: Aborta quando chama uma função obsoleta (sugerido para " +"-...none: não registra funções obsoletas.\n" +"-...log: imita e registra as funções obsoletas chamadas (padrão).\n" +"-...error: aborta quando chama uma função obsoleta (sugerido para " "desenvolvedores de mods)." #: src/settings_translation_file.cpp @@ -3658,18 +3647,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Aceleração horizontal no ar ao saltar ou cair,\n" +"em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Aceleração horizontal e vertical no modo rápido,\n" +"em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Aceleração horizontal e vertical no solo ou ao escalar,\n" +"em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3817,6 +3812,9 @@ msgid "" "If negative, liquid waves will move backwards.\n" "Requires waving liquids to be enabled." msgstr "" +"A velocidade com que as ondas líquidas se movem. Maior = mais rápido.\n" +"Se negativo, as ondas líquidas se moverão para trás.\n" +"Requer que a ondulação de líquidos esteja ativada." #: src/settings_translation_file.cpp msgid "" @@ -3957,6 +3955,12 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Se o tamanho do arquivo debug.txt exceder o número de megabytes " +"especificado\n" +"nesta configuração quando ele for aberto, o arquivo é movido para debug.txt." +"1,\n" +"excluindo um debug.txt.1 mais antigo, se houver.\n" +"debug.txt só é movido se esta configuração for positiva." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -3994,15 +3998,15 @@ msgstr "Tecla de aumentar volume" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Velocidade vertical inicial ao saltar, em nós por segundo." #: src/settings_translation_file.cpp msgid "" "Instrument builtin.\n" "This is usually only needed by core/builtin contributors" msgstr "" -"Monitoração imbutida.\n" -"Isto é usualmente apenas nessesário por contribuidores core/builtin" +"Monitoração embutida.\n" +"Isto é necessário apenas por contribuidores core/builtin" #: src/settings_translation_file.cpp msgid "Instrument chatcommands on registration." @@ -4063,14 +4067,12 @@ msgid "Invert vertical mouse movement." msgstr "Inverta o movimento vertical do mouse." #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho da fonte em itálico" #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic monospace font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho da fonte em itálico monoespaçada" #: src/settings_translation_file.cpp msgid "Item entity TTL" @@ -4102,9 +4104,8 @@ msgid "Joystick button repetition interval" msgstr "Intervalo de repetição do botão do Joystick" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "Tipo do Joystick" +msgstr "\"Zona morta\" do joystick" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4202,18 +4203,17 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para diminuir o alcance de visão.\n" +"Tecla para diminuir o volume.\n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para pular. \n" +"Tecla para escavar. \n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4360,13 +4360,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para pular. \n" +"Tecla para colocar objetos. \n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4928,15 +4927,15 @@ msgstr "Profundidade de cavernas grandes" #: src/settings_translation_file.cpp msgid "Large cave maximum number" -msgstr "" +msgstr "Número máximo de cavernas grandes" #: src/settings_translation_file.cpp msgid "Large cave minimum number" -msgstr "" +msgstr "Número mínimo de cavernas grandes" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" -msgstr "" +msgstr "Proporção inundada de cavernas grandes" #: src/settings_translation_file.cpp msgid "Large chat console key" @@ -4972,13 +4971,12 @@ msgstr "" "geralmente atualizados em rede." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" -"Definido como true habilita balanço folhas.\n" -"Requer sombreadores serem ativados." +"Comprimento das ondas líquidas.\n" +"Requer que a ondulação de líquidos esteja ativada." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" @@ -5013,34 +5011,28 @@ msgstr "" "- verbose" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost" -msgstr "Aumento leve da curva de luz" +msgstr "Aumento da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost center" -msgstr "Centro do aumento leve da curva de luz" +msgstr "Centro do aumento da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost spread" -msgstr "Extensão do aumento leve da curva de luz" +msgstr "Extensão do aumento da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve gamma" -msgstr "Aumento leve da curva de luz" +msgstr "Gamma da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve high gradient" -msgstr "Aumento leve da curva de luz" +msgstr "Gradiente alto da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve low gradient" -msgstr "Centro do aumento leve da curva de luz" +msgstr "Gradiente baixo da curva de luz" #: src/settings_translation_file.cpp msgid "" @@ -5084,9 +5076,8 @@ msgid "Liquid queue purge time" msgstr "Tempo para limpar a lista de espera para a atualização de líquidos" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Velocidade do afundamento de liquido" +msgstr "Afundamento do líquido" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -5119,9 +5110,8 @@ msgid "Lower Y limit of dungeons." msgstr "Menor limite Y de dungeons." #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "Menor limite Y de dungeons." +msgstr "Menor limite Y de ilhas flutuantes." #: src/settings_translation_file.cpp msgid "Main menu script" @@ -5144,11 +5134,11 @@ msgstr "Torna todos os líquidos opacos" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Nível de Compressão de Mapa no Armazenamento em Disco" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Nível de Compressão do Mapa na Transferência em Rede" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5159,23 +5149,22 @@ msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "Atributos de geração de mapa específicos ao gerador Carpathian." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" -"Atributos de geração de mapas específicos para o gerador de mundo plano.\n" +"Atributos de geração de mapas específicos para o Gerador de mundo Plano.\n" "Lagos e colinas ocasionalmente podem ser adicionados ao mundo plano." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Fractal.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Atributos de geração de mapa específicos ao gerador V7.\n" -"'ridges' habilitam os rios." +"Atributos de geração de mapas específicos para o Gerador de mundo Fractal.\n" +"'terreno' permite a geração de terreno não fractal:\n" +"oceano, ilhas e subterrâneos." #: src/settings_translation_file.cpp msgid "" @@ -5190,7 +5179,7 @@ msgstr "" "'altitude_chill':Reduz o calor com a altitude.\n" "'humid_rivers':Aumenta a umidade em volta dos rios.\n" "'profundidade_variada_rios': Se habilitado, baixa umidade e alto calor faz " -"com que que rios se tornem mais rasos e eventualmente sumam.\n" +"com que rios se tornem mais rasos e eventualmente sumam.\n" "'altitude_dry': Reduz a umidade com a altitude." #: src/settings_translation_file.cpp @@ -5198,28 +5187,29 @@ msgid "Map generation attributes specific to Mapgen v5." msgstr "Atributos de geração de mapa específicos ao gerador V5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" -"Atributos de geração de mapas específico para o gerador de mundo v6.\n" -" O 'snowbiomes' flag habilita o novo sistema de bioma 5.\n" -"Quando o sistema de novo bioma estiver habilitado, selvas são " -"automaticamente habilitadas e a flag 'jungles' é ignorada." +"Atributos de geração de mapas específicos para Gerador de mapas v6.\n" +"A opção 'snowbiomes' habilita o novo sistema de 5 biomas.\n" +"Quando a opção 'snowbiomes' está ativada, as selvas são ativadas " +"automaticamente e\n" +"a opção 'jungles' é ignorada." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" -"Atributos de geração de mapa específicos ao gerador V7.\n" -"'ridges' habilitam os rios." +"Atributos de geração de mapas específicos para Gerador de mapas v7.\n" +"'ridges': rios.\n" +"'floatlands': massas de terra flutuantes na atmosfera.\n" +"'caverns': cavernas gigantes no subsolo." #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5268,9 +5258,8 @@ msgid "Mapgen Fractal" msgstr "Gerador de mundo Fractal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Flags específicas do gerador de mundo plano" +msgstr "Opções específicas do Gerador de mapas Fractal" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -5337,9 +5326,9 @@ msgid "Maximum FPS" msgstr "FPS máximo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "Máximo FPS quando o jogo é pausado." +msgstr "" +"FPS máximo quando a janela não está com foco, ou quando o jogo é pausado." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5351,17 +5340,19 @@ msgstr "Largura máxima da hotbar" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" +msgstr "Limite máximo do número aleatório de cavernas grandes por mapchunk." #: src/settings_translation_file.cpp msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" +msgstr "Limite máximo do número aleatório de cavernas pequenas por mapchunk." #: src/settings_translation_file.cpp msgid "" "Maximum liquid resistance. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Resistência líquida máxima. Controla desaceleração ao entrar num líquido\n" +"em alta velocidade." #: src/settings_translation_file.cpp msgid "" @@ -5379,25 +5370,22 @@ msgstr "" "Número máximo de blocos que podem ser enfileirados para o carregamento." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" -"Número máximo de blocos para serem enfileirados que estão a ser gerados.\n" -"Definido em branco para uma quantidade apropriada ser escolhida " -"automaticamente." +"Número máximo de blocos para serem enfileirado, dos que estão para ser " +"gerados.\n" +"Esse limite é forçado para cada jogador." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" -"Número máximo de blocos para ser enfileirado que serão carregados do " -"arquivo.\n" -"Definido em branco para uma quantidade apropriada ser escolhida " -"automaticamente." +"Número máximo de blocos para serem enfileirado, dos que estão para ser " +"carregados do arquivo.\n" +"Esse limite é forçado para cada jogador." #: src/settings_translation_file.cpp msgid "" @@ -5405,6 +5393,9 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"Número máximo de downloads paralelos. Downloads excedendo esse limite " +"esperarão numa fila.\n" +"Deve ser menor que curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5501,7 +5492,7 @@ msgstr "Método usado para destacar o objeto selecionado." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Nível mínimo de registro a ser impresso no chat." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5516,13 +5507,12 @@ msgid "Minimap scan height" msgstr "Altura de escaneamento do minimapa" #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "Ruído 3D que determina o número de cavernas por pedaço de mapa." +msgstr "Limite mínimo do número aleatório de grandes cavernas por mapchunk." #: src/settings_translation_file.cpp msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" +msgstr "Limite mínimo do número aleatório de cavernas pequenas por mapchunk." #: src/settings_translation_file.cpp msgid "Minimum texture size" @@ -5593,19 +5583,17 @@ msgid "Mute sound" msgstr "Mutar som" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" "Current mapgens in a highly unstable state:\n" "- The optional floatlands of v7 (disabled by default)." msgstr "" -"Nome do gerador de mapa usando quando criar um novo mundo.\n" -"Criar um mundo no menu principal vai sobrescrever isto.\n" -"Geradores de mapa estáveis atualmente:\n" -"v5, v6, v7(exceto terras flutuantes), singlenode.\n" -"'estável' significa que a forma do terreno em um mundo existente não será " -"alterado no futuro. Note que biomas definidos por jogos ainda podem mudar." +"Nome do gerador de mapas a ser usado ao criar um novo mundo.\n" +"Criar um mundo no menu principal substituirá isso.\n" +"Geradores de mapa atuais em um estado altamente instável:\n" +"- A opção de ilhas flutuantes do Gerador de mapas de v7 (desabilitado por " +"padrão)." #: src/settings_translation_file.cpp msgid "" @@ -5626,9 +5614,8 @@ msgstr "" "servidores." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near plane" -msgstr "plano próximo" +msgstr "Plano próximo" #: src/settings_translation_file.cpp msgid "Network" @@ -5671,7 +5658,6 @@ msgid "Number of emerge threads" msgstr "Número de seguimentos de emersão" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "Value 0:\n" @@ -5684,17 +5670,19 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" -"Número de thread emergentes para usar.\n" -"Vazio ou valor 0:\n" -"- Seleção automática. O número de threads emergentes será 'número de " -"processadores - 2', com limite mínimo de 1.\n" +"Número de threads de emersão a serem usadas.\n" +"Valor 0:\n" +"- Seleção automática. O número de threads de emersão será\n" +"- 'número de processadores - 2', com um limite inferior de 1.\n" "Qualquer outro valor:\n" -"- Especifica o número de threads emergentes com limite mínimo de 1.\n" -"Alerta: aumentando o número de threads emergentes aumenta a velocidade do " -"gerador, mas pode prejudicar o desemepenho interferindo com outros " -"processos, especialmente in singleplayer e/ou quando executando código lua " -"em 'on_generated'.\n" -"Para muitos usuários a opção mais recomendada é 1." +"- Especifica o número de threads de emersão, com um limite inferior de 1.\n" +"AVISO: Aumentar o número de threads de emersão aumenta a velocidade do motor " +"de\n" +"geração de mapas, mas isso pode prejudicar o desempenho do jogo, " +"interferindo com outros\n" +"processos, especialmente em singleplayer e / ou ao executar código Lua em " +"eventos\n" +"'on_generated'. Para muitos usuários, a configuração ideal pode ser '1'." #: src/settings_translation_file.cpp msgid "" @@ -5718,12 +5706,12 @@ msgstr "Líquidos Opacos" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" +msgstr "Opacidade (alpha) das sombras atrás da fonte padrão, entre 0 e 255." #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" +msgstr "Opacidade (alpha) da sombra atrás da fonte alternativa, entre 0 e 255." #: src/settings_translation_file.cpp msgid "" @@ -5742,12 +5730,20 @@ msgid "" "This font will be used for certain languages or if the default font is " "unavailable." msgstr "" +"Caminho da fonte alternativa.\n" +"Se a configuração \"freetype\" estiver ativa: Deve ser uma fonte TrueType.\n" +"Se a configuração \"freetype\" não estiver ativa: Deve ser uma fonte bitmap " +"ou de vetores XML.\n" +"Essa fonte será usada por certas línguas ou se a padrão não estiver " +"disponível." #: src/settings_translation_file.cpp msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Caminho para salvar capturas de tela. Pode ser absoluto ou relativo.\n" +"A pasta será criada se já não existe." #: src/settings_translation_file.cpp msgid "" @@ -5770,6 +5766,11 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "The fallback font will be used if the font cannot be loaded." msgstr "" +"Caminho para a fonte padrão.\n" +"Se a configuração \"freetype\" estiver ativa: Deve ser uma fonte TrueType.\n" +"Se a configuração \"freetype\" não estiver ativa: Deve ser uma fonte bitmap " +"ou de vetores XML.\n" +"A fonte alternativa será usada se não for possível carregar essa." #: src/settings_translation_file.cpp msgid "" @@ -5778,6 +5779,11 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "This font is used for e.g. the console and profiler screen." msgstr "" +"Caminho para a fonte monoespaçada.\n" +"Se a configuração \"freetype\" estiver ativa: Deve ser uma fonte TrueType.\n" +"Se a configuração \"freetype\" não estiver ativa: Deve ser uma fonte bitmap " +"ou de vetores XML.\n" +"Essa fonte será usada, por exemplo, no console e na tela de depuração." #: src/settings_translation_file.cpp msgid "Pause on lost window focus" @@ -5785,12 +5791,11 @@ msgstr "Pausa quando o foco da janela é perdido" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" -msgstr "" +msgstr "Limite de blocos na fila de espera de carregamento do disco por jogador" #: src/settings_translation_file.cpp -#, fuzzy msgid "Per-player limit of queued blocks to generate" -msgstr "Limite de filas emerge para gerar" +msgstr "Limite por jogador de blocos enfileirados para gerar" #: src/settings_translation_file.cpp msgid "Physics" @@ -5805,14 +5810,12 @@ msgid "Pitch move mode" msgstr "Modo movimento pitch" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "Tecla de voar" +msgstr "Tecla de colocar" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "Intervalo de repetição do clique direito" +msgstr "Intervalo de repetição da ação colocar" #: src/settings_translation_file.cpp msgid "" @@ -5882,7 +5885,7 @@ msgstr "Analizando" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Endereço do Prometheus" #: src/settings_translation_file.cpp msgid "" @@ -5891,10 +5894,14 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Endereço do Prometheus\n" +"Se o minetest for compilado com a opção ENABLE_PROMETHEUS ativa,\n" +"habilita a obtenção de métricas do Prometheus neste endereço.\n" +"As métricas podem ser obtidas em http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." -msgstr "" +msgstr "Proporção de cavernas grandes que contém líquido." #: src/settings_translation_file.cpp msgid "" @@ -5923,9 +5930,8 @@ msgid "Recent Chat Messages" msgstr "Mensagens de chat recentes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" -msgstr "Diretorio de reporte" +msgstr "Caminho da fonte regular" #: src/settings_translation_file.cpp msgid "Remote media" @@ -5998,14 +6004,12 @@ msgid "Right key" msgstr "Tecla direita" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Profundidade do Rio" +msgstr "Profundidade do canal do rio" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Profundidade do Rio" +msgstr "Largura do canal do rio" #: src/settings_translation_file.cpp msgid "River depth" @@ -6020,9 +6024,8 @@ msgid "River size" msgstr "Tamanho do Rio" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Profundidade do Rio" +msgstr "Largura do vale do rio" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -6138,7 +6141,6 @@ msgid "Selection box width" msgstr "Largura da caixa de seleção" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Selects one of 18 fractal types.\n" "1 = 4D \"Roundy\" Mandelbrot set.\n" @@ -6231,31 +6233,28 @@ msgstr "" "clientes." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." msgstr "" -"Definido como true habilita balanço folhas.\n" -"Requer sombreadores serem ativados." +"Definido como true habilita o balanço das folhas.\n" +"Requer que os sombreadores estejam ativados." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" -"Definido como true permite ondulação da água.\n" -"Requer sombreadores seres ativados." +"Definido como true permite ondulação de líquidos (como a água).\n" +"Requer que os sombreadores estejam ativados." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." msgstr "" "Definido como true permite balanço de plantas.\n" -"Requer sombreadores serem ativados." +"Requer que os sombreadores estejam ativados." #: src/settings_translation_file.cpp msgid "Shader path" @@ -6273,18 +6272,20 @@ msgstr "" "Só funcionam com o modo de vídeo OpenGL." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." -msgstr "Fonte de compensador de sombra, se 0 então sombra não será desenhada." +msgstr "" +"Distância (em pixels) da sombra da fonte padrão. Se 0, então a sombra não " +"será desenhada." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." -msgstr "Fonte de compensador de sombra, se 0 então sombra não será desenhada." +msgstr "" +"Distância (em pixels) da sombra da fonte de backup. Se 0, então nenhuma " +"sombra será desenhada." #: src/settings_translation_file.cpp msgid "Shape of the minimap. Enabled = round, disabled = square." @@ -6299,13 +6300,12 @@ msgid "Show entity selection boxes" msgstr "Mostrar as caixas de seleção entidades" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"Defina o idioma. Deixe vazio para usar a linguagem do sistema.\n" -"Apos mudar isso uma reinicialização é necessária." +"Mostrar caixas de seleção de entidades\n" +"É necessário reiniciar após alterar isso." #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -6346,11 +6346,11 @@ msgstr "Inclinação e preenchimento trabalham juntos para modificar as alturas. #: src/settings_translation_file.cpp msgid "Small cave maximum number" -msgstr "" +msgstr "Número máximo de cavernas pequenas" #: src/settings_translation_file.cpp msgid "Small cave minimum number" -msgstr "" +msgstr "Número mínimo de cavernas pequenas" #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." @@ -6393,7 +6393,7 @@ msgstr "Velocidade da furtividade" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Velocidade ao esgueirar-se, em nós (blocos) por segundo." #: src/settings_translation_file.cpp msgid "Sound" @@ -6426,16 +6426,19 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"Especifica o tamanho padrão da pilha de nós, items e ferramentas.\n" +"Note que mods e games talvez definam explicitamente um tamanho para certos (" +"ou todos) os itens." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Spread of light curve boost range.\n" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" -"Extensão do aumento médio da curva da luz.\n" -"Desvio padrão do aumento médio gaussiano." +"Ampliação da faixa de aumento da curva de luz.\n" +"Controla a largura do intervalo a ser aumentado.\n" +"O desvio padrão da gaussiana do aumento da curva de luz." #: src/settings_translation_file.cpp msgid "Static spawnpoint" @@ -6454,9 +6457,8 @@ msgid "Step mountain spread noise" msgstr "Extensão do ruído da montanha de passo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." -msgstr "Intensidade de paralaxe." +msgstr "Força da paralaxe do modo 3D." #: src/settings_translation_file.cpp msgid "" @@ -6464,6 +6466,9 @@ msgid "" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" +"Aumento da força da curva de luz.\n" +"Os 3 parâmetros de 'aumento' definem uma faixa\n" +"da curva de luz que é aumentada em brilho." #: src/settings_translation_file.cpp msgid "Strict protocol checking" @@ -6486,6 +6491,21 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Nível de superfície de água opcional colocada em uma camada sólida de " +"flutuação.\n" +"A água está desativada por padrão e só será colocada se este valor for " +"definido\n" +"acima de 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (o início do\n" +"afilamento superior).\n" +"*** AVISO, POTENCIAL PERIGO PARA OS MUNDOS E DESEMPENHO DO SERVIDOR ***:\n" +"Ao habilitar a colocação de água, as áreas flutuantes devem ser configuradas " +"e testadas\n" +"para ser uma camada sólida, definindo 'mgv7_floatland_density' para 2.0 (ou " +"outro\n" +"valor necessário dependendo de 'mgv7_np_floatland'), para evitar\n" +"fluxo de água extremo intensivo do servidor e para evitar grandes inundações " +"do\n" +"superfície do mundo abaixo." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6565,9 +6585,8 @@ msgid "The URL for the content repository" msgstr "A url para o repositório de conteúdo" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" -msgstr "O identificador do joystick para usar" +msgstr "A zona morta do joystick" #: src/settings_translation_file.cpp msgid "" @@ -6605,6 +6624,11 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" +"A altura máxima da superfície de líquidos com ondas.\n" +"4.0 = Altura da onda é dois nós.\n" +"0.0 = Onda nem se move.\n" +"O padrão é 1.0 (meio nó).\n" +"Requer ondas em líquidos habilitada." #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." @@ -6620,7 +6644,6 @@ msgstr "" "servidor e dos modificadores." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6630,14 +6653,14 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" -"O raio do volume de blocos em volta de cada jogador que é sujeito a coisas " -"de bloco ativo, em mapblocks (16 nós).\n" -"Em blocos ativos, objetos são carregados e ABMs executam.\n" -"Isto é também o alcançe mínimo em que objetos ativos(mobs) são mantidos.\n" -"Isto deve ser configurado junto com o alcance_objeto_ativo." +"O raio do volume dos blocos em torno de cada jogador que está sujeito ao\n" +"material de bloco ativo, declarado em mapblocks (16 nós).\n" +"Nos blocos ativos, os objetos são carregados e os ABMs executados.\n" +"Este também é o intervalo mínimo no qual os objetos ativos (mobs) são " +"mantidos.\n" +"Isso deve ser configurado junto com active_object_send_range_blocks." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6646,12 +6669,12 @@ msgid "" "On other platforms, OpenGL is recommended.\n" "Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" -"Renderizador de fundo para o irrlight.\n" -"Uma reinicialização é necessária após alterar isso.\n" -"Note: no android, use o OGLES1 caso em dúvida! O aplicativo pode falhar ao " -"abrir em outro caso.\n" -"Em outras plataformas, OpenGL é recomendo, e é o único driver com suporte a " -"sombreamento atualmente." +"O back-end de renderização para Irrlicht.\n" +"É necessário reiniciar após alterar isso.\n" +"Nota: No Android, use OGLES1 se não tiver certeza! O aplicativo pode falhar " +"ao iniciar de outra forma.\n" +"Em outras plataformas, OpenGL é recomendado.\n" +"Shaders são suportados por OpenGL (somente desktop) e OGLES2 (experimental)" #: src/settings_translation_file.cpp msgid "" @@ -6691,6 +6714,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"O tempo disponível permitido para ABMs executarem em cada passo (como uma " +"fração do intervalo do ABM)" #: src/settings_translation_file.cpp msgid "" @@ -6701,13 +6726,12 @@ msgstr "" "quando pressionando uma combinação de botão no joystick." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." msgstr "" -"O tempo em segundos entre repetidos cliques direitos ao segurar o botão " -"direito do mouse." +"O tempo em segundos que leva entre as colocações de nó repetidas ao segurar\n" +"o botão de colocar." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6787,7 +6811,6 @@ msgid "Trilinear filtering" msgstr "Filtragem tri-linear" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6810,7 +6833,6 @@ msgid "Undersampling" msgstr "Subamostragem" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6818,10 +6840,12 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"A subamostragem é semelhante ao uso de resolução de tela menor, mas se " -"aplica apenas ao mundo do jogo, mantendo a GUI (Interface Gráfica do " -"Usuário) intacta. Deve dar um aumento significativo no desempenho ao custo " -"de uma imagem menos detalhada." +"A subamostragem é semelhante a usar uma resolução de tela inferior, mas se " +"aplica\n" +"apenas para o mundo do jogo, mantendo a GUI intacta.\n" +"Deve dar um aumento significativo de desempenho ao custo de uma imagem menos " +"detalhada.\n" +"Valores mais altos resultam em uma imagem menos detalhada." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6836,9 +6860,8 @@ msgid "Upper Y limit of dungeons." msgstr "Limite topo Y de dungeons." #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "Limite topo Y de dungeons." +msgstr "Limite máximo Y para as ilhas flutuantes." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." @@ -6877,6 +6900,16 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"Use o anti-serrilhamento de várias amostras (MSAA) para suavizar as bordas " +"do bloco.\n" +"Este algoritmo suaviza a janela de visualização 3D enquanto mantém a imagem " +"nítida,\n" +"mas não afeta o interior das texturas\n" +"(que é especialmente perceptível com texturas transparentes).\n" +"Espaços visíveis aparecem entre os nós quando os sombreadores são " +"desativados.\n" +"Se definido como 0, MSAA é desativado.\n" +"É necessário reiniciar após alterar esta opção." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -6945,7 +6978,7 @@ msgstr "Controla o esparsamento/altura das colinas." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Velocidade vertical de escalda, em nós por segundo." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6990,13 +7023,12 @@ msgid "Volume" msgstr "Volume do som" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" -"Ativar mapeamento de oclusão de paralaxe.\n" -"Requer shaders a serem ativados." +"Volume de todos os sons.\n" +"Requer que o sistema de som esteja ativado." #: src/settings_translation_file.cpp msgid "" @@ -7013,7 +7045,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Velocidade do andar e voar, em nós por segundo." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -7022,6 +7054,7 @@ msgstr "Velocidade de caminhada" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Velocidade do caminhar, voar e escalar no modo rápido, em nós por segundo." #: src/settings_translation_file.cpp msgid "Water level" @@ -7040,22 +7073,18 @@ msgid "Waving leaves" msgstr "Balanço das árvores" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "Nós que balancam" +msgstr "Líquidos ondulantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "Altura de balanço da água" +msgstr "Altura da onda nos líquidos ondulantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" msgstr "Velocidade de balanço da água" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" msgstr "Comprimento de balanço da água" @@ -7111,14 +7140,14 @@ msgstr "" "texturas." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" -"Se forem utilizadas fontes freetype, requer suporte a freetype para ser " -"compilado." +"Se as fontes FreeType são usadas, requer que suporte FreeType tenha sido " +"compilado.\n" +"Se desativado, fontes de bitmap e de vetores XML são usadas em seu lugar." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7159,6 +7188,10 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" +"Quando mutar os sons. Você pode mutar os sons a qualquer hora, a não ser\n" +"que o sistema de som esteja desabilitado (enable_sound=false).\n" +"No jogo, você pode habilitar o estado de mutado com o botão de mutar\n" +"ou usando o menu de pausa." #: src/settings_translation_file.cpp msgid "" @@ -7245,6 +7278,12 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Distância de Y sobre a qual as ilhas flutuantes diminuem de densidade total " +"para nenhuma densidade.\n" +"O afunilamento começa nesta distância do limite Y.\n" +"Para uma ilha flutuante sólida, isso controla a altura das colinas / " +"montanhas.\n" +"Deve ser menor ou igual a metade da distância entre os limites Y." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." @@ -7274,6 +7313,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Nível de compressão ZLib a ser usada ao salvar mapblocks no disco.\n" +"-1 - Nível de compressão padrão do Zlib\n" +"0 - Nenhuma compressão; o mais rápido\n" +"9 - Melhor compressão; o mais devagar\n" +"(níveis 1-3 usam método \"rápido\" do Zlib, enquanto que 4-9 usam método " +"normal)" #: src/settings_translation_file.cpp msgid "" @@ -7283,6 +7328,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Nível de compressão ZLib a ser usada ao mandar mapblocks para o cliente.\n" +"-1 - Nível de compressão padrão do Zlib\n" +"0 - Nenhuma compressão; o mais rápido\n" +"9 - Melhor compressão; o mais devagar\n" +"(níveis 1-3 usam método \"rápido\" do Zlib, enquanto que 4-9 usam método " +"normal)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From f879c0b2127eb626c13b3be1d52c6c158cbbf76c Mon Sep 17 00:00:00 2001 From: eugenefil Date: Mon, 1 Feb 2021 12:02:09 +0000 Subject: [PATCH 538/624] Translated using Weblate (Russian) Currently translated at 96.3% (1303 of 1353 strings) --- po/ru/minetest.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index c2211caed..e98941c68 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-11-14 18:28+0000\n" -"Last-Translator: Andrei Stepanov \n" +"PO-Revision-Date: 2021-02-03 04:32+0000\n" +"Last-Translator: eugenefil \n" "Language-Team: Russian \n" "Language: ru\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -154,11 +154,11 @@ msgstr "включено" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" уже существует. Перезаписать?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "Зависимости $1 и $2 будут установлены." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" From 033cba996fc2eb31de4c18e1ce1c56720019d11d Mon Sep 17 00:00:00 2001 From: Muhammad Rifqi Priyo Susanto Date: Wed, 3 Feb 2021 15:41:03 +0000 Subject: [PATCH 539/624] Translated using Weblate (Indonesian) Currently translated at 100.0% (1353 of 1353 strings) --- po/id/minetest.po | 223 +++++++++++++++++++++++++--------------------- 1 file changed, 120 insertions(+), 103 deletions(-) diff --git a/po/id/minetest.po b/po/id/minetest.po index 0343dc677..4cfffc6f9 100644 --- a/po/id/minetest.po +++ b/po/id/minetest.po @@ -3,8 +3,9 @@ msgstr "" "Project-Id-Version: Indonesian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-01-08 17:32+0000\n" -"Last-Translator: Ferdinand Tampubolon \n" +"PO-Revision-Date: 2021-02-03 15:42+0000\n" +"Last-Translator: Muhammad Rifqi Priyo Susanto " +"\n" "Language-Team: Indonesian \n" "Language: id\n" @@ -12,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -153,52 +154,51 @@ msgstr "dinyalakan" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" telah ada. Apakah Anda mau menimpanya?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "Dependensi $1 dan $2 akan dipasang." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 oleh $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 sedang diunduh,\n" +"$2 dalam antrean" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Mengunduh..." +msgstr "$1 mengunduh..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 membutuhkan dependensi yang tidak bisa ditemukan." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 akan dipasang dan $2 dependensi akan dilewati." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Semua paket" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Tombol telah terpakai" +msgstr "Telah terpasang" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Kembali ke menu utama" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Host Permainan" +msgstr "Permainan Dasar:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -222,14 +222,12 @@ msgid "Install" msgstr "Pasang" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Pasang" +msgstr "Pasang $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Dependensi opsional:" +msgstr "Pasang dependensi yang belum ada" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -245,26 +243,24 @@ msgid "No results" msgstr "Tiada hasil" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Perbarui" +msgstr "Tiada pembaruan" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Bisukan suara" +msgstr "Tidak ditemukan" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Timpa" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Harap pastikan bahwa permainan dasar telah sesuai." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "Diantrekan" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -280,11 +276,11 @@ msgstr "Perbarui" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Perbarui Semua [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Lihat informasi lebih lanjut di peramban web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -348,7 +344,7 @@ msgstr "Tanah mengambang di langit" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "Floatland (uji coba)" +msgstr "Floatland (tahap percobaan)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -764,7 +760,6 @@ msgid "Credits" msgstr "Penghargaan" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" msgstr "Pilih direktori" @@ -773,6 +768,8 @@ msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Membuka direktori yang berisi dunia, permainan, mod, dan paket tekstur\n" +"dari pengguna dalam pengelola/penjelajah berkas." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -812,7 +809,7 @@ msgstr "Pasang permainan dari ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Nama" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -823,9 +820,8 @@ msgid "No world created or selected!" msgstr "Tiada dunia yang dibuat atau dipilih!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Kata sandi baru" +msgstr "Kata sandi" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -836,9 +832,8 @@ msgid "Port" msgstr "Porta" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Pilih Dunia:" +msgstr "Pilih Mod" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -990,9 +985,8 @@ msgid "Shaders" msgstr "Shader" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Floatland (uji coba)" +msgstr "Shader (tahap percobaan)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1192,7 +1186,7 @@ msgid "Continue" msgstr "Lanjutkan" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1215,12 +1209,12 @@ msgstr "" "- %s: geser kiri\n" "- %s: geser kanan\n" "- %s: lompat/panjat\n" +"- %s: gali/pukul\n" +"- %s: taruh/pakai\n" "- %s: menyelinap/turun\n" "- %s: jatuhkan barang\n" "- %s: inventaris\n" "- Tetikus: belok/lihat\n" -"- Klik kiri: gali/pukul\n" -"- Klik kanan: taruh/pakai\n" "- Roda tetikus: pilih barang\n" "- %s: obrolan\n" @@ -1749,19 +1743,18 @@ msgid "Minimap hidden" msgstr "Peta mini disembunyikan" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Peta mini mode radar, perbesaran 1x" +msgstr "Peta mini mode radar, perbesaran %dx" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Peta mini mode permukaan, perbesaran 1x" +msgstr "Peta mini mode permukaan, perbesaran %dx" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Ukuran tekstur minimum" +msgstr "Peta mini mode tekstur" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -2161,7 +2154,7 @@ msgstr "Selang waktu ABM" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "Anggaran waktu ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2664,7 +2657,7 @@ msgstr "Daftar Hitam Flag ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "Jumlah Maks Pengunduhan ContentDB Bersamaan" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2732,11 +2725,12 @@ msgid "Crosshair alpha" msgstr "Keburaman crosshair" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Keburaman crosshair (keopakan, dari 0 sampai 255)." +msgstr "" +"Keburaman crosshair (keopakan, dari 0 sampai 255).\n" +"Juga mengatur warna crosshair objek" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2747,6 +2741,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Warna crosshair (R,G,B),\n" +"sekaligus mengatur warna crosshair objek" #: src/settings_translation_file.cpp msgid "DPI" @@ -2928,9 +2924,8 @@ msgid "Desynchronize block animation" msgstr "Putuskan sinkronasi animasi blok" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Tombol kanan" +msgstr "Tombol gali" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3151,9 +3146,8 @@ msgstr "" "yang rata dan cocok untuk lapisan floatland padat (penuh)." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "FPS (bingkai per detik) maksimum saat permainan dijeda." +msgstr "FPS (bingkai per detik) saat dijeda atau tidak difokuskan" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3484,7 +3478,7 @@ msgid "" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" "Atribut pembuatan peta global.\n" -"Dalam pembuat peta v6, flag \"decorations\" mengatur semua hiasan kecuali\n" +"Dalam pembuat peta v6, flag \"decorations\" mengatur semua hiasan, kecuali\n" "pohon dan rumput rimba. Dalam pembuat peta lain, flag ini mengatur\n" "semua dekorasi." @@ -3533,7 +3527,6 @@ msgid "HUD toggle key" msgstr "Tombol beralih HUD" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" @@ -3541,7 +3534,7 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Penanganan panggilan Lua API usang:\n" -"- legacy: (mencoba untuk) menyerupai aturan lawas (bawaan untuk rilis).\n" +"- none: jangan catat panggilan usang\n" "- log: menyerupai dan mencatat asal-usul panggilan usang (bawaan untuk " "awakutu).\n" "- error: batalkan penggunaan panggilan usang (disarankan untuk pengembang " @@ -3824,9 +3817,8 @@ msgid "" "If FPS would go higher than this, limit it by sleeping\n" "to not waste CPU power for no benefit." msgstr "" -"Jika FPS (bingkai per detik) lebih tinggi dari ini, akan\n" -"dibatasi dengan jeda agar tidak menghabiskan tenaga\n" -"CPU dengan percuma." +"Jika FPS (bingkai per detik) lebih tinggi daripada ini, akan dibatasi\n" +"dengan jeda agar tidak membuang tenaga CPU dengan percuma." #: src/settings_translation_file.cpp msgid "" @@ -3988,8 +3980,7 @@ msgid "" "Instrument global callback functions on registration.\n" "(anything you pass to a minetest.register_*() function)" msgstr "" -"Melengkapi fungsi panggil balik (callback) global saat didaftarkan,\n" -"dengan perkakas.\n" +"Melengkapi fungsi panggil balik (callback) global saat didaftarkan.\n" "(semua yang dimasukkan ke fungsi minetest.register_*())" #: src/settings_translation_file.cpp @@ -4064,8 +4055,7 @@ msgstr "" "Perulangan fungsi rekursif.\n" "Menaikkan nilai ini menaikkan detail, tetapi juga menambah\n" "beban pemrosesan.\n" -"Saat perulangan = 20, pembuat peta ini memiliki beban yang\n" -"mirip dengan pembuat peta v7." +"Saat perulangan = 20, beban pembuat peta ini mirip dengan v7." #: src/settings_translation_file.cpp msgid "Joystick ID" @@ -4076,9 +4066,8 @@ msgid "Joystick button repetition interval" msgstr "Jarak penekanan tombol joystick terus-menerus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "Jenis joystick" +msgstr "Zona mati joystick" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4183,13 +4172,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tombol untuk lompat.\n" +"Tombol untuk gali.\n" "Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4336,13 +4324,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tombol untuk lompat.\n" +"Tombol untuk taruh.\n" "Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5111,11 +5098,11 @@ msgstr "Buat semua cairan buram" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Tingkat Kompresi Peta untuk Penyimpanan Diska" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Tingkat Kompresi Peta untuk Transfer Jaringan" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5300,9 +5287,10 @@ msgid "Maximum FPS" msgstr "FPS (bingkai per detik) maksimum" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "FPS (bingkai per detik) maksimum saat permainan dijeda." +msgstr "" +"FPS (bingkai per detik) maksimum saat permainan dijeda atau saat jendela " +"tidak difokuskan." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5364,6 +5352,9 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"Jumlah maksimum pengunduhan bersamaan. Pengunduhan yang melebihi batas ini " +"akan\n" +"diantrekan. Nilai ini harus lebih rendah daripada curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5765,14 +5756,12 @@ msgid "Pitch move mode" msgstr "Mode gerak sesuai pandang" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "Tombol terbang" +msgstr "Tombol taruh" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "Jarak klik kanan berulang" +msgstr "Jeda waktu taruh berulang" #: src/settings_translation_file.cpp msgid "" @@ -5842,7 +5831,7 @@ msgstr "Profiling" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Alamat pendengar Prometheus" #: src/settings_translation_file.cpp msgid "" @@ -5851,6 +5840,10 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Alamat pendengar Prometheus.\n" +"Jika Minetest dikompilasi dengan pilihan ENABLE_PROMETHEUS dinyalakan,\n" +"ini menyalakan pendengar metrik untuk Prometheus pada alamat itu.\n" +"Metrik dapat diambil pada http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." @@ -6251,12 +6244,11 @@ msgid "Show entity selection boxes" msgstr "Tampilkan kotak pilihan benda" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"Atur bahasa. Biarkan kosong untuk menggunakan bahasa sistem.\n" +"Tampilkan kotak pilihan entitas\n" "Dibutuhkan mulai ulang setelah mengganti ini." #: src/settings_translation_file.cpp @@ -6442,6 +6434,16 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Tingkat permukaan peletakan air pada lapisan floatland padat.\n" +"Air tidak ditaruh secara bawaan dan akan ditaruh jika nilai ini diatur ke\n" +"atas 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (mulai dari\n" +"penirusan atas).\n" +"***PERINGATAN, POTENSI BAHAYA TERHADAP DUNIA DAN KINERJA SERVER***\n" +"Ketika penaruhan air dinyalakan, floatland wajib diatur dan diuji agar\n" +"berupa lapisan padat dengan mengatur 'mgv7_floatland_density' ke 2.0\n" +"(atau nilai wajib lainnya sesuai 'mgv7_np_floatland') untuk menghindari\n" +"aliran air ekstrem yang membebani server dan menghindari banjir\n" +"bandang di permukaan dunia bawah." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6520,9 +6522,8 @@ msgid "The URL for the content repository" msgstr "URL dari gudang konten" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" -msgstr "Identitas dari joystick yang digunakan" +msgstr "Zona mati joystick yang digunakan" #: src/settings_translation_file.cpp msgid "" @@ -6580,7 +6581,6 @@ msgstr "" "server Anda." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6590,14 +6590,13 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" -"Jari-jari ruang di sekitar pemain yang menjadi blok aktif, dalam blok peta\n" -"(16 nodus).\n" +"Jari-jari volume blok di sekitar pemain yang menjadi blok aktif, dalam\n" +"blok peta (16 nodus).\n" "Dalam blok aktif, objek dimuat dan ABM berjalan.\n" "Ini juga jangkauan minimum pengelolaan objek aktif (makhluk).\n" "Ini harus diatur bersama dengan active_object_range." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6609,8 +6608,8 @@ msgstr "" "Penggambar untuk Irrlicht.\n" "Mulai ulang dibutuhkan setelah mengganti ini.\n" "Catatan: Pada Android, gunakan OGLES1 jika tidak yakin! Apl mungkin gagal\n" -"berjalan pada lainnya. Pada platform lain, OpenGL disarankan yang menjadi\n" -"satu-satunya pengandar yang mendukung shader untuk saat ini." +"berjalan untuk pilihan lainnya. Pada platform lain, OpenGL disarankan.\n" +"Shader didukung oleh OpenGL (khusus desktop) dan OGLES2 (tahap percobaan)" #: src/settings_translation_file.cpp msgid "" @@ -6648,6 +6647,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"Anggaran waktu yang dibolehkan untuk ABM dalam menjalankan\n" +"tiap langkah (dalam pecahan dari jarak ABM)" #: src/settings_translation_file.cpp msgid "" @@ -6658,12 +6659,10 @@ msgstr "" "menekan terus-menerus kombinasi tombol joystick." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." -msgstr "" -"Jeda dalam detik antarklik kanan berulang saat menekan tombol kanan tetikus." +msgstr "Jeda dalam detik antar-penaruhan berulang saat menekan tombol taruh." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6815,9 +6814,8 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" -"Gunakan mip mapping untuk penyekalaan tekstur. Dapat sedikit\n" -"meningkatkan kinerja, terutama saat menggunakan paket tekstur\n" -"beresolusi tinggi.\n" +"Pakai mip mapping untuk penyekalaan tekstur. Bisa sedikit menaikkan\n" +"kinerja, terutama pada saat memakai paket tekstur beresolusi tinggi.\n" "Pengecilan dengan tepat gamma tidak didukung." #: src/settings_translation_file.cpp @@ -6830,6 +6828,13 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"Pakai antialias multisampel (MSAA) untuk memperhalus tepian blok.\n" +"Algoritme ini memperhalus tampilan 3D sambil menjaga ketajaman gambar,\n" +"tetapi tidak memengaruhi tekstur bagian dalam (yang terlihat khususnya\n" +"dengan tekstur transparan).\n" +"Muncul spasi tampak di antara nodus ketika shader dimatikan.\n" +"Jika diatur 0, MSAA dimatikan.\n" +"Dibutuhkan mulai ulang setelah penggantian pengaturan ini." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -7017,10 +7022,9 @@ msgid "" "filtered in software, but some images are generated directly\n" "to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" -"Saat gui_scaling_filter diatur ke true, semua gambar GUI harus\n" -"difilter dalam perangkat lunak, tetapi beberapa gambar dibuat\n" -"langsung ke perangkat keras (misal. render ke tekstur untuk nodus\n" -"dalam inventaris)." +"Saat gui_scaling_filter diatur ke true, semua gambar GUI harus difilter\n" +"dalam perangkat lunak, tetapi beberapa gambar dibuat langsung ke\n" +"perangkat keras (misal. render ke tekstur untuk nodus dalam inventaris)." #: src/settings_translation_file.cpp msgid "" @@ -7029,11 +7033,10 @@ msgid "" "to the old scaling method, for video drivers that don't\n" "properly support downloading textures back from hardware." msgstr "" -"Saat gui_scaling_filter_txr2img dibolehkan, salin gambar-gambar\n" -"tersebut dari perangkat keras ke perangkat lunak untuk perbesar/\n" -"perkecil. Saat tidak dibolehkan, kembali ke cara lama, untuk\n" -"pengandar video yang tidak mendukung pengunduhan tekstur dari\n" -"perangkat keras." +"Saat gui_scaling_filter_txr2img dibolehkan, salin gambar-gambar tersebut\n" +"dari perangkat keras ke perangkat lunak untuk perbesar/perkecil. Saat tidak\n" +"dibolehkan, kembali ke cara lama, untuk pengandar video yang tidak\n" +"mendukung pengunduhan tekstur dari perangkat keras." #: src/settings_translation_file.cpp msgid "" @@ -7189,6 +7192,10 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Jarak Y penirusan floatland dari padat sampai kosong.\n" +"Penirusan dimulai dari jarak ini sampai batas Y.\n" +"Untuk lapisan floatland padat, nilai ini mengatur tinggi bukit/gunung.\n" +"Nilai ini harus kurang dari atau sama dengan setengah jarak antarbatas Y." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." @@ -7218,6 +7225,11 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Tingkat kompresi ZLib saat pengiriman blok peta kepada klien.\n" +"-1 - tingkat kompresi Zlib bawaan\n" +"0 - tanpa kompresi, tercepat\n" +"9 - kompresi terbaik, terlambat\n" +"(tingkat 1-3 pakai metode \"cepat\" Zlib, 4-9 pakai metode normal)" #: src/settings_translation_file.cpp msgid "" @@ -7227,6 +7239,11 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Tingkat kompresi ZLib saat penyimpanan blok peta kepada klien.\n" +"-1 - tingkat kompresi Zlib bawaan\n" +"0 - tanpa kompresi, tercepat\n" +"9 - kompresi terbaik, terlambat\n" +"(tingkat 1-3 pakai metode \"cepat\" Zlib, 4-9 pakai metode normal)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From de29007c8265970adcf9b4eb54505e9d3bfaded7 Mon Sep 17 00:00:00 2001 From: j45 minetest Date: Wed, 3 Feb 2021 11:38:31 +0000 Subject: [PATCH 540/624] Translated using Weblate (Spanish) Currently translated at 74.3% (1006 of 1353 strings) --- po/es/minetest.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index cd1f86fe1..d36698d70 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-02-05 09:40+0000\n" -"Last-Translator: apo \n" +"Last-Translator: j45 minetest \n" "Language-Team: Spanish \n" "Language: es\n" @@ -5391,12 +5391,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Maximum FPS" -msgstr "FPS máximos" +msgstr "FPS máximo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "FPS máximos cuando el juego está pausado." +msgstr "FPS máximo cuando el juego está pausado." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5994,7 +5993,7 @@ msgstr "Ruido de río" #: src/settings_translation_file.cpp msgid "River size" -msgstr "" +msgstr "Tamaño del río" #: src/settings_translation_file.cpp #, fuzzy From 609eca5b81af5466591dae5733546f423a298481 Mon Sep 17 00:00:00 2001 From: Giov4 Date: Thu, 4 Feb 2021 21:47:33 +0000 Subject: [PATCH 541/624] Translated using Weblate (Italian) Currently translated at 100.0% (1353 of 1353 strings) --- po/it/minetest.po | 194 ++++++++++++++++++++++++---------------------- 1 file changed, 103 insertions(+), 91 deletions(-) diff --git a/po/it/minetest.po b/po/it/minetest.po index 78f0d7503..a5c38f328 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-12-07 09:22+0000\n" +"PO-Revision-Date: 2021-02-05 09:40+0000\n" "Last-Translator: Giov4 \n" "Language-Team: Italian \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -153,52 +153,51 @@ msgstr "abilitato" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" già esiste. Vuoi sovrascriverlo?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "Le dipendenze $1 e $2 verranno installate." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 di $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 in scaricamento,\n" +"$2 in coda" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Scaricamento..." +msgstr "Scaricando $1..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "Le dipendeze richieste per $1 non sono state trovate." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 verrà installato, e $2 dipendenze verranno ignorate." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Tutti i pacchetti" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Tasto già usato" +msgstr "Già installato" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Torna al Menu Principale" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Ospita un gioco" +msgstr "Gioco base:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -222,14 +221,12 @@ msgid "Install" msgstr "Installa" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Installa" +msgstr "Installa $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Dipendenze facoltative:" +msgstr "Installa le dipendenze mancanti" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -245,26 +242,24 @@ msgid "No results" msgstr "Nessun risultato" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Aggiorna" +msgstr "Nessun aggiornamento" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Silenzia audio" +msgstr "Non trovato" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Sovrascrivi" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Per favore, controlla che il gioco base sia corretto." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "In coda" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -280,11 +275,11 @@ msgstr "Aggiorna" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Aggiornat tutti [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Visualizza ulteriori informazioni in un browser web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -766,15 +761,16 @@ msgid "Credits" msgstr "Riconoscimenti" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Scegli la cartella" +msgstr "Apri la cartella dei dati utente" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Apre la cartella che contiene mondi, giochi, mod e pacchetti texture forniti " +"dall'utente in un gestore di file / explorer." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -814,7 +810,7 @@ msgstr "Installa giochi da ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Nome" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -825,9 +821,8 @@ msgid "No world created or selected!" msgstr "Nessun mondo creato o selezionato!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Nuova password" +msgstr "Password" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -838,9 +833,8 @@ msgid "Port" msgstr "Porta" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Seleziona mondo:" +msgstr "Seleziona mod" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -992,9 +986,8 @@ msgid "Shaders" msgstr "Shaders" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Terre fluttuanti (sperimentale)" +msgstr "Shader (sperimentali)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1194,7 +1187,7 @@ msgid "Continue" msgstr "Continua" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1216,13 +1209,13 @@ msgstr "" "- %s: arretra\n" "- %s: sinistra\n" "- %s: destra\n" -"- %s: salta/arrampica\n" +"- %s: salta/arrampicati\n" +"- %s: scava/colpisci\n" +"- %s: piazza/usa\n" "- %s: furtivo/scendi\n" -"- %s: butta oggetto\n" +"- %s: lascia oggetto\n" "- %s: inventario\n" "- Mouse: gira/guarda\n" -"- Mouse sx: scava/colpisci\n" -"- Mouse dx: piazza/usa\n" "- Rotella mouse: scegli oggetto\n" "- %s: chat\n" @@ -1751,19 +1744,18 @@ msgid "Minimap hidden" msgstr "Minimappa nascosta" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Minimappa in modalità radar, ingrandimento x1" +msgstr "Minimappa in modalità radar, ingrandimento x%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Minimappa in modalità superficie, ingrandimento x1" +msgstr "Minimappa in modalità superficie, ingrandimento x%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Dimensione minima della texture" +msgstr "Minimappa in modalità texture" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -2173,7 +2165,7 @@ msgstr "Intervallo ABM" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "Budget di tempo ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2684,7 +2676,7 @@ msgstr "Contenuti esclusi da ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "Massimi download contemporanei di ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2754,11 +2746,12 @@ msgid "Crosshair alpha" msgstr "Trasparenza del mirino" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Trasparenza del mirino (opacità, tra 0 e 255)." +msgstr "" +"Trasparenza del mirino (opacità, tra 0 e 255).\n" +"Controlla anche il colore del mirino dell'oggetto" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2769,6 +2762,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Colore del mirino (R,G,B).\n" +"Controlla anche il colore del mirino dell'oggetto" #: src/settings_translation_file.cpp msgid "DPI" @@ -2953,9 +2948,8 @@ msgid "Desynchronize block animation" msgstr "De-sincronizza l'animazione del blocco" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Tasto des." +msgstr "Tasto scava" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3187,9 +3181,8 @@ msgstr "" "pianure più piatte, adatti a uno strato solido di terre fluttuanti." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "FPS massimi quando il gioco è in pausa." +msgstr "FPS quando il gioco è in pausa o in secondo piano." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3583,20 +3576,18 @@ msgid "HUD toggle key" msgstr "Tasto di (dis)attivazione dell'HUD" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" "- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"Gestione delle chiamate deprecate alle API Lua:\n" -"- legacy (ereditaria): (prova a) simulare il vecchio comportamento " -"(predefinito per i rilasci).\n" -"- log (registro): simula e registra la traccia della chiamata deprecata " -"(predefinito per il debug).\n" -"- error (errore): interrompere all'uso della chiamata deprecata (suggerito " -"per lo sviluppo di moduli)." +"Gestione delle chiamate API Lua deprecate:\n" +"- none (nessuno): non registra le chiamate obsolete\n" +"- log (registro): imita e registra il backtrace di una chiamata obsoleta (" +"impostazione predefinita).\n" +"- error (errore): interrompe l'utilizzo della chiamata deprecata (" +"consigliata per gli sviluppatori di mod)." #: src/settings_translation_file.cpp msgid "" @@ -4130,9 +4121,8 @@ msgid "Joystick button repetition interval" msgstr "Intervallo di ripetizione del pulsante del joystick" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "Tipo di joystick" +msgstr "Deadzone joystick" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4237,14 +4227,13 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per saltare.\n" -"Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." +"Tasto per scavare.\n" +"Vedi http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp @@ -4390,14 +4379,13 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per saltare.\n" -"Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." +"Tasto per piazzare.\n" +"Vedi http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp @@ -5172,11 +5160,11 @@ msgstr "Rende opachi tutti i liquidi" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Livello di compressione della mappa per l'archiviazione su disco" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Livello di compressione della mappa per il trasferimento in rete" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5367,9 +5355,10 @@ msgid "Maximum FPS" msgstr "FPS massimi" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "FPS massimi quando il gioco è in pausa." +msgstr "" +"FPS massimi quando la finestra è in secondo piano o quando il gioco è in " +"pausa." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5433,6 +5422,9 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"Numero massimo di download simultanei. I download che superano questo limite " +"verranno messi in coda.\n" +"Dovrebbe essere inferiore a curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5859,14 +5851,12 @@ msgid "Pitch move mode" msgstr "Modalità inclinazione movimento" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "Tasto volo" +msgstr "Tasto piazza" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "Intervallo di ripetizione del click destro" +msgstr "Intervallo di ripetizione per il piazzamento" #: src/settings_translation_file.cpp msgid "" @@ -6361,13 +6351,12 @@ msgid "Show entity selection boxes" msgstr "Mostrare le aree di selezione delle entità" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"Imposta la Lingua. Lascia vuoto per usare la Lingua di sistema.\n" -"Dopo avere modificato questa impostazione è necessario il riavvio." +"Mostra la casella di selezione delle entità\n" +"È necessario riavviare dopo aver cambiato questo." #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -6653,9 +6642,8 @@ msgid "The URL for the content repository" msgstr "L'URL per il deposito dei contenuti" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" -msgstr "L'identificatore del joystick da usare" +msgstr "La deadzone del joystick" #: src/settings_translation_file.cpp msgid "" @@ -6730,7 +6718,6 @@ msgstr "" "active_object_send_range_blocks." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6739,12 +6726,12 @@ msgid "" "On other platforms, OpenGL is recommended.\n" "Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" -"Il motore di resa per Irrlicht.\n" +"Il back-end di rendering per Irrlicht.\n" "Dopo averlo cambiato è necessario un riavvio.\n" -"Nota: su Android, si resti con OGLES1 se incerti! Altrimenti l'app potrebbe " +"Nota: su Android, restare con OGLES1 se incerti! Altrimenti l'app potrebbe " "non partire.\n" -"Su altre piattaforme, si raccomanda OpenGL, ed è attualmente l'unico driver\n" -"con supporto degli shader." +"Su altre piattaforme, si raccomanda OpenGL\n" +"Le shader sono supportate da OpenGL (solo su desktop) e OGLES2 (sperimentale)" #: src/settings_translation_file.cpp msgid "" @@ -6786,6 +6773,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"Il budget di tempo ha consentito agli ABM per eseguire ogni passaggio\n" +"(come frazione dell'intervallo ABM)" #: src/settings_translation_file.cpp msgid "" @@ -6796,13 +6785,13 @@ msgstr "" "si tiene premuta una combinazione di pulsanti del joystick." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." msgstr "" -"Il tempo in secondi richiesto tra click destri ripetuti quando\n" -"si tiene premuto il tasto destro del mouse." +"Il tempo in secondi che intercorre tra il piazzamento dei nodi quando si " +"tiene\n" +"premuto il pulsante piazza." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6977,6 +6966,15 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"Utilizzare l'antialiasing multi-campione (MSAA) per smussare i bordi del " +"blocco.\n" +"Questo algoritmo uniforma la visualizzazione 3D mantenendo l'immagine nitida," +"\n" +"ma non influenza l'interno delle texture\n" +"(che è particolarmente evidente con trame trasparenti).\n" +"Gli spazi visibili appaiono tra i nodi quando gli shader sono disabilitati.\n" +"Se impostato a 0, MSAA è disabilitato.\n" +"È necessario riavviare dopo aver modificato questa opzione." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -7386,6 +7384,13 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Livello di compressione ZLib da utilizzare quando si salvano i blocchi mappa " +"su disco.\n" +"-1 - Livello di compressione predefinito di Zlib\n" +"0 - nessuna compressione, più veloce\n" +"9 - migliore compressione, più lenta\n" +"(i livelli 1-3 usano il metodo \"veloce\" di Zlib, 4-9 usano il metodo " +"normale)" #: src/settings_translation_file.cpp msgid "" @@ -7395,6 +7400,13 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Livello di compressione ZLib da utilizzare quando si inviano i blocchi mappa " +"al client.\n" +"-1 - Livello di compressione predefinito di Zlib\n" +"0 - nessuna compressione, più veloce\n" +"9 - migliore compressione, più lenta\n" +"(i livelli 1-3 usano il metodo \"veloce\" di Zlib, 4-9 usano il metodo " +"normale)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From 19d3ce76094215be1ae57faac6ed5406e92bf8b0 Mon Sep 17 00:00:00 2001 From: Nikita Epifanov Date: Wed, 3 Feb 2021 14:23:44 +0000 Subject: [PATCH 542/624] Translated using Weblate (Russian) Currently translated at 99.0% (1340 of 1353 strings) --- po/ru/minetest.po | 120 ++++++++++++++++++++++++++-------------------- 1 file changed, 68 insertions(+), 52 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index e98941c68..f7fd5eca8 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-02-03 04:32+0000\n" -"Last-Translator: eugenefil \n" +"PO-Revision-Date: 2021-02-05 09:40+0000\n" +"Last-Translator: Nikita Epifanov \n" "Language-Team: Russian \n" "Language: ru\n" @@ -162,44 +162,43 @@ msgstr "Зависимости $1 и $2 будут установлены." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 из $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 скачивается,\n" +"$2 в очереди" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Загрузка..." +msgstr "$1 скачивается…" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "Не удалось найти требуемые зависимости $1." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "Будет установлен $1, а зависимости $2 будут пропущены." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Все дополнения" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Клавиша уже используется" +msgstr "Уже установлено" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Назад в главное меню" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Играть (хост)" +msgstr "Базовая игра:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -223,14 +222,12 @@ msgid "Install" msgstr "Установить" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Установить" +msgstr "Установить $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Необязательные зависимости:" +msgstr "Установить недостающие зависимости" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -246,26 +243,25 @@ msgid "No results" msgstr "Ничего не найдено" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Обновить" +msgstr "Нет обновлений" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Заглушить звук" +msgstr "Не найдено" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Перезаписать" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "Please check that the base game is correct." -msgstr "" +msgstr "Пожалуйста, убедитесь, что базовая игра верна." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "В очереди" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -281,11 +277,11 @@ msgstr "Обновить" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Обновить все [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Посмотреть дополнительную информацию в веб-браузере" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -767,15 +763,16 @@ msgid "Credits" msgstr "Благодарности" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Выбрать каталог" +msgstr "Открыть каталог данных пользователя" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Открывает каталог, содержащий пользовательские миры, игры, моды,\n" +"и пакеты текстур в файловом менеджере / проводнике." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -815,7 +812,7 @@ msgstr "Установить игры из ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Имя" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -826,9 +823,8 @@ msgid "No world created or selected!" msgstr "Мир не создан или не выбран!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Новый пароль" +msgstr "Пароль" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -839,9 +835,8 @@ msgid "Port" msgstr "Порт" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Выберите мир:" +msgstr "Выберите моды" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -993,9 +988,8 @@ msgid "Shaders" msgstr "Шейдеры" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Парящие острова (экспериментальный)" +msgstr "Шейдеры (экспериментально)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1195,7 +1189,7 @@ msgid "Continue" msgstr "Продолжить" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1753,14 +1747,14 @@ msgid "Minimap hidden" msgstr "Миникарта скрыта" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Миникарта в режиме радара, увеличение x1" +msgstr "Миникарта в режиме радара, увеличение x%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Миникарта в поверхностном режиме, увеличение x1" +msgstr "Миникарта в поверхностном режиме, увеличение x%d" #: src/client/minimap.cpp #, fuzzy @@ -2678,7 +2672,7 @@ msgstr "Чёрный список флагов ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "Максимальное количество одновременных загрузок ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2747,11 +2741,12 @@ msgid "Crosshair alpha" msgstr "Прозрачность перекрестия" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Прозрачность прицела (от 0 (прозрачно) до 255 (непрозрачно))." +msgstr "" +"Прозрачность прицела (от 0 (прозрачно) до 255 (непрозрачно)).\n" +"Также контролирует цвет перекрестия объекта" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2762,6 +2757,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Цвет прицела (R, G, B).\n" +"Также контролирует цвет перекрестия объекта" #: src/settings_translation_file.cpp msgid "DPI" @@ -3557,7 +3554,6 @@ msgid "HUD toggle key" msgstr "Клавиша переключения игрового интерфейса" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" @@ -3565,8 +3561,7 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Обработка устаревших вызовов Lua API:\n" -"- legacy: (пытаться) имитировать прежнее поведение (по умолчанию для " -"релиза).\n" +"- none: не записывать устаревшие вызовы\n" "- log: имитировать и журналировать устаревшие вызовы (по умолчанию для " "отладки).\n" "- error: прерывание при использовании устаревших вызовов (рекомендовано " @@ -4086,9 +4081,8 @@ msgid "Joystick button repetition interval" msgstr "Интервал повторного клика кнопкой джойстика" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "Тип джойстика" +msgstr "Мертвая зона джойстика" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -5124,11 +5118,11 @@ msgstr "Сделать все жидкости непрозрачными" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Уровень сжатия карты для дискового хранилища" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Уровень сжатия карты для передачи по сети" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5313,9 +5307,9 @@ msgid "Maximum FPS" msgstr "Максимум кадровой частоты (FPS)" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "Максимум кадровой частоты при паузе." +msgstr "" +"Максимальный FPS, когда окно не сфокусировано, или когда игра приостановлена." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5382,6 +5376,9 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"Максимальное количество одновременных загрузок. Загрузки, превышающие этот " +"лимит, будут поставлены в очередь.\n" +"Это должно быть меньше curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -6574,9 +6571,8 @@ msgid "The URL for the content repository" msgstr "Адрес сетевого репозитория" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" -msgstr "Идентификатор используемого джойстика" +msgstr "Мертвая зона джойстика" #: src/settings_translation_file.cpp msgid "" @@ -6890,6 +6886,15 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"Используйте многовыборочное сглаживание (MSAA) для сглаживания краев блоков." +"\n" +"Этот алгоритм сглаживает область просмотра 3D, сохраняя резкость изображения," +"\n" +"но это не влияет на внутренности текстур\n" +"(что особенно заметно на прозрачных текстурах).\n" +"Когда шейдеры отключены, между узлами появляются видимые пробелы.\n" +"Если установлено значение 0, MSAA отключено.\n" +"После изменения этой опции требуется перезагрузка." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -7286,6 +7291,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Уровень сжатия ZLib для использования при сохранении картографических блоков " +"на диске.\n" +"-1 - уровень сжатия Zlib по умолчанию\n" +"0 - без компрессора, самый быстрый\n" +"9 - лучшее сжатие, самое медленное\n" +"(уровни 1-3 используют \"быстрый\" метод Zlib, 4-9 используют обычный метод)" #: src/settings_translation_file.cpp msgid "" @@ -7295,6 +7306,11 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Уровень сжатия ZLib для использования при отправке блоков карты клиенту.\n" +"-1 - уровень сжатия Zlib по умолчанию\n" +"0 - без компрессора, самый быстрый\n" +"9 - лучшее сжатие, самое медленное\n" +"(уровни 1-3 используют \"быстрый\" метод Zlib, 4-9 используют обычный метод)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From 48f885e3102cb1c4ebb3f5fddf2d7e70d95c0522 Mon Sep 17 00:00:00 2001 From: Yossi Cohen Date: Thu, 4 Feb 2021 16:08:57 +0000 Subject: [PATCH 543/624] Translated using Weblate (Hebrew) Currently translated at 13.7% (186 of 1353 strings) --- po/he/minetest.po | 187 +++++++++++++++++++++++----------------------- 1 file changed, 93 insertions(+), 94 deletions(-) diff --git a/po/he/minetest.po b/po/he/minetest.po index bc0a9e5dc..db2ff0315 100644 --- a/po/he/minetest.po +++ b/po/he/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Hebrew (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-01-08 17:32+0000\n" -"Last-Translator: Omer I.S. \n" +"PO-Revision-Date: 2021-02-09 15:34+0000\n" +"Last-Translator: Yossi Cohen \n" "Language-Team: Hebrew \n" "Language: he\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -126,11 +126,11 @@ msgstr "לא סופק תיאור משחק." #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "אין תלויות קשות" +msgstr "אין תלויות מחייבות" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "" +msgstr "לא סופק תיאור לחבילת המוד." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" @@ -155,34 +155,35 @@ msgstr "מופעל" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" כבר קיים. האם תרצה להחליף אותו?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "התלויות $1 ו $2 יותקנו." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 ליד $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 מוריד,\n" +"$2 ממתין" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "כעת בהורדה..." +msgstr "$1 כעת בהורדה..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "לא ניתן למצוא תלות חובה של $1." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 יותקן ו $2 תלויות שידולגו." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" @@ -190,20 +191,19 @@ msgstr "כל החבילות" #: builtin/mainmenu/dlg_contentstore.lua msgid "Already installed" -msgstr "" +msgstr "כבר מותקן" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "חזרה לתפריט הראשי" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "הסתר משחק" +msgstr "משחק בסיסי:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "בסיס נתוני התוכן לא זמין כאשר מיינטסט מקומפל בלי cUrl" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." @@ -223,14 +223,12 @@ msgid "Install" msgstr "התקנה" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "התקנה" +msgstr "התקנת $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "תלויות רשות:" +msgstr "מתקין תלויות חסרות" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -239,37 +237,35 @@ msgstr "מודים" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "לא ניתן להביא את החבילות" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "אין תוצאות" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "עדכון" +msgstr "אין עדכונים" #: builtin/mainmenu/dlg_contentstore.lua msgid "Not found" -msgstr "" +msgstr "לא נמצא" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "דרוס" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "אנא בדוק שמשחק הבסיס תקין." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "נכנס לתור" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Texture packs" -msgstr "חבילות מרקם" +msgstr "חבילות טקסטורה (מרקם)" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" @@ -281,11 +277,11 @@ msgstr "עדכון" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "עדכן הכל [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "צפה במידע נוסף בדפדפן האינטרנט" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -293,31 +289,31 @@ msgstr "כבר קיים עולם בשם \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "שטח נוסף" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "קור בגבהים" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "יובש בגבהים" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "מיזוג ביומים (אקולוגי)" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "ביומות" +msgstr "ביומים (צמחיה אקולוגית)" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "מערות (טבעיות בחלקן מוארות)" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "מערות" +msgstr "מערות (ללא אור שמש)" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -325,7 +321,7 @@ msgstr "יצירה" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" -msgstr "" +msgstr "קישוטים" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -337,7 +333,7 @@ msgstr "הורד אחד מאתר minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "מבוכים" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" @@ -345,11 +341,11 @@ msgstr "עולם שטוח" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "גושי אדמה צפים בשמים" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "אדמה צפה (נסיוני)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -357,19 +353,19 @@ msgstr "משחק" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "צור שטח לא פרקטלי: אוקיינוסים ותת קרקעי" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "גבעות" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "נהרות לחים" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "הגברת הלחות בסביבת נהרות" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" @@ -377,20 +373,19 @@ msgstr "אגמים" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "לחות נמוכה וחום גבוה גורמים לנהרות רדודים או יבשים" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" -msgstr "מנוע מפות" +msgstr "מנוע (מחולל) מפות" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "אפשרויות מנוע מפות" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "מנוע מפות" +msgstr "אפשרויות ספציפיות למנוע מפות" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" @@ -398,11 +393,11 @@ msgstr "הרים" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "זרימת בוץ" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "רשת מערות ומחילות" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -410,11 +405,11 @@ msgstr "לא נבחר משחק" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "הפחתה בחום בגובה רב" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "הפחתת הלחות בגובה רב" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" @@ -422,7 +417,7 @@ msgstr "נהרות" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "נהרות בגובה פני הים" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -431,33 +426,33 @@ msgstr "זרע" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "מעבר חלק בין אזורי אקלים שונים" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "מבנים המופיעים בשטח (אין השפעה על עצים ועשבי ג'ונגל שנוצרו על ידי v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "מבנים המופיעים בשטח, בדרך כלל עצים וצמחים" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "ממוזג, מדברי" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "ממוזג, מדברי, ג'ונגל" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "ממוזג, מדברי, ג'ונגל, טונדרה, טייגה" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "סחף פני השטח" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" @@ -465,11 +460,11 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "עומק נהרות משתנה" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "מערות גדולות מאוד עמוק מתחת לאדמה" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." @@ -499,7 +494,7 @@ msgstr "pkgmgr: מחיקת \"$1\" נכשלה" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "" +msgstr "pkgmgr: נתיב לא חוקי \"$1\"" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" @@ -518,6 +513,8 @@ msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" +"ל- modpack (חבילת תוספות) זה יש שם מפורש שניתן ב modpack.conf שלו אשר יעקוף " +"כל שינוי-שם כאן." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" @@ -525,7 +522,7 @@ msgstr "(לא נוסף תיאור להגדרה)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" -msgstr "" +msgstr "רעש דו-מיימדי" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" @@ -549,19 +546,19 @@ msgstr "מופעל" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" -msgstr "" +msgstr "מרווחיות" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" -msgstr "" +msgstr "אוקטבות" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" -msgstr "" +msgstr "היסט" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" -msgstr "" +msgstr "התמדה" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." @@ -6124,37 +6121,39 @@ msgstr "" #: src/settings_translation_file.cpp msgid "View distance in nodes." -msgstr "" +msgstr "טווח ראיה בקוביות." #: src/settings_translation_file.cpp msgid "View range decrease key" -msgstr "" +msgstr "מקש הקטנת טווח ראיה" #: src/settings_translation_file.cpp msgid "View range increase key" -msgstr "" +msgstr "מקש הגדלת טוחח ראיה" #: src/settings_translation_file.cpp msgid "View zoom key" -msgstr "" +msgstr "מקש זום (משקפת)" #: src/settings_translation_file.cpp msgid "Viewing range" -msgstr "" +msgstr "טווח ראיה" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "" +msgstr "מקש הפעלת ג'ויסטיק וירטואלי" #: src/settings_translation_file.cpp msgid "Volume" -msgstr "" +msgstr "ווליום" #: src/settings_translation_file.cpp msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" +"עוצמת הקול של כל הצלילים.\n" +"דורש הפעלת מערכת הקול." #: src/settings_translation_file.cpp msgid "" @@ -6171,19 +6170,19 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking speed" -msgstr "" +msgstr "מהירות הליכה" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" +msgstr "מהירות הליכה, טיסה וטיפוס במצב מהיר, בקוביות לשנייה." #: src/settings_translation_file.cpp msgid "Water level" -msgstr "" +msgstr "מפלס המים" #: src/settings_translation_file.cpp msgid "Water surface level of the world." -msgstr "" +msgstr "מפלס פני המים בעולם." #: src/settings_translation_file.cpp msgid "Waving Nodes" @@ -6203,15 +6202,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Waving liquids wave speed" -msgstr "" +msgstr "מהירות גל של נוזלים עם גלים" #: src/settings_translation_file.cpp msgid "Waving liquids wavelength" -msgstr "" +msgstr "אורך גל של נוזלים עם גלים" #: src/settings_translation_file.cpp msgid "Waving plants" -msgstr "" +msgstr "צמחים מתנופפים" #: src/settings_translation_file.cpp msgid "" @@ -6287,7 +6286,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Width component of the initial window size." -msgstr "" +msgstr "רכיב רוחב של גודל החלון הראשוני." #: src/settings_translation_file.cpp msgid "Width of the selection box lines around nodes." @@ -6323,25 +6322,25 @@ msgstr "" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "" +msgstr "מצב טקסטורות מיושרות לעולם" #: src/settings_translation_file.cpp msgid "Y of flat ground." -msgstr "" +msgstr "Y לקרקע שטוחה." #: src/settings_translation_file.cpp msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." -msgstr "" +msgstr "Y של צפיפות הרים שיפוע רמת אפס. משמש להעברת הרים אנכית." #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." -msgstr "" +msgstr "Y של הגבול העליון של מערות גדולות." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." -msgstr "" +msgstr "מרחק Y שעליו מתרחבות מערות לגודל מלא." #: src/settings_translation_file.cpp msgid "" @@ -6391,15 +6390,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL file download timeout" -msgstr "" +msgstr "(cURL) זמן להורדה נגמר" #: src/settings_translation_file.cpp msgid "cURL parallel limit" -msgstr "" +msgstr "(cURL) מגבלה לפעולות במקביל" #: src/settings_translation_file.cpp msgid "cURL timeout" -msgstr "" +msgstr "(cURL) מגבלת זמן" #~ msgid "Configure" #~ msgstr "קביעת תצורה" From 454fe5be3cf39410f614b7eb4cfcd23057bcd666 Mon Sep 17 00:00:00 2001 From: "Omer I.S" Date: Tue, 9 Feb 2021 09:08:04 +0000 Subject: [PATCH 544/624] Translated using Weblate (Hebrew) Currently translated at 18.4% (250 of 1353 strings) --- po/he/minetest.po | 70 ++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 38 deletions(-) diff --git a/po/he/minetest.po b/po/he/minetest.po index db2ff0315..3e0ff411c 100644 --- a/po/he/minetest.po +++ b/po/he/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-02-09 15:34+0000\n" -"Last-Translator: Yossi Cohen \n" +"Last-Translator: Omer I.S. \n" "Language-Team: Hebrew \n" "Language: he\n" @@ -17,7 +17,7 @@ msgstr "" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" -msgstr "לקום לתחייה" +msgstr "קימה לתחייה" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" @@ -45,7 +45,7 @@ msgstr "התחברות מחדש" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "השרת מבקש שתתחבר מחדש:" +msgstr "השרת מבקש התחברות מחדש:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " @@ -100,13 +100,12 @@ msgid "Enable modpack" msgstr "הפעלת ערכת המודים" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"טעינת המוד \"1$\" נכשלה מכיוון שהוא מכיל תווים לא חוקיים. רק התווים [a-" -"z0-9_] מותרים." +"הפעלת המוד \"1$\" נכשלה מכיוון שהוא מכיל תווים לא חוקיים. רק התווים [a-z0-9_]" +" מותרים." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" @@ -456,7 +455,7 @@ msgstr "סחף פני השטח" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "עצים ודשא של ג׳ונגל" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" @@ -562,7 +561,7 @@ msgstr "התמדה" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "" +msgstr "נא להזין מספר שלם תקין." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." @@ -602,7 +601,7 @@ msgstr "הערך לא יכול להיות גדול מ־$1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" -msgstr "" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" @@ -610,7 +609,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" -msgstr "" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" @@ -618,7 +617,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" -msgstr "" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" @@ -673,7 +672,7 @@ msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "" +msgstr "התקנה: מקובץ: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" @@ -706,11 +705,11 @@ msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "" +msgstr "עיון בתוכן מקוון" #: builtin/mainmenu/tab_content.lua msgid "Content" -msgstr "" +msgstr "תוכן" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" @@ -718,11 +717,11 @@ msgstr "השבתת חבילת המרקם" #: builtin/mainmenu/tab_content.lua msgid "Information:" -msgstr "" +msgstr "מידע:" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" -msgstr "" +msgstr "חבילות מותקנות:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." @@ -730,7 +729,7 @@ msgstr "אין תלויות." #: builtin/mainmenu/tab_content.lua msgid "No package description available" -msgstr "" +msgstr "אין תיאור חבילה זמין" #: builtin/mainmenu/tab_content.lua msgid "Rename" @@ -738,7 +737,7 @@ msgstr "שינוי שם" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" -msgstr "" +msgstr "הסרת החבילה" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" @@ -746,11 +745,11 @@ msgstr "שימוש בחבילת המרקם" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" -msgstr "" +msgstr "תורמים פעילים" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "" +msgstr "מפתחים עיקריים" #: builtin/mainmenu/tab_credits.lua msgid "Credits" @@ -769,15 +768,15 @@ msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" -msgstr "" +msgstr "תורמים קודמים" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "" +msgstr "מפתחים עיקריים קודמים" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "" +msgstr "הכרזה על השרת" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" @@ -792,9 +791,8 @@ msgid "Enable Damage" msgstr "לאפשר חבלה" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Host Game" -msgstr "הסתר משחק" +msgstr "אירוח משחק" #: builtin/mainmenu/tab_local.lua msgid "Host Server" @@ -817,23 +815,20 @@ msgid "No world created or selected!" msgstr "אין עולם שנוצר או נבחר!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "שם/סיסמה" +msgstr "סיסמה" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Play Game" -msgstr "התחל משחק" +msgstr "להתחיל לשחק" #: builtin/mainmenu/tab_local.lua msgid "Port" msgstr "פורט" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "נא לבחור עולם:" +msgstr "בחירת מודים" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -844,9 +839,8 @@ msgid "Server Port" msgstr "" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Start Game" -msgstr "הסתר משחק" +msgstr "התחלת המשחק" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" @@ -1186,7 +1180,7 @@ msgid "Continue" msgstr "" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1208,13 +1202,13 @@ msgstr "" "- %s: כדי לזוז אחורה\n" "- %s: כדי לזוז שמאלה\n" "- %s: כדי לזוז ימינה\n" -"- %s: כדי לקפוץ או לטפס\n" -"- %s: כדי להתכופף או לרדת למטה\n" +"- %s: כדי לקפוץ או לטפס למעלה\n" +"- %s: כדי לחפור או לחבוט\n" +"- %s: כדי להניח או להשתמש\n" +"- %s: כדי להתכופף או לטפס למטה\n" "- %s: כדי לזרוק פריט\n" "- %s: כדי לפתוח את תיק החפצים\n" "- עכבר: כדי להסתובב או להסתכל\n" -"- לחצן שמאלי בעכבר: כדי לחצוב או להרביץ\n" -"- לחצן ימני בעכבר: כדי להניח או להשתמש\n" "- גלגלת העכבר: כדי לבחור פריט\n" "- %s: כדי לפתוח את הצ׳אט\n" From 9895eba92ef87db8ebbf0d5e55a2174aec83faa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Thu, 11 Feb 2021 19:33:38 +0000 Subject: [PATCH 545/624] Translated using Weblate (Turkish) Currently translated at 100.0% (1353 of 1353 strings) --- po/tr/minetest.po | 137 ++++++++++++++++++++-------------------------- 1 file changed, 59 insertions(+), 78 deletions(-) diff --git a/po/tr/minetest.po b/po/tr/minetest.po index 3b4aec62c..c0fa1902d 100644 --- a/po/tr/minetest.po +++ b/po/tr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Turkish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-06-15 22:41+0000\n" -"Last-Translator: monolifed \n" +"PO-Revision-Date: 2021-02-11 19:34+0000\n" +"Last-Translator: Oğuz Ersen \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -170,9 +170,8 @@ msgid "" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "İndiriliyor..." +msgstr "$1 indiriliyor..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." @@ -187,9 +186,8 @@ msgid "All packages" msgstr "Tüm paketler" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Tuş zaten kullanımda" +msgstr "Zaten kuruldu" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" @@ -222,14 +220,12 @@ msgid "Install" msgstr "Kur" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Kur" +msgstr "$1 kur" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "İsteğe bağlı bağımlılıklar:" +msgstr "Eksik bağımlılıkları kur" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -245,14 +241,12 @@ msgid "No results" msgstr "Sonuç yok" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Güncelle" +msgstr "Güncelleme yok" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Sesi kapat" +msgstr "Bulunamadı" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" @@ -763,9 +757,8 @@ msgid "Credits" msgstr "Hakkında" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Dizin seç" +msgstr "Kullanıcı Veri Dizinini Aç" #: builtin/mainmenu/tab_credits.lua msgid "" @@ -822,9 +815,8 @@ msgid "No world created or selected!" msgstr "Dünya seçilmedi ya da yaratılmadı!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Yeni Şifre" +msgstr "Parola" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -881,7 +873,7 @@ msgstr "Oyuna Katıl" #: builtin/mainmenu/tab_online.lua msgid "Name / Password" -msgstr "Ad / Şifre" +msgstr "Ad / Parola" #: builtin/mainmenu/tab_online.lua msgid "Ping" @@ -1091,7 +1083,7 @@ msgstr "Lütfen bir ad seçin!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "Sağlanan şifre dosyası açılamadı: " +msgstr "Sağlanan parola dosyası açılamadı: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " @@ -1168,7 +1160,7 @@ msgstr "Kamera güncelleme etkin" #: src/client/game.cpp msgid "Change Password" -msgstr "Şifre değiştir" +msgstr "Parola değiştir" #: src/client/game.cpp msgid "Cinematic mode disabled" @@ -1191,7 +1183,7 @@ msgid "Continue" msgstr "Devam et" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1214,12 +1206,12 @@ msgstr "" "- %s: sola hareket\n" "- %s: sağa hareket\n" "- %s: zıpla/tırman\n" +"- %s: kaz/vur\n" +"- %s: yerleştir/kullan\n" "- %s: sız/aşağı in\n" "- %s: ögeyi at\n" "- %s: envanter\n" "- Fare: dön/bak\n" -"- Sol fare: kaz/vur\n" -"- Sağ fare: yerleştir/kullan\n" "- Fare tekerleği: öge seç\n" "- %s: sohbet\n" @@ -1748,23 +1740,22 @@ msgid "Minimap hidden" msgstr "Mini harita gizli" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Radar kipinde mini harita, Yakınlaştırma x1" +msgstr "Radar kipinde mini harita, Yakınlaştırma x%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Yüzey kipinde mini harita, Yakınlaştırma x1" +msgstr "Yüzey kipinde mini harita, Yakınlaştırma x%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Minimum doku boyutu" +msgstr "Doku kipinde mini harita" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "Şifreler aynı değil!" +msgstr "Parolalar eşleşmiyor!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" @@ -1782,7 +1773,7 @@ msgstr "" "Bu sunucuya \"%s\" adıyla ilk kez katılmak üzeresiniz.\n" "Devam ederseniz, kimlik bilgilerinizi kullanarak yeni bir hesap bu sunucuda " "oluşturulur.\n" -"Lütfen şifrenizi tekrar yazın ve hesap oluşturmayı onaylamak için 'Kayıt Ol " +"Lütfen parolanızı tekrar yazın ve hesap oluşturmayı onaylamak için 'Kayıt Ol " "ve Katıl' düğmesini tıklayın veya iptal etmek için 'İptal'i tıklayın." #: src/gui/guiFormSpecMenu.cpp @@ -1939,15 +1930,15 @@ msgstr "Değiştir" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "Şifreyi Doğrulayın" +msgstr "Parolayı Doğrula" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "Yeni Şifre" +msgstr "Yeni Parola" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "Eski Şifre" +msgstr "Eski Parola" #: src/gui/guiVolumeChange.cpp msgid "Exit" @@ -2732,11 +2723,12 @@ msgid "Crosshair alpha" msgstr "Artı saydamlığı" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Artı saydamlığı (solukluk, 0 ile 255 arasında)." +msgstr "" +"Artı saydamlığı (solukluk, 0 ile 255 arasında).\n" +"Ayrıca nesne artı rengini de denetler" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2798,7 +2790,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Default password" -msgstr "Öntanımlı şifre" +msgstr "Öntanımlı parola" #: src/settings_translation_file.cpp msgid "Default privileges" @@ -2931,9 +2923,8 @@ msgid "Desynchronize block animation" msgstr "Blok animasyonlarını eşzamansız yap" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Sağ tuş" +msgstr "Kazma tuşu" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -2945,7 +2936,7 @@ msgstr "Hile önleme devre dışı" #: src/settings_translation_file.cpp msgid "Disallow empty passwords" -msgstr "Boş şifrelere izin verme" +msgstr "Boş parolalara izin verme" #: src/settings_translation_file.cpp msgid "Domain name of server, to be displayed in the serverlist." @@ -3155,9 +3146,8 @@ msgstr "" "seviyesi oluşturur: katı bir yüzenkara katmanı için uygundur." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "Oyun duraklatıldığında maksimum FPS." +msgstr "Odaklanmadığında veya duraklatıldığında FPS" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3543,18 +3533,17 @@ msgid "HUD toggle key" msgstr "HUD açma/kapama tuşu" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" "- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"Kullanım dışı lua API çağrılarının ele alınması:\n" -"- legacy: (eski) Eski davranış taklit etmeye çalışır (öntanımlı).\n" -"- log: (günlük) kullanım dışı çağrıları taklit eder ve günlükler (hata " -"ayıklama için öntanımlı).\n" -"- error: (hata) kullanım dışı çağrıların kullanımını iptal eder (mod " +"Kullanım dışı Lua API çağrılarının ele alınması:\n" +"- none: (yok) kullanım dışı çağrıları günlüğe kaydetmez.\n" +"- log: (günlük) kullanım dışı çağrıları taklit eder ve geri izlemesini " +"günlüğe kaydeder (öntanımlı).\n" +"- error: (hata) kullanım dışı çağrılar kullanıldığında iptal eder (mod " "geliştiricileri için önerilen)." #: src/settings_translation_file.cpp @@ -3910,7 +3899,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." -msgstr "Etkinleştirilirse, yeni oyuncular boş bir şifre ile katılamaz." +msgstr "Etkinleştirilirse, yeni oyuncular boş bir parola ile katılamaz." #: src/settings_translation_file.cpp msgid "" @@ -4078,9 +4067,8 @@ msgid "Joystick button repetition interval" msgstr "Joystick düğmesi tekrarlama aralığı" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "Joystick türü" +msgstr "Joystick ölü bölgesi" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4185,13 +4173,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Zıplama tuşu.\n" +"Kazma tuşu.\n" "Bakın: http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4338,13 +4325,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Zıplama tuşu.\n" +"Yerleştirme tuşu.\n" "Bakın: http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5302,9 +5288,8 @@ msgid "Maximum FPS" msgstr "Maksimum FPS" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "Oyun duraklatıldığında maksimum FPS." +msgstr "Pencere odaklanmadığında veya oyun duraklatıldığında en yüksek FPS." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5598,7 +5583,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "New users need to input this password." -msgstr "Yeni kullanıcıların bu şifreyi girmesi gerekir." +msgstr "Yeni kullanıcıların bu parolayı girmesi gerekir." #: src/settings_translation_file.cpp msgid "Noclip" @@ -5772,14 +5757,12 @@ msgid "Pitch move mode" msgstr "Eğim hareket kipi" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "Uçma tuşu" +msgstr "Yerleştirme tuşu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "Sağ tık tekrarlama aralığı" +msgstr "Yerleştirme tekrarlama aralığı" #: src/settings_translation_file.cpp msgid "" @@ -6261,13 +6244,12 @@ msgid "Show entity selection boxes" msgstr "Varlık seçim kutularını göster" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"Dili ayarlayın. Sistem dilini kullanmak için boş bırakın.\n" -"Bunu değiştirdikten sonra yeniden başlatmak gerekir." +"Varlık seçim kutularını göster.\n" +"Bunu değiştirdikten sonra yeniden başlatma gerekir." #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -6541,9 +6523,8 @@ msgid "The URL for the content repository" msgstr "İçerik deposu için URL" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" -msgstr "Kullanılacak joystick'in tanımlayıcısı" +msgstr "Joystick ölü bölgesi" #: src/settings_translation_file.cpp msgid "" @@ -6617,7 +6598,6 @@ msgstr "" "Bu active_object_send_range_blocks ile birlikte ayarlanmalıdır." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6627,10 +6607,12 @@ msgid "" "Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Irrlicht için işleme arka ucu.\n" -"Bunu değiştirdikten sonra tekrar başlatma gerekir.\n" -"Not: Android'de, emin değilseniz OGLES1 kullanın! Başka türlü, uygulama\n" -"başlayamayabilir. Diğer platformlarda, OpenGL önerilir ve şu anda gölgeleme\n" -"desteği olan tek sürücüdür." +"Bunu değiştirdikten sonra yeniden başlatma gerekir.\n" +"Not: Android'de, emin değilseniz OGLES1 kullanın! Başka türlü, uygulama " +"başlayamayabilir.\n" +"Diğer platformlarda, OpenGL önerilir.\n" +"Gölgelendiriciler OpenGL (yalnızca masaüstü) ve OGLES2 (deneysel) tarafından " +"desteklenmektedir" #: src/settings_translation_file.cpp msgid "" @@ -6679,14 +6661,13 @@ msgstr "" "cinsinden tekrar eden olaylar arasında geçen süre." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." msgstr "" -"Sağ fare tuşuna basılı tutarken tekrar eden sağ tıklar arasında saniye " -"cinsinden\n" -"geçen süre." +"Yerleştirme tuşuna basılı tutarken tekrarlanan düğüm yerleşimleri arasında " +"geçen\n" +"saniye cinsinden süre." #: src/settings_translation_file.cpp msgid "The type of joystick" From e97dc5ece52be0fc1a0ac68c092f97621de78847 Mon Sep 17 00:00:00 2001 From: Adnan1091 Date: Fri, 5 Feb 2021 15:45:07 +0000 Subject: [PATCH 546/624] Translated using Weblate (Turkish) Currently translated at 100.0% (1353 of 1353 strings) --- po/tr/minetest.po | 71 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 22 deletions(-) diff --git a/po/tr/minetest.po b/po/tr/minetest.po index c0fa1902d..db95e41fb 100644 --- a/po/tr/minetest.po +++ b/po/tr/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-02-11 19:34+0000\n" -"Last-Translator: Oğuz Ersen \n" +"Last-Translator: Adnan1091 \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -153,21 +153,23 @@ msgstr "etkin" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" zaten var.Değiştirilsin mi?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "$ 1 ve $ 2 destek dosyaları yüklenecek." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 'e $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 indiriliyor,\n" +"$2 sırada" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 downloading..." @@ -175,11 +177,11 @@ msgstr "$1 indiriliyor..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 için destek dosyaları bulanamadı." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 indirilecek, ve $2 destek dosyaları atlanacak." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" @@ -194,9 +196,8 @@ msgid "Back to Main Menu" msgstr "Ana Menüye Dön" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Oyun Barındır" +msgstr "Yerel oyun:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -250,15 +251,15 @@ msgstr "Bulunamadı" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Üzerine yaz" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Lütfen asıl oyunun doğru olup olmadığını gözden geçirin." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "Sıraya alındı" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -274,11 +275,11 @@ msgstr "Güncelle" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Hepsini güncelle [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Tarayıcı'da daha fazla bilgi edinin" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -765,6 +766,8 @@ msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Dosya yöneticisiyle dünya,oyun,modlar ve doku paketleri olan kullanıcı " +"dayalı dosyayı açar." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -804,7 +807,7 @@ msgstr "ContentDB'den oyunlar yükle" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Ad" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -827,9 +830,8 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Dünya Seç:" +msgstr "Mod seçin" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -981,9 +983,8 @@ msgid "Shaders" msgstr "Gölgelemeler" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Yüzenkaralar (deneysel)" +msgstr "Gölgelendirme (deneysel)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -2149,7 +2150,7 @@ msgstr "ABM aralığı" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "ABM zаman gideri" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2654,7 +2655,7 @@ msgstr "ContentDB: Kara Liste" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "ContentDB aşırı eşzamanlı indirmeler" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2739,6 +2740,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Artı rengi (R,G,B).\n" +"Ayrıca nesne artı rengini de değiştirir" #: src/settings_translation_file.cpp msgid "DPI" @@ -5098,11 +5101,11 @@ msgstr "Tüm sıvıları opak yapar" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Hafıza deposu için harita sıkıştırma düzeyi" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Ağ aktarma hızı için harita sıkıştırma düzeyi" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5351,6 +5354,9 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"En yüksek eşzamanlı indirme sayısı.Bu sınırı aşan indirmeler sıraya " +"alınacaktır.\n" +"Bu curl_parallel_limit den daha az olmalıdır." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -6651,6 +6657,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"ABM'lerin her adımda yürütülmesi için izin verilen zaman gideri\n" +"(ABM aralığının bir parçası olarak)" #: src/settings_translation_file.cpp msgid "" @@ -6835,6 +6843,14 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"Öbek/Küme kenarlarını düzeltmek için çok örnekli düzgünleştirmeyi(anti-" +"aliasing) kullanın.\n" +"Bu işlem görüntüyü keskinleştirirken 3 boyutlu görüş alanını düzeltir.\n" +"ama doku(texture) içindeki görüntüyü etkilemez.\n" +"(Saydam dokularda etkisi daha belirgindir)\n" +"Gölgelendirme kapalı ise düğüm arası(nod) boşluk görülür.\n" +"0'da ise düzgünleştirme kapalıdır.\n" +"Ayarları değiştirdikten sonra yenileme gereklidir." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -7237,6 +7253,11 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Harita kütlerini diske kaydederken kullanılacak ZLib sıkıştırma düzeyi.\n" +"-1 - Zlib'in varsayılan sıkıştırma düzeyi\n" +"0 - hiçbir sıkıştırma yok, en hızlı\n" +"9 - en iyi sıkıştırma, en yavaş\n" +"(seviye 1-3, Zlib'in \"hızlı\" , 4-9 sıradan yöntemi kullanır)" #: src/settings_translation_file.cpp msgid "" @@ -7246,6 +7267,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Harita kütlerini istemciye(client) gönderirken kullanılacak ZLib sıkıştırma " +"düzeyi.\n" +"-1 - Zlib'in varsayılan sıkıştırma düzeyi\n" +"0 - hiçbir sıkıştırma yok, en hızlı\n" +"9 - en iyi sıkıştırma, en yavaş\n" +"(seviye 1-3, Zlib'in \"hızlı\" , 4-9 sıradan yöntemi kullanır)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From 1b7acd2a6ca2cc4ad267e24f89ad947eb083edad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81cs=20Zolt=C3=A1n?= Date: Sun, 7 Feb 2021 21:02:58 +0000 Subject: [PATCH 547/624] Translated using Weblate (Hungarian) Currently translated at 75.7% (1025 of 1353 strings) --- po/hu/minetest.po | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/po/hu/minetest.po b/po/hu/minetest.po index 0f14b57da..c599ae34e 100644 --- a/po/hu/minetest.po +++ b/po/hu/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Hungarian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-12-05 15:29+0000\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" "Last-Translator: Ács Zoltán \n" "Language-Team: Hungarian \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -168,6 +168,8 @@ msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 letöltése,\n" +"$2 sorba állítva" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -256,7 +258,7 @@ msgstr "Hang némítása" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Felülírás" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." @@ -264,7 +266,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "Sorbaállítva" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -280,11 +282,11 @@ msgstr "Frissítés" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Összes frissítése [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "További információ megnyitása a böngészőben" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -778,6 +780,9 @@ msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Megnyitja a fájlkezelőben / intézőben azt a könyvtárat, amely a felhasználó " +"világait,\n" +"játékait, modjait, és textúráit tartalmazza." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -817,7 +822,7 @@ msgstr "Játékok telepítése ContentDB-ről" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Név" #: builtin/mainmenu/tab_local.lua msgid "New" From 8bfe4e3cef4c6f9cf49904381435487a50214b47 Mon Sep 17 00:00:00 2001 From: Jacques Lagrange Date: Thu, 11 Feb 2021 20:41:00 +0000 Subject: [PATCH 548/624] Translated using Weblate (Italian) Currently translated at 100.0% (1353 of 1353 strings) --- po/it/minetest.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/po/it/minetest.po b/po/it/minetest.po index a5c38f328..a8597e49a 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-02-05 09:40+0000\n" -"Last-Translator: Giov4 \n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Jacques Lagrange \n" "Language-Team: Italian \n" "Language: it\n" @@ -769,8 +769,8 @@ msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" -"Apre la cartella che contiene mondi, giochi, mod e pacchetti texture forniti " -"dall'utente in un gestore di file / explorer." +"Apre la cartella che contiene mondi, giochi, mod e pacchetti \n" +"texture forniti dall'utente in un gestore di file / explorer." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -3182,7 +3182,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "FPS when unfocused or paused" -msgstr "FPS quando il gioco è in pausa o in secondo piano." +msgstr "FPS quando il gioco è in pausa o in secondo piano" #: src/settings_translation_file.cpp msgid "FSAA" From 7dc68ebf532aefe62da81f8b10c3dba34bbb42e4 Mon Sep 17 00:00:00 2001 From: "Ertu (Er2, Err)" Date: Fri, 12 Feb 2021 08:01:13 +0000 Subject: [PATCH 549/624] Translated using Weblate (Russian) Currently translated at 99.4% (1345 of 1353 strings) --- po/ru/minetest.po | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index f7fd5eca8..9090e49fb 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-02-05 09:40+0000\n" -"Last-Translator: Nikita Epifanov \n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Ertu (Er2, Err) \n" "Language-Team: Russian \n" "Language: ru\n" @@ -255,7 +255,6 @@ msgid "Overwrite" msgstr "Перезаписать" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Please check that the base game is correct." msgstr "Пожалуйста, убедитесь, что базовая игра верна." @@ -1757,7 +1756,6 @@ msgid "Minimap in surface mode, Zoom x%d" msgstr "Миникарта в поверхностном режиме, увеличение x%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" msgstr "Минимальный размер текстуры" @@ -2944,9 +2942,8 @@ msgid "Desynchronize block animation" msgstr "Рассинхронизация анимации блоков" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Правая клавиша меню" +msgstr "Кнопка копать" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3170,7 +3167,6 @@ msgstr "" "с более плоскими низинами, подходит для массивного уровня парящих островов." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" msgstr "Максимум кадровой частоты при паузе." @@ -4187,13 +4183,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша прыжка.\n" +"Клавиша копания.\n" "См. http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" From 3b7663e79f2aeb3a31f827a6011d48fa01019e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Thu, 11 Feb 2021 19:34:51 +0000 Subject: [PATCH 550/624] Translated using Weblate (Turkish) Currently translated at 100.0% (1353 of 1353 strings) --- po/tr/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/tr/minetest.po b/po/tr/minetest.po index db95e41fb..15fe58912 100644 --- a/po/tr/minetest.po +++ b/po/tr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Turkish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-02-11 19:34+0000\n" -"Last-Translator: Adnan1091 \n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Oğuz Ersen \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -766,8 +766,8 @@ msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" -"Dosya yöneticisiyle dünya,oyun,modlar ve doku paketleri olan kullanıcı " -"dayalı dosyayı açar." +"Bir dosya yöneticisi / gezgininde kullanıcı tarafından sağlanan dünyaları,\n" +"oyunları, modları ve doku paketlerini içeren dizini açar." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" From 65047e41921f541b3ee26209040a53025fc1b021 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Thu, 11 Feb 2021 21:06:53 +0000 Subject: [PATCH 551/624] Translated using Weblate (Lojban) Currently translated at 13.9% (189 of 1353 strings) --- po/jbo/minetest.po | 82 +++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 49 deletions(-) diff --git a/po/jbo/minetest.po b/po/jbo/minetest.po index ab7b25e3e..b44505ae6 100644 --- a/po/jbo/minetest.po +++ b/po/jbo/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Lojban (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-03-15 18:36+0000\n" -"Last-Translator: Robin Townsend \n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Wuzzy \n" "Language-Team: Lojban \n" "Language: jbo\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr ".i do morsi" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "fitytu'i" #: builtin/fstk/ui.lua #, fuzzy @@ -80,7 +80,7 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "sisti" +msgstr "fitytoltu'i" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/tab_content.lua @@ -321,7 +321,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "kevzda" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -344,7 +344,7 @@ msgstr ".i ko kibycpa pa se kelci la'o zoi. minetest.net .zoi" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "kevdi'u" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" @@ -352,11 +352,12 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "lo tumla cu fulta lo tsani" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Floatlands (experimental)" -msgstr "" +msgstr "fulta tumla" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -401,7 +402,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "cmana" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -425,7 +426,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "rirxe" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" @@ -433,9 +434,8 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Seed" -msgstr "cunso jai krasi" +msgstr "cunso namcu" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" @@ -807,7 +807,7 @@ msgstr "finti se kelci" #: builtin/mainmenu/tab_local.lua msgid "Enable Damage" -msgstr "" +msgstr "pilno lo selxai" #: builtin/mainmenu/tab_local.lua #, fuzzy @@ -835,9 +835,8 @@ msgid "No world created or selected!" msgstr ".i do no munje cu cupra ja cu cuxna" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "lo cnino lerpoijaspu" +msgstr "lo lerpoijaspu" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -866,7 +865,7 @@ msgstr "co'a kelci" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "judri .i judrnporte" +msgstr "lo samjudri jo'u judrnporte" #: builtin/mainmenu/tab_online.lua msgid "Connect" @@ -894,7 +893,7 @@ msgstr "co'a kansa fi le ka kelci" #: builtin/mainmenu/tab_online.lua msgid "Name / Password" -msgstr "cmene .i lerpoijaspu" +msgstr "lo cmene .e lo lerpoijaspu" #: builtin/mainmenu/tab_online.lua msgid "Ping" @@ -910,9 +909,8 @@ msgid "2x" msgstr "" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "3D Clouds" -msgstr "le bliku dilnu" +msgstr "cibyca'u dilnu" #: builtin/mainmenu/tab_settings.lua msgid "4x" @@ -953,12 +951,10 @@ msgid "Fancy Leaves" msgstr "lo tolkli pezli" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Mipmap" msgstr "lo puvrmipmepi" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Mipmap + Aniso. Filter" msgstr "lo puvrmipmepi .e lo puvytolmanfyju'e" @@ -967,9 +963,8 @@ msgid "No Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "No Mipmap" -msgstr "lo puvrmipmepi" +msgstr "" #: builtin/mainmenu/tab_settings.lua #, fuzzy @@ -991,14 +986,12 @@ msgid "Opaque Leaves" msgstr "lo tolkli pezli" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Opaque Water" -msgstr "lo tolkli djacu" +msgstr "tolkli djacu" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Particles" -msgstr "lo kantu" +msgstr "kantu" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" @@ -1427,7 +1420,7 @@ msgstr "nonselkansa" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "ni sance" #: src/client/game.cpp #, fuzzy @@ -1465,7 +1458,7 @@ msgstr "" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr ".i fe lo ni sance cu cenba fi li %d ce'i" #: src/client/game.cpp msgid "Wireframe shown" @@ -1576,9 +1569,8 @@ msgid "Insert" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Left" -msgstr "za'i zu'e muvdu" +msgstr "zu'e muvdu" #: src/client/keycode.cpp msgid "Left Button" @@ -1704,9 +1696,8 @@ msgid "Return" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Right" -msgstr "za'i ri'u muvdu" +msgstr "ri'u muvdu" #: src/client/keycode.cpp msgid "Right Button" @@ -1829,9 +1820,8 @@ msgid "Automatic jumping" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Backward" -msgstr "za'i ti'a muvdu" +msgstr "ti'a muvdu" #: src/gui/guiKeyChangeMenu.cpp #, fuzzy @@ -1856,21 +1846,19 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" -msgstr "" +msgstr "jdikygau lo ni sance" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Drop" -msgstr "mu'e falcru" +msgstr "falcru" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Forward" -msgstr "za'i ca'u muvdu" +msgstr "ca'u muvdu" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" @@ -1878,7 +1866,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "" +msgstr "zengau lo ni sance" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" @@ -2084,9 +2072,8 @@ msgid "2D noise that locates the river valleys and channels." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D clouds" -msgstr "le bliku dilnu" +msgstr "cibyca'u dilnu" #: src/settings_translation_file.cpp msgid "3D mode" @@ -2883,9 +2870,8 @@ msgid "Dig key" msgstr "za'i ri'u muvdu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Digging particles" -msgstr "lo kantu" +msgstr "kakpa kantu" #: src/settings_translation_file.cpp #, fuzzy @@ -4998,7 +4984,6 @@ msgid "Minimum texture size" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mipmapping" msgstr "lo puvrmipmepi" @@ -6237,9 +6222,8 @@ msgid "Virtual joystick triggers aux button" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Volume" -msgstr "lo ni sance " +msgstr "lo ni sance" #: src/settings_translation_file.cpp msgid "" From d8e7b6ec681a2636d7cee3e88d9f6be193e8401f Mon Sep 17 00:00:00 2001 From: Yossi Cohen Date: Thu, 11 Feb 2021 10:29:22 +0000 Subject: [PATCH 552/624] Translated using Weblate (Hebrew) Currently translated at 24.3% (330 of 1353 strings) --- po/he/minetest.po | 780 +++++++++++++++++++++++++--------------------- 1 file changed, 432 insertions(+), 348 deletions(-) diff --git a/po/he/minetest.po b/po/he/minetest.po index 3e0ff411c..3cda5cb60 100644 --- a/po/he/minetest.po +++ b/po/he/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Hebrew (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-02-09 15:34+0000\n" -"Last-Translator: Omer I.S. \n" +"PO-Revision-Date: 2021-02-17 22:50+0000\n" +"Last-Translator: Yossi Cohen \n" "Language-Team: Hebrew \n" "Language: he\n" @@ -13,11 +13,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" -msgstr "קימה לתחייה" +msgstr "הזדמן" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" @@ -125,7 +125,7 @@ msgstr "לא סופק תיאור משחק." #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "אין תלויות מחייבות" +msgstr "ללא תלויות קשות" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -137,7 +137,7 @@ msgstr "אין תלויות רשות" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "תלויות רשות:" +msgstr "תלויות אופציונאליות:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp @@ -505,7 +505,7 @@ msgstr "הסכמה" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "שינוי שם ערכת המודים:" +msgstr "שנה את שם חבילת המודים:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -529,7 +529,7 @@ msgstr "חזור לדף ההגדרות >" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" -msgstr "עיון" +msgstr "דפדף" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" @@ -561,11 +561,11 @@ msgstr "התמדה" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "נא להזין מספר שלם תקין." +msgstr "הכנס מספר שלם חוקי." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." -msgstr "נא להזין מספר תקין." +msgstr "הכנס מספר חוקי." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" @@ -573,7 +573,7 @@ msgstr "שחזור לברירת המחדל" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" -msgstr "" +msgstr "קנה מידה" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Search" @@ -605,7 +605,7 @@ msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" -msgstr "" +msgstr "מרווחיות X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" @@ -613,7 +613,7 @@ msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "" +msgstr "מרווחיות Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" @@ -621,7 +621,7 @@ msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" -msgstr "" +msgstr "מרווחיות Z" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". @@ -629,14 +629,14 @@ msgstr "" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" -msgstr "" +msgstr "ערך מוחלט" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "" +msgstr "ברירת מחדל" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -644,7 +644,7 @@ msgstr "" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" -msgstr "" +msgstr "החלקת ערכים" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" @@ -656,19 +656,19 @@ msgstr "$1 מודים" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "" +msgstr "התקנת $1 אל $2 נכשלה" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" +msgstr "התקנת מוד: לא ניתן למצוא את שם המוד האמיתי עבור: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "" +msgstr "התקנת מוד: לא ניתן למצוא שם תיקייה מתאים עבור חבילת המודים $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" +msgstr "התקנה: סוג קובץ לא נתמך \"$1\" או שהארכיב פגום" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" @@ -676,23 +676,23 @@ msgstr "התקנה: מקובץ: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "" +msgstr "לא ניתן למצוא מוד/חבילת מודים תקינה" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" -msgstr "" +msgstr "לא ניתן להתקין $1 כחבילת טקסטורות" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" -msgstr "" +msgstr "לא ניתן להתקין משחק בתור $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a mod as a $1" -msgstr "" +msgstr "לא ניתן להתקין מוד בתור $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" -msgstr "" +msgstr "לא ניתן להתקין חבילת מודים בתור $1" #: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp msgid "Loading..." @@ -733,7 +733,7 @@ msgstr "אין תיאור חבילה זמין" #: builtin/mainmenu/tab_content.lua msgid "Rename" -msgstr "שינוי שם" +msgstr "שנה שם" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" @@ -756,15 +756,16 @@ msgid "Credits" msgstr "תודות" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "נא לבחור תיקיה" +msgstr "נא לבחור תיקיית משתמש" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"פותח את התיקייה המכילה עולמות, משחקים, מודים,\n" +"וחבילות טקסטורה במנהל קבצים." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -772,15 +773,15 @@ msgstr "תורמים קודמים" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "מפתחים עיקריים קודמים" +msgstr "מפתחי ליבה קודמים" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "הכרזה על השרת" +msgstr "הכרז על השרת" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" -msgstr "" +msgstr "הצמד כתובת" #: builtin/mainmenu/tab_local.lua msgid "Creative Mode" @@ -800,11 +801,11 @@ msgstr "אכסון שרת" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "התקנת משחק מContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "שם" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -836,7 +837,7 @@ msgstr "נא לבחור עולם:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" -msgstr "" +msgstr "פורט לשרת" #: builtin/mainmenu/tab_local.lua msgid "Start Game" @@ -856,15 +857,15 @@ msgstr "מצב יצירתי" #: builtin/mainmenu/tab_online.lua msgid "Damage enabled" -msgstr "החבלה מאופשרת" +msgstr "נזק מופעל" #: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" -msgstr "" +msgstr "מחק מועדף" #: builtin/mainmenu/tab_online.lua msgid "Favorite" -msgstr "" +msgstr "מועדף" #: builtin/mainmenu/tab_online.lua msgid "Join Game" @@ -876,7 +877,7 @@ msgstr "שם/סיסמה" #: builtin/mainmenu/tab_online.lua msgid "Ping" -msgstr "" +msgstr "פינג" #. ~ PvP = Player versus Player #: builtin/mainmenu/tab_online.lua @@ -885,19 +886,19 @@ msgstr "לאפשר קרבות" #: builtin/mainmenu/tab_settings.lua msgid "2x" -msgstr "" +msgstr "x2" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" -msgstr "" +msgstr "עננים תלת מימדיים" #: builtin/mainmenu/tab_settings.lua msgid "4x" -msgstr "" +msgstr "x4" #: builtin/mainmenu/tab_settings.lua msgid "8x" -msgstr "" +msgstr "x8" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" @@ -905,64 +906,63 @@ msgstr "כל ההגדרות" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "" +msgstr "החלקת קצוות (AA):" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "" +msgstr "שמור אוטומטית גודל מסך" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" -msgstr "" +msgstr "פילטר בילינארי" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" -msgstr "" +msgstr "שנה מקשים" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Connected Glass" -msgstr "התחבר" +msgstr "זכוכיות מחוברות" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" -msgstr "" +msgstr "עלים מגניבים" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" -msgstr "" +msgstr "מיפמאפ" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" -msgstr "" +msgstr "מיפמאפ + פילטר אניסוטרופי" #: builtin/mainmenu/tab_settings.lua msgid "No Filter" -msgstr "" +msgstr "בלי פילטר" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" -msgstr "" +msgstr "בלי מיפמאפ" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "" +msgstr "הבלטת קוביות" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" -msgstr "" +msgstr "הדגשת מסגרת קוביות" #: builtin/mainmenu/tab_settings.lua msgid "None" -msgstr "" +msgstr "ללא" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" -msgstr "" +msgstr "עלים אטומים" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Water" -msgstr "" +msgstr "מים אטומים לאור" #: builtin/mainmenu/tab_settings.lua msgid "Particles" @@ -970,7 +970,7 @@ msgstr "חלקיקים" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "" +msgstr "מסך:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" @@ -978,103 +978,103 @@ msgstr "הגדרות" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" -msgstr "" +msgstr "שיידרים" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (experimental)" -msgstr "" +msgstr "שיידרים (נסיוני)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" -msgstr "" +msgstr "שיידרים (לא זמינים)" #: builtin/mainmenu/tab_settings.lua msgid "Simple Leaves" -msgstr "" +msgstr "עלים פשוטים" #: builtin/mainmenu/tab_settings.lua msgid "Smooth Lighting" -msgstr "" +msgstr "החלקת תאורה" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" -msgstr "" +msgstr "טקסטורות:" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" +msgstr "כדי לאפשר שיידרים יש להשתמש בדרייבר של OpenGL." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "" +msgstr "מיפוי גוונים" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" -msgstr "" +msgstr "סף נגיעה: (px)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" -msgstr "" +msgstr "פילטר תלת לינארי" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" -msgstr "" +msgstr "עלים מתנופפים" #: builtin/mainmenu/tab_settings.lua msgid "Waving Liquids" -msgstr "" +msgstr "נוזלים עם גלים" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" -msgstr "" +msgstr "צמחים מתנוענעים" #: src/client/client.cpp msgid "Connection timed out." -msgstr "" +msgstr "זמן המתנה לחיבור אזל." #: src/client/client.cpp msgid "Done!" -msgstr "" +msgstr "הסתיים!" #: src/client/client.cpp msgid "Initializing nodes" -msgstr "" +msgstr "מאתחל קוביות" #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "" +msgstr "מאתחל קוביות..." #: src/client/client.cpp msgid "Loading textures..." -msgstr "" +msgstr "טוען טקסטורות..." #: src/client/client.cpp msgid "Rebuilding shaders..." -msgstr "" +msgstr "בונה מחדש שיידרים..." #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" -msgstr "" +msgstr "בעיה בחיבור (נגמר זמן ההמתנה?)" #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" -msgstr "" +msgstr "לא מצליח למצוא או לטעון משחק \"" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." -msgstr "" +msgstr "הגדרת משחק לא תקינה." #: src/client/clientlauncher.cpp msgid "Main Menu" -msgstr "" +msgstr "תפריט ראשי" #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." -msgstr "" +msgstr "לא נבחר עולם ולא נתנה כתובת. לא עושה כלום." #: src/client/clientlauncher.cpp msgid "Player name too long." -msgstr "" +msgstr "שם השחקן ארוך מידי." #: src/client/clientlauncher.cpp msgid "Please choose a name!" @@ -1082,11 +1082,11 @@ msgstr "נא לבחור שם!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "" +msgstr "הסיסמה שניתנה לא פתחה: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " -msgstr "" +msgstr "נתיב העולם שניתן לא קיים: " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" @@ -1105,6 +1105,8 @@ msgid "" "\n" "Check debug.txt for details." msgstr "" +"\n" +"בדוק את debug.txt לפרטים נוספים." #: src/client/game.cpp msgid "- Address: " @@ -1120,7 +1122,7 @@ msgstr "- חבלה: " #: src/client/game.cpp msgid "- Mode: " -msgstr "" +msgstr "- מצב: " #: src/client/game.cpp msgid "- Port: " @@ -1133,51 +1135,51 @@ msgstr "- ציבורי: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "" +msgstr "- קרב: " #: src/client/game.cpp msgid "- Server Name: " -msgstr "" +msgstr "- שם שרת: " #: src/client/game.cpp msgid "Automatic forward disabled" -msgstr "" +msgstr "התקדמות אוטומטית קדימה מבוטלת" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "" +msgstr "תנועה קדימה אוטומטית מופעל" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "" +msgstr "עדכון מצלמה מבוטל" #: src/client/game.cpp msgid "Camera update enabled" -msgstr "" +msgstr "עדכון מצלמה מופעל" #: src/client/game.cpp msgid "Change Password" -msgstr "" +msgstr "שנה סיסמה" #: src/client/game.cpp msgid "Cinematic mode disabled" -msgstr "" +msgstr "מצב קולנועי מבוטל" #: src/client/game.cpp msgid "Cinematic mode enabled" -msgstr "" +msgstr "מצב קולנועי מופעל" #: src/client/game.cpp msgid "Client side scripting is disabled" -msgstr "" +msgstr "סקריפטים בצד לקוח מבוטלים" #: src/client/game.cpp msgid "Connecting to server..." -msgstr "" +msgstr "מתחבר לשרת..." #: src/client/game.cpp msgid "Continue" -msgstr "" +msgstr "המשך" #: src/client/game.cpp #, c-format @@ -1214,23 +1216,23 @@ msgstr "" #: src/client/game.cpp msgid "Creating client..." -msgstr "" +msgstr "יוצר לקוח..." #: src/client/game.cpp msgid "Creating server..." -msgstr "" +msgstr "יוצר שרת..." #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "מידע דיבאג וגרף פרופיילר מוסתר" #: src/client/game.cpp msgid "Debug info shown" -msgstr "" +msgstr "מידע דיבאג מוצג" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgstr "מידע דיבאג, גרף פרופיילר, ומצב שלד מוסתר" #: src/client/game.cpp msgid "" @@ -1247,18 +1249,30 @@ msgid "" "- touch&drag, tap 2nd finger\n" " --> place single item to slot\n" msgstr "" +"פקדי ברירת מחדל:\n" +"לא נראה תפריט:\n" +"- לחיצה בודדת: הפעלת כפתור\n" +"- הקשה כפולה: מקום / שימוש\n" +"- החלק אצבע: הביט סביב\n" +"תפריט / מלאי גלוי:\n" +"- לחיצה כפולה (בחוץ):\n" +"--> סגור\n" +"- מחסנית מגע, חריץ מגע:\n" +"--> הזז מחסנית\n" +"- גע וגרור, הקש על האצבע השנייה\n" +"--> מקם פריט יחיד לחריץ\n" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "" +msgstr "ביטול טווח ראיה בלתי מוגבל" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "" +msgstr "הפעלת טווח ראיה בלתי מוגבל" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "" +msgstr "יציאה לתפריט" #: src/client/game.cpp msgid "Exit to OS" @@ -1266,40 +1280,39 @@ msgstr "יציאה למערכת ההפעלה" #: src/client/game.cpp msgid "Fast mode disabled" -msgstr "" +msgstr "מצב מהיר מבוטל" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "" +msgstr "מצב מהיר מופעל" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" +msgstr "מצב מהיר מופעל (שים לב, אין הרשאת 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" -msgstr "" +msgstr "מצב תעופה מבוטל" #: src/client/game.cpp msgid "Fly mode enabled" -msgstr "מצב התעופה הופעל" +msgstr "מצב תעופה הופעל" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" +msgstr "מצב תעופה מופעל (שים לב, אין הרשאת 'fly')" #: src/client/game.cpp msgid "Fog disabled" -msgstr "" +msgstr "ערפל מבוטל" #: src/client/game.cpp -#, fuzzy msgid "Fog enabled" -msgstr "מופעל" +msgstr "ערפל מופעל" #: src/client/game.cpp msgid "Game info:" -msgstr "" +msgstr "מידע על המשחק:" #: src/client/game.cpp msgid "Game paused" @@ -1307,75 +1320,75 @@ msgstr "המשחק הושהה" #: src/client/game.cpp msgid "Hosting server" -msgstr "" +msgstr "שרת מארח" #: src/client/game.cpp msgid "Item definitions..." -msgstr "" +msgstr "הגדרות פריט..." #: src/client/game.cpp msgid "KiB/s" -msgstr "" +msgstr "קילובייט/שניה" #: src/client/game.cpp msgid "Media..." -msgstr "" +msgstr "מדיה..." #: src/client/game.cpp msgid "MiB/s" -msgstr "" +msgstr "מגהבייט/שניה" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "" +msgstr "מיפמאפ כרגע מבוטל ע\"י המשחק או המוד" #: src/client/game.cpp msgid "Noclip mode disabled" -msgstr "" +msgstr "מעבר דרך קירות מבוטל" #: src/client/game.cpp msgid "Noclip mode enabled" -msgstr "" +msgstr "מעבר דרך קירות מופעל" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" +msgstr "מעבר דרך קירות מופעל (שים לב, אין הרשאת 'noclip')" #: src/client/game.cpp msgid "Node definitions..." -msgstr "" +msgstr "הגדרות קוביה..." #: src/client/game.cpp msgid "Off" -msgstr "" +msgstr "מכובה" #: src/client/game.cpp msgid "On" -msgstr "" +msgstr "דולק" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "" +msgstr "תנועה לכיוון מבט מכובה" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "" +msgstr "תנועה לכיוון מבט מופעל" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "גרף פרופיילר מוצג" #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "שרת מרוחק" #: src/client/game.cpp msgid "Resolving address..." -msgstr "" +msgstr "מפענח כתובת..." #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "מכבה..." #: src/client/game.cpp msgid "Singleplayer" @@ -1383,149 +1396,148 @@ msgstr "שחקן יחיד" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "ווליום שמע" #: src/client/game.cpp msgid "Sound muted" -msgstr "" +msgstr "שמע מושתק" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "מערכת שמע לא מופעלת" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "מערכת שמע לא נתמכת בבניה הנוכחית" #: src/client/game.cpp msgid "Sound unmuted" -msgstr "" +msgstr "מערכת שמע מופעלת" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "טווח ראיה השתנה ל %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "טווח ראיה הגיע למקסימום: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "טווח ראיה הגיע למינימום: %d" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr "עוצמת שמע שונתה ל %d%%" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "" +msgstr "מסגרת שלדית מוצגת" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "זום גרגע מבוטל על-ידי המשחק או המוד" #: src/client/game.cpp msgid "ok" -msgstr "" +msgstr "אוקיי" #: src/client/gameui.cpp msgid "Chat hidden" -msgstr "" +msgstr "צ'אט מוסתר" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" +msgstr "צ'אט מוצג" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "מידע-על-מסך מוסתר" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "מידע-על-מסך מוצג" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "פרופיילר מוסתר" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "פרופיילר מוצג (עמוד %d מתוך %d)" #: src/client/keycode.cpp msgid "Apps" -msgstr "" +msgstr "אפליקציות" #: src/client/keycode.cpp msgid "Backspace" -msgstr "" +msgstr "Backspace" #: src/client/keycode.cpp msgid "Caps Lock" -msgstr "" +msgstr "Caps Lock" #: src/client/keycode.cpp msgid "Clear" -msgstr "" +msgstr "נקה" #: src/client/keycode.cpp msgid "Control" -msgstr "" +msgstr "קונטרול" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "למטה" #: src/client/keycode.cpp msgid "End" -msgstr "" +msgstr "End" #: src/client/keycode.cpp msgid "Erase EOF" -msgstr "" +msgstr "מחק EOF" #: src/client/keycode.cpp msgid "Execute" -msgstr "" +msgstr "בצע" #: src/client/keycode.cpp msgid "Help" -msgstr "" +msgstr "עזרה" #: src/client/keycode.cpp msgid "Home" -msgstr "" +msgstr "Home" #: src/client/keycode.cpp -#, fuzzy msgid "IME Accept" -msgstr "קבל" +msgstr "קבל IME" #: src/client/keycode.cpp msgid "IME Convert" -msgstr "" +msgstr "המרת IME" #: src/client/keycode.cpp msgid "IME Escape" -msgstr "" +msgstr "יציאת IME" #: src/client/keycode.cpp msgid "IME Mode Change" -msgstr "" +msgstr "שינוי מצב IME" #: src/client/keycode.cpp msgid "IME Nonconvert" -msgstr "" +msgstr "IME ללא המרה" #: src/client/keycode.cpp msgid "Insert" -msgstr "" +msgstr "Insert" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" @@ -1541,7 +1553,7 @@ msgstr "מקש Control השמאלי" #: src/client/keycode.cpp msgid "Left Menu" -msgstr "" +msgstr "תפריט שמאלי" #: src/client/keycode.cpp msgid "Left Shift" @@ -1554,91 +1566,91 @@ msgstr "מקש Windows השמאלי" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" -msgstr "" +msgstr "תפריט" #: src/client/keycode.cpp msgid "Middle Button" -msgstr "" +msgstr "כפתור אמצעי" #: src/client/keycode.cpp msgid "Num Lock" -msgstr "" +msgstr "נעילה נומרית" #: src/client/keycode.cpp msgid "Numpad *" -msgstr "" +msgstr "מקלדת נומרית *" #: src/client/keycode.cpp msgid "Numpad +" -msgstr "" +msgstr "מקלדת נומרית +" #: src/client/keycode.cpp msgid "Numpad -" -msgstr "" +msgstr "מקלדת נומרית -" #: src/client/keycode.cpp msgid "Numpad ." -msgstr "" +msgstr "מקלדת נומרית ." #: src/client/keycode.cpp msgid "Numpad /" -msgstr "" +msgstr "מקלדת נומרית /" #: src/client/keycode.cpp msgid "Numpad 0" -msgstr "" +msgstr "מקלדת נומרית 0" #: src/client/keycode.cpp msgid "Numpad 1" -msgstr "" +msgstr "מקלדת נומרית 1" #: src/client/keycode.cpp msgid "Numpad 2" -msgstr "" +msgstr "מקלדת נומרית 2" #: src/client/keycode.cpp msgid "Numpad 3" -msgstr "" +msgstr "מקלדת נומרית 3" #: src/client/keycode.cpp msgid "Numpad 4" -msgstr "" +msgstr "מקלדת נומרית 4" #: src/client/keycode.cpp msgid "Numpad 5" -msgstr "" +msgstr "מקלדת נומרית 5" #: src/client/keycode.cpp msgid "Numpad 6" -msgstr "" +msgstr "מקלדת נומרית 6" #: src/client/keycode.cpp msgid "Numpad 7" -msgstr "" +msgstr "מקלדת נומרית 7" #: src/client/keycode.cpp msgid "Numpad 8" -msgstr "" +msgstr "מקלדת נומרית 8" #: src/client/keycode.cpp msgid "Numpad 9" -msgstr "" +msgstr "מקלדת נומרית 9" #: src/client/keycode.cpp msgid "OEM Clear" -msgstr "" +msgstr "ניקוי OME" #: src/client/keycode.cpp msgid "Page down" -msgstr "" +msgstr "Page down" #: src/client/keycode.cpp msgid "Page up" -msgstr "" +msgstr "Page up" #: src/client/keycode.cpp msgid "Pause" -msgstr "" +msgstr "Pause" #: src/client/keycode.cpp msgid "Play" @@ -1647,11 +1659,11 @@ msgstr "שחק" #. ~ "Print screen" key #: src/client/keycode.cpp msgid "Print" -msgstr "" +msgstr "PrintScreen" #: src/client/keycode.cpp msgid "Return" -msgstr "" +msgstr "Enter" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Right" @@ -1667,7 +1679,7 @@ msgstr "מקש Control הימני" #: src/client/keycode.cpp msgid "Right Menu" -msgstr "" +msgstr "תפריט ימני" #: src/client/keycode.cpp msgid "Right Shift" @@ -1679,74 +1691,74 @@ msgstr "מקש Windows הימני" #: src/client/keycode.cpp msgid "Scroll Lock" -msgstr "" +msgstr "Scroll Lock" #. ~ Key name #: src/client/keycode.cpp msgid "Select" -msgstr "" +msgstr "Select" #: src/client/keycode.cpp msgid "Shift" -msgstr "" +msgstr "Shift" #: src/client/keycode.cpp msgid "Sleep" -msgstr "" +msgstr "שינה" #: src/client/keycode.cpp msgid "Snapshot" -msgstr "" +msgstr "צילום רגעי" #: src/client/keycode.cpp msgid "Space" -msgstr "" +msgstr "רווח" #: src/client/keycode.cpp msgid "Tab" -msgstr "" +msgstr "Tab" #: src/client/keycode.cpp msgid "Up" -msgstr "" +msgstr "למעלה" #: src/client/keycode.cpp msgid "X Button 1" -msgstr "" +msgstr "X כפתור 1" #: src/client/keycode.cpp msgid "X Button 2" -msgstr "" +msgstr "X כפתור 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" -msgstr "" +msgstr "זום" #: src/client/minimap.cpp msgid "Minimap hidden" -msgstr "" +msgstr "מפה קטנה מוסתרת" #: src/client/minimap.cpp #, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "" +msgstr "מפה קטנה במצב ראדר, זום x %d" #: src/client/minimap.cpp #, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "" +msgstr "מפה קטנה במצב שטח, זום x %d" #: src/client/minimap.cpp msgid "Minimap in texture mode" -msgstr "" +msgstr "מפה קטנה במצב טקסטורה" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "" +msgstr "סיסמאות לא תואמות!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "הרשם והצטרף" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1757,18 +1769,22 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" +"אתה עומד להצטרף לשרת זה עם השם \"%s\" בפעם הראשונה.\n" +"אם תמשיך, ייווצר חשבון חדש באמצעות אישוריך בשרת זה.\n" +"אנא הקלד מחדש את הסיסמה שלך ולחץ על 'הירשם והצטרף' כדי לאשר את יצירת החשבון, " +"או לחץ על 'ביטול' כדי לבטל." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" -msgstr "" +msgstr "להמשיך" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "" +msgstr "\"מיוחד\" = טפס למטה" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" -msgstr "" +msgstr "קדימה אוטומטי" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" @@ -1780,27 +1796,27 @@ msgstr "אחורה" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "" +msgstr "שנה מצלמה" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "" +msgstr "צ'אט" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" -msgstr "" +msgstr "פקודה" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" -msgstr "" +msgstr "קונסולה" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" -msgstr "" +msgstr "הקטן טווח" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" -msgstr "" +msgstr "הנמך ווליום" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" @@ -1808,7 +1824,7 @@ msgstr "לחיצה כפולה על \"קפיצה\" כדי לכבות או להד #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" -msgstr "" +msgstr "הפל" #: src/gui/guiKeyChangeMenu.cpp msgid "Forward" @@ -1816,15 +1832,15 @@ msgstr "קדימה" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" -msgstr "" +msgstr "הגדל טווח" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "" +msgstr "הגבר ווליום" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" -msgstr "" +msgstr "תיק חפצים" #: src/gui/guiKeyChangeMenu.cpp msgid "Jump" @@ -1832,113 +1848,113 @@ msgstr "קפיצה" #: src/gui/guiKeyChangeMenu.cpp msgid "Key already in use" -msgstr "" +msgstr "מקש כבר בשימוש" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" +msgstr "קישור מקשים (אם התפריט מתקלקל, הסר דברים מminetest.conf)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "" +msgstr "פקודה מקומית" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "" +msgstr "השתק" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" -msgstr "" +msgstr "הפריט הבא" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" -msgstr "" +msgstr "הפריט הקודם" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "" +msgstr "בחר טווח" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "" +msgstr "צילום מסך" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" -msgstr "" +msgstr "התכופף" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" +msgstr "מיוחד" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "" +msgstr "מתג מידע על מסך" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "" +msgstr "מתג צא'ט לוג" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "" +msgstr "מתג מצב מהיר" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "" +msgstr "מתג תעופה" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "" +msgstr "מתג ערפל" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "" +msgstr "מתג מפה קטנה" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" -msgstr "" +msgstr "מתג מעבר דרך קירות" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "" +msgstr "מתג תנועה לכיוון מבט" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "" +msgstr "לחץ מקש" #: src/gui/guiPasswordChange.cpp msgid "Change" -msgstr "" +msgstr "שנה" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "" +msgstr "אשר סיסמה" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "" +msgstr "סיסמה חדשה" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "" +msgstr "סיסמה ישנה" #: src/gui/guiVolumeChange.cpp msgid "Exit" -msgstr "" +msgstr "יציאה" #: src/gui/guiVolumeChange.cpp msgid "Muted" -msgstr "" +msgstr "מושתק" #: src/gui/guiVolumeChange.cpp msgid "Sound Volume: " -msgstr "" +msgstr "עוצמת שמע: " #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " -msgstr "" +msgstr "הכנס " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -1952,6 +1968,8 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android) מתקן את המיקום של הג'ויסטיק הווירטואלי.\n" +"אם מושבת, הג'ויסטיק הווירטואלי יעמוד במיקום המגע הראשון." #: src/settings_translation_file.cpp msgid "" @@ -1959,6 +1977,9 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" +"(Android) השתמש בג'ויסטיק וירטואלי כדי להפעיל את כפתור \"aux\".\n" +"אם הוא מופעל, הג'ויסטיק הווירטואלי ילחץ גם על כפתור \"aux\" כשהוא מחוץ למעגל " +"הראשי." #: src/settings_translation_file.cpp msgid "" @@ -1971,6 +1992,14 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X, Y, Z) היסט של פרקטל ממרכז עולמי ביחידות 'סקאלה'.\n" +"ניתן להשתמש בה כדי להעביר נקודה רצויה ל (0, 0) כדי ליצור\n" +"נקודת הופעה מתאימה, או כדי לאפשר 'התקרבות' לנקודה רצויה\n" +"על ידי הגדלת 'סקאלה'.\n" +"ברירת המחדל מכוונת לנקודת הופעה מתאימה למנדלברוט\n" +"קבוצות עם פרמטרי ברירת מחדל, יתכן שיהיה צורך לשנות זאת\n" +"מצבים.\n" +"טווח בערך -2 עד 2. הכפל באמצעות 'קנה מידה' עבור קיזוז בצמתים." #: src/settings_translation_file.cpp msgid "" @@ -1982,56 +2011,65 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" +"(X, Y, Z) סקאלה של פרקטל בצמתים.\n" +"גודל הפרקטל בפועל יהיה גדול פי 2 עד 3.\n" +"ניתן להפוך את המספרים הללו לגדולים מאוד, כך הפרקטל\n" +"לא צריך להשתלב בעולם.\n" +"הגדל את אלה ל\"התקרב \"לפרטי הפרקטל.\n" +"ברירת המחדל היא לצורה מעוכה אנכית המתאימה ל\n" +"אי, קבע את כל 3 המספרים שווים לצורה הגולמית." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "רעש דו-ממדי השולט על צורתם / גודל ההרים המחורצים." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "רעש דו-ממדי השולט על צורתם / גודל הגבעות המתונות." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "רעש דו-ממדי השולט על צורתם / גודל ההרים הנישאים." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "רעש דו-ממדי השולט על תדירות/ גודל רכסי ההרים." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "רעש דו-ממדי השולט על תדירות/גודל הגבעות המתונות." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "רעש דו-ממדי השולט על תדירות/גודל רכסי ההרים." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "רעש דו-ממדי שמאתר את עמקי הנהרות ותעלותיהם." #: src/settings_translation_file.cpp msgid "3D clouds" -msgstr "" +msgstr "עננים תלת מימדיים" #: src/settings_translation_file.cpp msgid "3D mode" -msgstr "" +msgstr "מצב תלת מימדי" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "חוזק פרלקסה במצב תלת ממדי" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "רעשי תלת מימד המגדירים מערות ענק." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"רעש תלת ממדי המגדיר את מבנה ההרים וגובהם.\n" +"מגדיר גם מבנה שטח הרים צפים." #: src/settings_translation_file.cpp msgid "" @@ -2040,22 +2078,27 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"רעש תלת ממדי מגדיר מבנה של שטחי צף.\n" +"אם משתנה מברירת המחדל, ייתכן ש\"סקאלת\" הרעש (0.7 כברירת מחדל) זקוקה\n" +"להיות מותאמת, מכיוון שההתפשטות של שטחי צף מתפקדת בצורה הטובה ביותר כאשר יש " +"לרעש זה\n" +"טווח ערכים של כ -2.0 עד 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "מבנה מגדיר רעש תלת ממדי של קירות קניון הנהר." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "רעש תלת ממדי המגדיר שטח." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgstr "רעש תלת ממדי להרים תלויים, צוקים וכו'בדרך כלל וריאציות קטנות." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "רעש תלת ממדי הקובע את מספר הצינוקים בנתח מפה." #: src/settings_translation_file.cpp msgid "" @@ -2070,56 +2113,68 @@ msgid "" "- pageflip: quadbuffer based 3d.\n" "Note that the interlaced mode requires shaders to be enabled." msgstr "" +"תמיכה בתלת מימד.\n" +"נתמך כרגע:\n" +"- ללא: אין פלט תלת-ממדי.\n" +"- אנאגליף: צבע ציאן / מגנטה 3d.\n" +"- interlaced: תמיכה במסך קיטוב מבוסס מוזר / שווה\n" +"- topbottom: מסך מפוצל למעלה / למטה.\n" +"- צדדי: פיצול מסך זה לצד זה.\n" +"- תצוגת רוחב: 3D עם עיניים צולבות\n" +"- pageflip: quadbuffer מבוסס 3d.\n" +"שים לב שמצב interlaced מחייב הפעלת shaders." #: src/settings_translation_file.cpp msgid "" "A chosen map seed for a new map, leave empty for random.\n" "Will be overridden when creating a new world in the main menu." msgstr "" +"זרע מפה שנבחר עבור מפה חדשה, השאר ריק לאקראי.\n" +"יבוטל בעת יצירת עולם חדש בתפריט הראשי." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." -msgstr "" +msgstr "הודעה שתוצג בפני כל הלקוחות כאשר השרת קורס." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" +msgstr "הודעה שתוצג בפני כל הלקוחות כאשר השרת יכבה." #: src/settings_translation_file.cpp msgid "ABM interval" -msgstr "" +msgstr "אינטרוול ABM" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "הקצאת זמן ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "" +msgstr "מגבלה מוחלטת של בלוקים בתור שיופיעו" #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "תאוצה באויר" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "האצת כוח הכבידה, בקוביות לשנייה בריבוע." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" -msgstr "" +msgstr "משניי בלוק פעיל" #: src/settings_translation_file.cpp msgid "Active block management interval" -msgstr "" +msgstr "אינטרוול ניהול בלוק פעיל" #: src/settings_translation_file.cpp msgid "Active block range" -msgstr "" +msgstr "טווח בלוק פעיל" #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "טווח שליחת אובייקט פעיל" #: src/settings_translation_file.cpp msgid "" @@ -2127,16 +2182,19 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"כתובת להתחברות אליה.\n" +"השאר את זה ריק כדי להפעיל שרת מקומי.\n" +"שים לב ששדה הכתובת בתפריט הראשי עוקף הגדרה זו." #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." -msgstr "" +msgstr "הוסף חלקיקים כשחופרים בקוביה." #: src/settings_translation_file.cpp msgid "" "Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " "screens." -msgstr "" +msgstr "התאם את תצורת dpi למסך שלך (לא X11 / Android בלבד) למשל. למסכי 4k." #: src/settings_translation_file.cpp #, c-format @@ -2147,10 +2205,15 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"מכוון את הצפיפות של שכבת אדמות צותף.\n" +"הגדל את הערך כדי להגדיל את הצפיפות. יכול להיות חיובי או שלילי.\n" +"ערך = 0.0: 50% מהנפח הוא שטח צף.\n" +"ערך = 2.0 (יכול להיות גבוה יותר בהתאם ל- 'mgv7_np_floatland', בדוק תמיד\n" +"כדי להיות בטוח) יוצר שכבת צף מוצקה." #: src/settings_translation_file.cpp msgid "Advanced" -msgstr "" +msgstr "מתקדם" #: src/settings_translation_file.cpp msgid "" @@ -2160,60 +2223,67 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" +"משנה את עקומת האור על ידי החלת 'תיקון גמא' עליה.\n" +"ערכים גבוהים הופכים את רמות האור האמצעיות והתחתונות לבהירות יותר.\n" +"הערך '1.0' משאיר את עקומת האור ללא שינוי.\n" +"יש לכך השפעה משמעותית רק על אור יום ומלאכותי\n" +"זה משפיע מעט מאוד על אור הלילה הטבעי." #: src/settings_translation_file.cpp msgid "Always fly and fast" -msgstr "" +msgstr "תמיד לעוף ומהר" #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" -msgstr "" +msgstr "גמא חסימה סביבתית" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "כמות ההודעות ששחקן עשוי לשלוח לכל 10 שניות." #: src/settings_translation_file.cpp msgid "Amplifies the valleys." -msgstr "" +msgstr "מגביר את העמקים." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" -msgstr "" +msgstr "פילטר אנטיסטרופי" #: src/settings_translation_file.cpp msgid "Announce server" -msgstr "" +msgstr "הכרזת שרת" #: src/settings_translation_file.cpp msgid "Announce to this serverlist." -msgstr "" +msgstr "הכרז לרשימת השרתים." #: src/settings_translation_file.cpp msgid "Append item name" -msgstr "" +msgstr "הוסף שם פריט" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." -msgstr "" +msgstr "הוסף את שם הפריט לטיפ הכלים." #: src/settings_translation_file.cpp msgid "Apple trees noise" -msgstr "" +msgstr "רעש עצי תפוחים" #: src/settings_translation_file.cpp msgid "Arm inertia" -msgstr "" +msgstr "אינרציה בזרוע" #: src/settings_translation_file.cpp msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" +"אינרציה בזרוע, נותנת תנועה מציאותית יותר של\n" +"הזרוע כשהמצלמה נעה." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" -msgstr "" +msgstr "שאל האם להתחבר מחדש לאחר קריסה" #: src/settings_translation_file.cpp msgid "" @@ -2229,26 +2299,34 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" +"במרחק זה השרת יעשה אופטימיזציה לאילו בלוקים נשלחים\n" +"ללקוחות.\n" +"ערכים קטנים עשויים לשפר ביצועים רבות, על חשבון גלוי\n" +"עיבוד תקלות (חלק מהבלוקים לא יועברו מתחת למים ובמערות,\n" +"כמו גם לפעמים ביבשה).\n" +"הגדרת ערך זה יותר מ- max_block_send_distance מבטלת זאת\n" +"אופטימיזציה.\n" +"מצוין במפה (16 קוביות)." #: src/settings_translation_file.cpp msgid "Automatic forward key" -msgstr "" +msgstr "מקש התקדמות אוטומטית" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "קפיצה אוטומטית של מכשולים בקוביה יחידה." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "" +msgstr "דווח אוטומטית לרשימת השרתים." #: src/settings_translation_file.cpp msgid "Autosave screen size" -msgstr "" +msgstr "שמור אוטומטית גודל מסך" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "" +msgstr "מצב סקאלה אוטומטית (Autoscale)" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2256,75 +2334,75 @@ msgstr "מקש התזוזה אחורה" #: src/settings_translation_file.cpp msgid "Base ground level" -msgstr "" +msgstr "מפלס בסיס האדמה" #: src/settings_translation_file.cpp msgid "Base terrain height." -msgstr "" +msgstr "גובה השטח." #: src/settings_translation_file.cpp msgid "Basic" -msgstr "" +msgstr "בסיסי" #: src/settings_translation_file.cpp msgid "Basic privileges" -msgstr "" +msgstr "הרשאות בסיסיות" #: src/settings_translation_file.cpp msgid "Beach noise" -msgstr "" +msgstr "רעש חופים" #: src/settings_translation_file.cpp msgid "Beach noise threshold" -msgstr "" +msgstr "סף רעש חופים" #: src/settings_translation_file.cpp msgid "Bilinear filtering" -msgstr "" +msgstr "סינון בילינארי" #: src/settings_translation_file.cpp msgid "Bind address" -msgstr "" +msgstr "הצמד כתובת" #: src/settings_translation_file.cpp msgid "Biome API temperature and humidity noise parameters" -msgstr "" +msgstr "פרמטרי רעש טמפרטורה ולחות של Biome API" #: src/settings_translation_file.cpp msgid "Biome noise" -msgstr "" +msgstr "רעש Biome" #: src/settings_translation_file.cpp msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" +msgstr "ביטים לפיקסל (עומק צבע) במצב מסך מלא." #: src/settings_translation_file.cpp msgid "Block send optimize distance" -msgstr "" +msgstr "אופטימיזצית שליחת בלוק" #: src/settings_translation_file.cpp msgid "Bold and italic font path" -msgstr "" +msgstr "נתיב גופן עבה/מוטה" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "" +msgstr "נתיב גופן עם מרווח אחיד עבה/מוטה" #: src/settings_translation_file.cpp msgid "Bold font path" -msgstr "" +msgstr "נתיב גופן עבה" #: src/settings_translation_file.cpp msgid "Bold monospace font path" -msgstr "" +msgstr "נתיב גופן מרווח אחיד" #: src/settings_translation_file.cpp msgid "Build inside player" -msgstr "" +msgstr "בנה בתוך שחקן" #: src/settings_translation_file.cpp msgid "Builtin" -msgstr "" +msgstr "בילדאין" #: src/settings_translation_file.cpp msgid "" @@ -2333,120 +2411,126 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"מרחק מצלמה 'קרוב לקיר' בקוביות, בין 0 ל -0.25\n" +"עובד רק בפלטפורמות GLES. רוב המשתמשים לא יצטרכו לשנות זאת.\n" +"הגדלה יכולה להפחית חפצים על גרפי GPU חלשים יותר.\n" +"0.1 = ברירת מחדל, 0.25 = ערך טוב לטאבלטים חלשים יותר." #: src/settings_translation_file.cpp msgid "Camera smoothing" -msgstr "" +msgstr "החלקת מצלמה" #: src/settings_translation_file.cpp msgid "Camera smoothing in cinematic mode" -msgstr "" +msgstr "החלקת מצלמה ומצב קולנועי" #: src/settings_translation_file.cpp msgid "Camera update toggle key" -msgstr "" +msgstr "מקש החלפת עדכון המצלמה" #: src/settings_translation_file.cpp msgid "Cave noise" -msgstr "" +msgstr "רעש מערות" #: src/settings_translation_file.cpp msgid "Cave noise #1" -msgstr "" +msgstr "רעש מערות #1" #: src/settings_translation_file.cpp msgid "Cave noise #2" -msgstr "" +msgstr "רעש מערות #2" #: src/settings_translation_file.cpp msgid "Cave width" -msgstr "" +msgstr "רוחב מערות" #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "" +msgstr "רעש מערה1" #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "" +msgstr "רעש מערה2" #: src/settings_translation_file.cpp msgid "Cavern limit" -msgstr "" +msgstr "גבול מנהרות" #: src/settings_translation_file.cpp msgid "Cavern noise" -msgstr "" +msgstr "רעש מנהרות" #: src/settings_translation_file.cpp msgid "Cavern taper" -msgstr "" +msgstr "מחדד מערות" #: src/settings_translation_file.cpp msgid "Cavern threshold" -msgstr "" +msgstr "סף מערות" #: src/settings_translation_file.cpp msgid "Cavern upper limit" -msgstr "" +msgstr "גבול עליון מערות" #: src/settings_translation_file.cpp msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"טווח דחיפה של מרכז עקומת אור.\n" +"כאשר 0.0 הוא רמת אור מינימלית, 1.0 הוא רמת אור מקסימלית." #: src/settings_translation_file.cpp msgid "Chat font size" -msgstr "" +msgstr "גודל גופן צ'אט" #: src/settings_translation_file.cpp msgid "Chat key" -msgstr "" +msgstr "מקש צ'אט" #: src/settings_translation_file.cpp msgid "Chat log level" -msgstr "" +msgstr "רמת לוג צ'אט" #: src/settings_translation_file.cpp msgid "Chat message count limit" -msgstr "" +msgstr "הגבלת מספר הודעות צ'אט" #: src/settings_translation_file.cpp msgid "Chat message format" -msgstr "" +msgstr "פורמט הודעות צ'אט" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" -msgstr "" +msgstr "סף בעיטה להודעות צ'אט" #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "" +msgstr "אורך הודעת צ'אט מקסימלי" #: src/settings_translation_file.cpp msgid "Chat toggle key" -msgstr "" +msgstr "מתג הפעלת צ'אט" #: src/settings_translation_file.cpp msgid "Chatcommands" -msgstr "" +msgstr "פקודות צ'אט" #: src/settings_translation_file.cpp msgid "Chunk size" -msgstr "" +msgstr "גודל חתיכה" #: src/settings_translation_file.cpp msgid "Cinematic mode" -msgstr "" +msgstr "מצב קולנועי" #: src/settings_translation_file.cpp msgid "Cinematic mode key" -msgstr "" +msgstr "מקש מצב קולנועי" #: src/settings_translation_file.cpp msgid "Clean transparent textures" -msgstr "" +msgstr "טקסטורות נקיות ושקופות" #: src/settings_translation_file.cpp msgid "Client" @@ -2454,7 +2538,7 @@ msgstr "לקוח" #: src/settings_translation_file.cpp msgid "Client and Server" -msgstr "" +msgstr "שרת ולקוח" #: src/settings_translation_file.cpp #, fuzzy @@ -4913,7 +4997,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Mipmapping" -msgstr "" +msgstr "מיפמאפינג" #: src/settings_translation_file.cpp msgid "Mod channels" From 9de982dcaebee9a36b167722971323825b8da925 Mon Sep 17 00:00:00 2001 From: Michalis Date: Mon, 8 Feb 2021 16:27:14 +0000 Subject: [PATCH 553/624] Translated using Weblate (Greek) Currently translated at 1.6% (22 of 1353 strings) --- po/el/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/el/minetest.po b/po/el/minetest.po index c9a8fa9d7..b3e5aac95 100644 --- a/po/el/minetest.po +++ b/po/el/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Greek (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-11-10 14:28+0000\n" -"Last-Translator: sfan5 \n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Michalis \n" "Language-Team: Greek \n" "Language: el\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -75,7 +75,7 @@ msgstr "Υποστηρίζουμε τις εκδόσεις πρωτοκόλλω #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "Ματαίωση" +msgstr "Άκυρο" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/tab_content.lua From c1ae72de84b2ee5b9b0e16fcad051ed04cd496d2 Mon Sep 17 00:00:00 2001 From: Marian Date: Thu, 11 Feb 2021 09:04:40 +0000 Subject: [PATCH 554/624] Translated using Weblate (Slovak) Currently translated at 100.0% (1353 of 1353 strings) --- po/sk/minetest.po | 169 ++++++++++++++++++++++++---------------------- 1 file changed, 87 insertions(+), 82 deletions(-) diff --git a/po/sk/minetest.po b/po/sk/minetest.po index 3c4009c00..2ef303320 100644 --- a/po/sk/minetest.po +++ b/po/sk/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-11-17 08:28+0000\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" "Last-Translator: Marian \n" "Language-Team: Slovak \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -158,52 +158,51 @@ msgstr "aktívne" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" už exituje. Chcel by si ho prepísať?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "Závislosti $1 a $2 budú nainštalované." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 od $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 sťahujem,\n" +"$2 čaká v rade" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Sťahujem..." +msgstr "$1 sťahujem..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 požadované závislosti nie je možné nájsť." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 bude nainštalovaný, a $2 závislosti budú preskočené." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Všetky balíčky" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Klávesa sa už používa" +msgstr "Už je nainštalované" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Naspäť do hlavného menu" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Hosťuj hru" +msgstr "Základná hra:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -227,14 +226,12 @@ msgid "Install" msgstr "Inštaluj" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Inštaluj" +msgstr "Inštaluj $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Voliteľné závislosti:" +msgstr "Nainštaluj chýbajúce závislosti" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -250,26 +247,24 @@ msgid "No results" msgstr "Bez výsledku" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Aktualizuj" +msgstr "Bez aktualizácií" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Stíš hlasitosť" +msgstr "Nenájdené" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Prepíš" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Prosím skontroluj či je základná hra v poriadku." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "Čaká v rade" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -285,11 +280,11 @@ msgstr "Aktualizuj" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Aktualizuj všetky [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Pozri si viac informácií vo webovom prehliadači" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -773,15 +768,16 @@ msgid "Credits" msgstr "Poďakovanie" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Zvoľ adresár" +msgstr "Otvor adresár s užívateľskými dátami" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Otvor adresár, ktorý obsahuje svety, hry, mody a textúry\n" +"od užívateľov v správcovi/prieskumníkovi súborov." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -821,7 +817,7 @@ msgstr "Inštaluj hry z ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Meno" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -832,9 +828,8 @@ msgid "No world created or selected!" msgstr "Nie je vytvorený ani zvolený svet!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Staré heslo" +msgstr "Heslo" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -845,9 +840,8 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Zvoľ si svet:" +msgstr "Zvoľ mody" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -999,9 +993,8 @@ msgid "Shaders" msgstr "Shadery" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Lietajúce krajiny (experimentálne)" +msgstr "Shadery (experimentálne)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1201,7 +1194,7 @@ msgid "Continue" msgstr "Pokračuj" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1224,12 +1217,12 @@ msgstr "" "- %s: pohyb doľava\n" "- %s: pohyb doprava\n" "- %s: skoč/vylez\n" +"- %s: kop/udri\n" +"- %s: polož/použi\n" "- %s: zakrádaj sa/choď dole\n" -"- %s: polož vec\n" +"- %s: odhoď vec\n" "- %s: inventár\n" "- Myš: otoč sa/obzeraj sa\n" -"- Myš, ľavé tlačítko: kopaj/udri\n" -"- Myš, pravé tlačítko: polož/použi\n" "- Myš koliesko: zvoľ si vec\n" "- %s: komunikácia\n" @@ -1759,19 +1752,18 @@ msgid "Minimap hidden" msgstr "Minimapa je skrytá" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Minimapa v radarovom režime, priblíženie x1" +msgstr "Minimapa v radarovom režime, priblíženie x%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Minimapa v povrchovom režime, priblíženie x1" +msgstr "Minimapa v povrchovom režime, priblíženie x%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Minimálna veľkosť textúry" +msgstr "Minimapa v móde textúry" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -2171,7 +2163,7 @@ msgstr "ABM interval" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "Vyhradená doba ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2674,7 +2666,7 @@ msgstr "Čierna listina príznakov z ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "ContentDB Maximum súbežných sťahovaní" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2742,11 +2734,12 @@ msgid "Crosshair alpha" msgstr "Priehľadnosť zameriavača" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Priehľadnosť zameriavača (nepriehľadnosť, medzi 0 a 255)." +msgstr "" +"Priehľadnosť zameriavača (nepriehľadnosť, medzi 0 a 255).\n" +"Tiež nastavuje farbu objektu zameriavača" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2757,6 +2750,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Farba zameriavača (R,G,B).\n" +"Nastavuje farbu objektu zameriavača" #: src/settings_translation_file.cpp msgid "DPI" @@ -2937,9 +2932,8 @@ msgid "Desynchronize block animation" msgstr "Nesynchronizuj animáciu blokov" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Tlačidlo Vpravo" +msgstr "Tlačidlo Kopanie" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3161,9 +3155,8 @@ msgstr "" "rovnejšími nížinami, vhodné ako pevná základná vrstva lietajúcej pevniny." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "Maximálne FPS, ak je hra pozastavená." +msgstr "FPS ak je hra nezameraná, alebo pozastavená" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3554,7 +3547,6 @@ msgid "HUD toggle key" msgstr "Tlačidlo Prepínanie HUD" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" @@ -3562,9 +3554,8 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Spracovanie zastaralých Lua API volaní:\n" -"- legacy: (skús to) napodobni staré správanie (štandard pre release).\n" -"- log: napodobni log backtrace zastaralého volania (štandard pre " -"debug).\n" +"- none: Zastarané funkcie neukladaj do logu\n" +"- log: napodobni log backtrace zastaralého volania (štandardne).\n" "- error: preruš spracovanie zastaralého volania (odporúčané pre vývojárov " "rozšírení)." @@ -4086,9 +4077,8 @@ msgid "Joystick button repetition interval" msgstr "Interval opakovania tlačidla joysticku" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "Typ joysticku" +msgstr "Mŕtva zóna joysticku" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4193,13 +4183,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tlačidlo pre skákanie.\n" +"Tlačidlo pre kopanie.\n" "Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4346,13 +4335,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tlačidlo pre skákanie.\n" +"Tlačidlo pre pokladanie.\n" "Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5124,11 +5112,11 @@ msgstr "Všetky tekutiny budú nepriehľadné" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Úroveň kompresie mapy pre diskové úložisko" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Úroveň kompresie mapy pre sieťový prenos" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5313,9 +5301,8 @@ msgid "Maximum FPS" msgstr "Maximálne FPS" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "Maximálne FPS, ak je hra pozastavená." +msgstr "Maximálne FPS, ak je hra nie je v aktuálnom okne, alebo je pozastavená." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5379,6 +5366,9 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"Maximálny počet súčasných sťahovaní. Sťahovania presahujúce tento limit budú " +"čakať v rade.\n" +"Mal by byť nižší ako curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5786,14 +5776,12 @@ msgid "Pitch move mode" msgstr "Režim pohybu podľa sklonu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "Tlačidlo Lietanie" +msgstr "Tlačidlo na pokladanie" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "Interval opakovania pravého kliknutia" +msgstr "Interval opakovania pokladania" #: src/settings_translation_file.cpp msgid "" @@ -6273,12 +6261,11 @@ msgid "Show entity selection boxes" msgstr "Zobraz obrys bytosti" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"Nastav jazyk. Ponechaj prázdne pre systémové nastavenie.\n" +"Zobraz obrysy bytosti\n" "Po zmene je požadovaný reštart." #: src/settings_translation_file.cpp @@ -6555,9 +6542,8 @@ msgid "The URL for the content repository" msgstr "Webová adresa (URL) k úložisku doplnkov" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" -msgstr "Identifikátor joysticku na použitie" +msgstr "Mŕtva zóna joysticku" #: src/settings_translation_file.cpp msgid "" @@ -6631,7 +6617,6 @@ msgstr "" "Malo by to byť konfigurované spolu s active_object_send_range_blocks." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6642,10 +6627,10 @@ msgid "" msgstr "" "Renderovací back-end pre Irrlicht.\n" "Po zmene je vyžadovaný reštart.\n" -"Poznámka: Na Androidw, ak si nie si istý, ponechaj OGLES1! Aplikácia by " +"Poznámka: Na Androide, ak si nie si istý, ponechaj OGLES1! Aplikácia by " "nemusela naštartovať.\n" -"Na iných platformách, sa odporúča OpenGL, a je to aktuálne jediný ovládač\n" -"s podporou shaderov." +"Na iných platformách, sa odporúča OpenGL.\n" +"Shadery sú podporované v OpenGL (len pre desktop) a v OGLES2 (experimentálne)" #: src/settings_translation_file.cpp msgid "" @@ -6682,6 +6667,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"Vyhradená doba pre ABM na vykonanie v každom kroku\n" +"(ako zlomok ABM imtervalu)" #: src/settings_translation_file.cpp msgid "" @@ -6692,13 +6679,12 @@ msgstr "" "pri stlačenej kombinácií tlačidiel na joysticku." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." msgstr "" -"Čas v sekundách pre zopakovanie pravého kliknutia v prípade\n" -"držania pravého tlačítka myši." +"Čas v sekundách pre opakované položenie kocky\n" +"ak je držané tlačítko pokladania." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6862,6 +6848,13 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"Použi multi-sample antialiasing (MSAA) pre zjemnenie hrán blokov.\n" +"Tento algoritmus zjemní 3D vzhľad zatiaľ čo zachová ostrosť obrazu,\n" +"ale neovplyvní vnútro textúr\n" +"(čo je obzvlášť viditeľné pri priesvitných textúrach).\n" +"Ak sú shadery zakázané, objavia sa viditeľné medzery medzi kockami.\n" +"Ak sú nastavené na 0, MSAA je zakázané.\n" +"Po zmene tohto nastavenia je požadovaný reštart." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -7253,6 +7246,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Úroveň kompresie ZLib používaný pri ukladaní blokov mapy na disk.\n" +"-1 - predvolená úroveň kompresie Zlib\n" +"0 - bez kompresie, najrýchlejšie\n" +"9 - najlepšia kompresia, najpomalšie\n" +"(pre úrovne 1-3 používa Zlib \"rýchlu\" metódu, pre 4-9 používa normálnu " +"metódu)" #: src/settings_translation_file.cpp msgid "" @@ -7262,6 +7261,12 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Úroveň kompresie ZLib používaný pri posielaní blokov mapy klientom.\n" +"-1 - predvolená úroveň kompresie Zlib\n" +"0 - bez kompresie, najrýchlejšie\n" +"9 - najlepšia kompresia, najpomalšie\n" +"(pre úrovne 1-3 používa Zlib \"rýchlu\" metódu, pre 4-9 používa normálnu " +"metódu)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From 308a3fc8f4901c5ef4c5fa8421744cb6a2ba99d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Egil=20Hoftun=20Kv=C3=A6stad?= Date: Thu, 18 Feb 2021 18:57:23 +0000 Subject: [PATCH 555/624] Translated using Weblate (Norwegian Nynorsk) Currently translated at 32.8% (445 of 1353 strings) --- po/nn/minetest.po | 371 ++++++++++++++++++++++++---------------------- 1 file changed, 191 insertions(+), 180 deletions(-) diff --git a/po/nn/minetest.po b/po/nn/minetest.po index 2968d5a1a..fdcc975b2 100644 --- a/po/nn/minetest.po +++ b/po/nn/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Norwegian Nynorsk (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-01-10 01:32+0000\n" -"Last-Translator: Allan Nordhøy \n" +"PO-Revision-Date: 2021-02-20 05:50+0000\n" +"Last-Translator: Tor Egil Hoftun Kvæstad \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,12 +24,11 @@ msgstr "Du døydde" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Ein feil har skjedd med eit Lua manus, slik som ein mod:" +msgstr "Ein feil oppstod i eit LUA-skript:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -41,11 +40,11 @@ msgstr "Hovudmeny" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "Kople attende sambandet" +msgstr "Kople til igjen" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "Tenarmaskinen ber om å få forbindelsen attende:" +msgstr "Tenaren har førespurt å kople til igjen:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " @@ -53,19 +52,19 @@ msgstr "Protkoll versjon bommert. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "Tenarmaskinen krevjar protokoll versjon $1. " +msgstr "Tenaren krev protokoll versjon $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "Tenarmaskinen støttar protokoll versjonar mellom $1 og $2. " +msgstr "Tenaren støtter protokollversjonar mellom $1 og $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "Vi støttar berre protokoll versjon $1." +msgstr "Me støtter berre protokoll versjon $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "Vi støttar protokoll versjonar mellom $1 og $2." +msgstr "Me støtter protokollversjonar mellom $1 og $2." #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_create_world.lua @@ -85,62 +84,59 @@ msgstr "Avhengigheiter:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "Deaktiver allt" +msgstr "Deaktiver alt" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Deaktivere modifikasjons-pakka" +msgstr "Deaktiver modifikasjonspakken" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "Aktiver allt" +msgstr "Aktiver alt" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Aktiver modifikasjons-pakka" +msgstr "Aktiver modifikasjonspakken" #: builtin/mainmenu/dlg_config_world.lua msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"Fåfengt å aktivere modifikasjon \"$1\" sia den innehald ugyldige teikn. " -"Berre teikna [a-z0-9_] e tillaten." +"Klarte ikkje å aktivere modifikasjon «$1», då den inneheld ugyldige teikn. " +"Berre teikna [a-z0-9_] er tillatne." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Finn fleire modifikasjonar" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" msgstr "Modifikasjon:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Valgbare avhengigheiter:" +msgstr "Ingen (valfrie) avhengigheiter" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Ikkje nokon spill skildring e sørgja for." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Ikkje nokon avhengigheiter." +msgstr "Ingen obligatoriske avhengigheiter" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Ikkje noko modifikasjons-pakke skildring e sørgja for." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Valgbare avhengigheiter:" +msgstr "Ingen valfrie avhengigheiter" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "Valgbare avhengigheiter:" +msgstr "Valfrie avhengigheiter:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp @@ -149,19 +145,19 @@ msgstr "Lagre" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "Verda:" +msgstr "Verd:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "Aktivert" +msgstr "aktivert" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "«$1» eksisterer allereie. Vil du overskrive den?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "$1 og $2 avhengigheiter vil verte installerte." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" @@ -174,39 +170,36 @@ msgid "" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Laster ned..." +msgstr "$1 lastar ned …" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 obligatoriske avhengigheiter vart ikkje funne." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 vil verte installert, og $2 avhengigheiter vil verte hoppa over." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Alle pakker" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Knapp er allereie i bruk" +msgstr "Allereie installert" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Attende til hovudmeny" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Bli husvert" +msgstr "Basisspel:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB er ikkje tilgjengeleg når Minetest vart kompilert utan cURL" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -215,7 +208,7 @@ msgstr "Laster ned..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "Fåfengt å laste ned $1" +msgstr "Klarte ikkje å laste ned $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -227,44 +220,41 @@ msgid "Install" msgstr "Installer" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Installer" +msgstr "Installer $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Valgbare avhengigheiter:" +msgstr "Installer manglande avhengigheiter" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "Modder" +msgstr "Modifikasjonar" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "Ikkje nokon pakkar kunne bli henta" +msgstr "Ingen pakkar kunne verte henta" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "Ikkje noko resultat" +msgstr "Ingen resultat" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Oppdater" +msgstr "Ingen oppdateringar" #: builtin/mainmenu/dlg_contentstore.lua msgid "Not found" -msgstr "" +msgstr "Ikkje funnen" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Overskriv" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Ver venleg å sjekke at basisspelet er korrekt." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" @@ -284,19 +274,19 @@ msgstr "Oppdater" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Oppdater alt [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Sjå meir informasjon i ein nettlesar" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "Ein verd med namnet \"$1\" finns allereie" +msgstr "Ein verd med namnet «$1» eksisterer allereie" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Ytterlegare terreng" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -312,11 +302,11 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Biom" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "Holer" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -328,17 +318,16 @@ msgid "Create" msgstr "Skap" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informasjon:" +msgstr "Dekorasjonar" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "Last ned eit spel, sånn som Minetest spellet, ifrå minetest.net" +msgstr "Last ned eit spel, slik som Minetest-spelet, frå minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "Last eit ned på minetest.net" +msgstr "Last ned eit frå minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" @@ -346,15 +335,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Flatt terreng" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Svevande landmassar på himmelen" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Flyteland (eksperimentell)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -362,11 +351,11 @@ msgstr "Spel" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Generer ikkjefraktalterreng: Hav og undergrunn" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Haugar" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -374,15 +363,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Aukar fuktigheita rundt elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Sjøar" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Låg fuktigheit og høg temperatur fører til grunne eller tørre elver" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -398,15 +387,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Fjell" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Leireflyt" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Nettverk av tunellar og holer" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -422,11 +411,11 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "Elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Elver på havnivå" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -449,15 +438,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Temperert, Ørken" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Temperert, Ørken, Jungel" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Temperert, Ørken, Jungel, Tundra, Taiga" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" @@ -465,15 +454,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Tre og jungelgras" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Varier elvedjupne" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Svært store holer djupt i undergrunnen" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -490,7 +479,7 @@ msgstr "Du har ikkje installert noko spel." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "Er du sikker på at du har lyst til å slette \"$1\"?" +msgstr "Er du sikker på at du vil slette «$1»?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua @@ -500,23 +489,23 @@ msgstr "Slett" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "pkgmgr: sletting av \"$1\" gjekk ikkje" +msgstr "pkgmgr: klarte ikkje å slette «$1»" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "pkgmgr: ugyldig rute \"$1\"" +msgstr "pkgmgr: ugyldig sti «$1»" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "Slett verd \"$1\"?" +msgstr "Slett verd «$1»?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "Akseptér" +msgstr "Aksepter" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "Omdøp Modpakka:" +msgstr "Døyp om modifikasjonspakken:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -532,11 +521,11 @@ msgstr "(Ikkje nokon skildring gjeven)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" -msgstr "To-dimensjonal lyd" +msgstr "2D-støy" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "< Attende til innstillingar" +msgstr "< Tilbake til innstillingssida" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" @@ -592,11 +581,11 @@ msgstr "Søk" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "Velje ein mappe" +msgstr "Vel katalog" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select file" -msgstr "Velje eit dokument" +msgstr "Vel fil" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" @@ -604,11 +593,11 @@ msgstr "Vis tekniske namn" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." -msgstr "Verdien må i det minste være $1." +msgstr "Verdien må minst vere $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must not be larger than $1." -msgstr "Verdien må ikkje være høgare enn $1." +msgstr "Verdien må ikkje vere større enn $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" @@ -647,7 +636,7 @@ msgstr "Absolutt verdi" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "Standard" +msgstr "standardar" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -663,35 +652,37 @@ msgstr "$1 (Aktivert)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" -msgstr "$1 modder" +msgstr "$1 modifikasjonar" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "Funka ikkje å installere $1 til $2" +msgstr "Klarte ikkje å installere $1 til $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" -"Installer modifikasjon: Funka ikkje å finne eit ekte modifikasjons namn for: " -"$1" +"Installer modifikasjon: Klarte ikkje å finne det reelle modifikasjonsnamnet " +"for: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Installer Modifikasjon: Funka ikkje å finne ein passande for modpakke $1" +"Installer modifikasjon: Klarte ikkje å finne ein passande katalog for " +"modifikasjonspakke $1" #: builtin/mainmenu/pkgmgr.lua +#, fuzzy msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" "Installer: Ikkje-støtta dokument type \"$1\" eller så funker ikkje arkivet" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "Installer: dokument: \"$1\"" +msgstr "Installer: fil: «$1»" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "Funka ikkje å finne ein gyldig modifikasjon eller mod-pakke" +msgstr "Klarte ikkje å finne ein gyldig modifikasjon eller modifikasjonspakke" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -711,9 +702,10 @@ msgstr "Funka ikkje å installere mod-pakka som ein $1" #: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp msgid "Loading..." -msgstr "Laster ned..." +msgstr "Lastar …" #: builtin/mainmenu/serverlistmgr.lua +#, fuzzy msgid "Try reenabling public serverlist and check your internet connection." msgstr "" "Forsøkje å kople attende den offentlege tenarmaskin-lista og sjekk sambands " @@ -729,7 +721,7 @@ msgstr "Innhald" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" -msgstr "Deaktivér tekstur pakke" +msgstr "Deaktiver teksturpakke" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -737,15 +729,15 @@ msgstr "Informasjon:" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" -msgstr "Installer pakker:" +msgstr "Installerte pakker:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." -msgstr "Ikkje nokon avhengigheiter." +msgstr "Ingen avhengigheiter." #: builtin/mainmenu/tab_content.lua msgid "No package description available" -msgstr "Ikkje nokon pakke skildring tilgjengelig" +msgstr "Inga pakkeskildring tilgjengeleg" #: builtin/mainmenu/tab_content.lua msgid "Rename" @@ -757,15 +749,15 @@ msgstr "Avinstallér pakka" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" -msgstr "Bruk tekstur pakke" +msgstr "Bruk teksturpakke" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" -msgstr "Aktive bidragere" +msgstr "Aktive bidragsytarar" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "Kjerne-utviklere" +msgstr "Kjerne-utviklarar" #: builtin/mainmenu/tab_credits.lua msgid "Credits" @@ -784,11 +776,11 @@ msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" -msgstr "Førre bidragere" +msgstr "Tidlegare bidragsytarar" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "Førre kjerne-utviklere" +msgstr "Tidlegare kjerne-utviklarar" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" @@ -807,20 +799,22 @@ msgid "Enable Damage" msgstr "Aktivér skading" #: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Host Game" msgstr "Bli husvert" #: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Host Server" msgstr "Bli tenarmaskin's vert" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Installer spel frå ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Namn" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -828,12 +822,11 @@ msgstr "Ny" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" -msgstr "Ikkje noko verd skapt eller valgt!" +msgstr "Inga verd skapt eller valt!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Nytt passord" +msgstr "Passord" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -844,9 +837,8 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Vel verd:" +msgstr "Vel modifikasjonar" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -854,7 +846,7 @@ msgstr "Vel verd:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" -msgstr "Tenarmaskin port" +msgstr "Tenarport" #: builtin/mainmenu/tab_local.lua msgid "Start Game" @@ -862,7 +854,7 @@ msgstr "Start spel" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "Stad/port" +msgstr "Adresse / port" #: builtin/mainmenu/tab_online.lua msgid "Connect" @@ -926,6 +918,7 @@ msgid "Antialiasing:" msgstr "Kantutjemning:" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Autosave Screen Size" msgstr "Automatisk sjerm størrelse" @@ -962,10 +955,12 @@ msgid "No Mipmap" msgstr "Ingen Mipkart" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Node Highlighting" msgstr "Knute-fremheving" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Node Outlining" msgstr "Knute-utlinjing" @@ -983,17 +978,18 @@ msgstr "Ugjennomsiktig vatn" #: builtin/mainmenu/tab_settings.lua msgid "Particles" -msgstr "Partikkler" +msgstr "Partiklar" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "Sjerm:" +msgstr "Skjerm:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" msgstr "Innstillingar" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +#, fuzzy msgid "Shaders" msgstr "Dybdeskaper" @@ -1003,6 +999,7 @@ msgid "Shaders (experimental)" msgstr "Dybdeskaper (ikkje tilgjengelig)" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Shaders (unavailable)" msgstr "Dybdeskaper (ikkje tilgjengelig)" @@ -1019,10 +1016,12 @@ msgid "Texturing:" msgstr "Teksturering:" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "To enable shaders the OpenGL driver needs to be used." msgstr "For å aktivere skumrings-effekt så må OpenGL driveren være i bruk." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +#, fuzzy msgid "Tone Mapping" msgstr "Tone kartlegging" @@ -1035,6 +1034,7 @@ msgid "Trilinear Filter" msgstr "Tri-lineær filtréring" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Waving Leaves" msgstr "Raslende lauv" @@ -1044,6 +1044,7 @@ msgid "Waving Liquids" msgstr "Raslende lauv" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Waving Plants" msgstr "Raslende planter" @@ -1061,23 +1062,24 @@ msgstr "Førebur noder" #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "Førebur node..." +msgstr "Førebur nodar …" #: src/client/client.cpp msgid "Loading textures..." -msgstr "Lastar teksturar..." +msgstr "Lastar teksturar …" #: src/client/client.cpp +#, fuzzy msgid "Rebuilding shaders..." msgstr "Gjennbygger dybdeskaper..." #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" -msgstr "Kopling gikk galen (Tidsavbrott?)" +msgstr "Tilkoplingsfeil (Tidsavbrot?)" #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" -msgstr "Kunne ikkje finne eller ha i gang spelet \"" +msgstr "Kunne ikkje finne eller laste spelet \"" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." @@ -1088,8 +1090,9 @@ msgid "Main Menu" msgstr "Hovudmeny" #: src/client/clientlauncher.cpp +#, fuzzy msgid "No world selected and no address provided. Nothing to do." -msgstr "Ingen verd valgt og ikkje nokon adresse valg. Ikkje noko å gjere." +msgstr "Inga verd er vald og ikkje nokon adresse valg. Ikkje noko å gjere." #: src/client/clientlauncher.cpp msgid "Player name too long." @@ -1097,13 +1100,15 @@ msgstr "Spelarnamn for langt." #: src/client/clientlauncher.cpp msgid "Please choose a name!" -msgstr "Ver vennleg og velje eit anna namn!" +msgstr "Ver venleg å velje eit namn!" #: src/client/clientlauncher.cpp +#, fuzzy msgid "Provided password file failed to open: " msgstr "Passord dokumentet du ga går ikkje an å åpne: " #: src/client/clientlauncher.cpp +#, fuzzy msgid "Provided world path doesn't exist: " msgstr "Verds-ruta du ga finnes ikkje: " @@ -1132,6 +1137,7 @@ msgid "- Address: " msgstr "- Adresse: " #: src/client/game.cpp +#, fuzzy msgid "- Creative Mode: " msgstr "- Gude løyving: " @@ -1158,7 +1164,7 @@ msgstr "- Spelar mot spelar (PvP): " #: src/client/game.cpp msgid "- Server Name: " -msgstr "- Tenarmaskin namn: " +msgstr "- Tenarnamn: " #: src/client/game.cpp msgid "Automatic forward disabled" @@ -1198,10 +1204,10 @@ msgstr "Kopler til tenarmaskin..." #: src/client/game.cpp msgid "Continue" -msgstr "Fortsetja" +msgstr "Fortset" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1219,19 +1225,19 @@ msgid "" "- %s: chat\n" msgstr "" "Styring:\n" -"- %s: Framsteg\n" -"- %s: Baksteg\n" -"- %s: Sidesteg mot venstre\n" -"- %s: Sidesteg mot høyre\n" -"- %s: hopp/klatre\n" -"- %s: snike seg rundt/bøye seg\n" -"- %s: slipp gjennstand\n" +"- %s: gå framover\n" +"- %s: gå bakover\n" +"- %s: gå mot venstre\n" +"- %s: gå mot høgre\n" +"- %s: hopp/klatre opp\n" +"- %s: grav/slå\n" +"- %s: plasser/nytt\n" +"- %s: snik/klatre ned\n" +"- %s: slepp ting\n" "- %s: inventar\n" -"- Datamus: snu seg/sjå rundt\n" -"- Datamus, venstre klikk: grave/slå\n" -"- Datamus, høgre klikk: plassér/bruk\n" -"- Datamus, skrolle-hjul: select item\n" -"- %s: skravlerør\n" +"- Mus: snu deg/sjå\n" +"- Musehjul: vel ting\n" +"- %s: nettprat\n" #: src/client/game.cpp msgid "Creating client..." @@ -1424,7 +1430,7 @@ msgstr "Lyd e dempa" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Lydsystemet er slått av" #: src/client/game.cpp msgid "Sound system is not supported on this build" @@ -1759,14 +1765,14 @@ msgid "Minimap hidden" msgstr "Minikart er gøymt" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Minikart i radar modus, Zoom x1" +msgstr "Minikart i radarmodus, Zoom x%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Minikart i overflate modus, Zoom x1" +msgstr "Minikart i overflatemodus, Zoom x%d" #: src/client/minimap.cpp #, fuzzy @@ -2054,11 +2060,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D clouds" -msgstr "" +msgstr "3D-skyer" #: src/settings_translation_file.cpp msgid "3D mode" -msgstr "" +msgstr "3D-modus" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" @@ -2066,13 +2072,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "3D-støy som definerer gigantiske holer." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"3D-støy som definerer fjellstruktur og -høgde.\n" +"Definerer og strukturen på fjellterreng for flyteland." #: src/settings_translation_file.cpp msgid "" @@ -2088,7 +2096,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "3D-støy som definerer terreng." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." @@ -2120,11 +2128,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." -msgstr "" +msgstr "Ein beskjed som skal visast til alle klientane når tenaren kræsjar." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." msgstr "" +"Ein beskjed som skal visast til alle klientane når tenaren vert slått av." #: src/settings_translation_file.cpp msgid "ABM interval" @@ -2140,11 +2149,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "Akselerasjon i luft" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Gravitasjonsakselerasjon, i nodar per sekund per sekund." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2191,7 +2200,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Advanced" -msgstr "" +msgstr "Avansert" #: src/settings_translation_file.cpp msgid "" @@ -2212,11 +2221,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "Antal meldingar ein spelar kan sende per 10 sekund." #: src/settings_translation_file.cpp msgid "Amplifies the valleys." -msgstr "" +msgstr "Forsterkar dalane." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" @@ -2281,7 +2290,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "" +msgstr "Rapporter automatisk til tenarlista." #: src/settings_translation_file.cpp msgid "Autosave screen size" @@ -2289,7 +2298,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "" +msgstr "Autoskaleringsmodus" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2305,11 +2314,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Basic" -msgstr "" +msgstr "Basis" #: src/settings_translation_file.cpp msgid "Basic privileges" -msgstr "" +msgstr "Basisprivilegium" #: src/settings_translation_file.cpp msgid "Beach noise" @@ -2365,7 +2374,7 @@ msgstr "Bygg intern spelar" #: src/settings_translation_file.cpp msgid "Builtin" -msgstr "" +msgstr "Innebygd" #: src/settings_translation_file.cpp msgid "" @@ -2439,11 +2448,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Chat font size" -msgstr "" +msgstr "Tekststørrelse for nettprat" #: src/settings_translation_file.cpp msgid "Chat key" -msgstr "" +msgstr "Nettpratstast" #: src/settings_translation_file.cpp msgid "Chat log level" @@ -2491,11 +2500,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Client" -msgstr "" +msgstr "Klient" #: src/settings_translation_file.cpp msgid "Client and Server" -msgstr "" +msgstr "Klient og tenar" #: src/settings_translation_file.cpp msgid "Client modding" @@ -2511,15 +2520,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Climbing speed" -msgstr "" +msgstr "Klatrefart" #: src/settings_translation_file.cpp msgid "Cloud radius" -msgstr "" +msgstr "Skyradius" #: src/settings_translation_file.cpp msgid "Clouds" -msgstr "" +msgstr "Skyer" #: src/settings_translation_file.cpp msgid "Clouds are a client side effect." @@ -2527,11 +2536,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Clouds in menu" -msgstr "" +msgstr "Skyer i meny" #: src/settings_translation_file.cpp msgid "Colored fog" -msgstr "" +msgstr "Farga tåke" #: src/settings_translation_file.cpp msgid "" @@ -2594,7 +2603,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "ContentDB URL" -msgstr "" +msgstr "URL til ContentDB" #: src/settings_translation_file.cpp msgid "Continuous forward" @@ -2638,11 +2647,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Crash message" -msgstr "" +msgstr "Kræsjmelding" #: src/settings_translation_file.cpp msgid "Creative" -msgstr "" +msgstr "Kreativ" #: src/settings_translation_file.cpp msgid "Crosshair alpha" @@ -2698,29 +2707,31 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Default acceleration" -msgstr "" +msgstr "Standard akselerasjon" #: src/settings_translation_file.cpp msgid "Default game" -msgstr "" +msgstr "Standard spel" #: src/settings_translation_file.cpp msgid "" "Default game when creating a new world.\n" "This will be overridden when creating a world from the main menu." msgstr "" +"Standard spel når du lagar ei ny verd.\n" +"Dette vil verte overstyrt når du lagar ei verd frå hovudmenyen." #: src/settings_translation_file.cpp msgid "Default password" -msgstr "" +msgstr "Standard passord" #: src/settings_translation_file.cpp msgid "Default privileges" -msgstr "" +msgstr "Standard privilegium" #: src/settings_translation_file.cpp msgid "Default report format" -msgstr "" +msgstr "Standard rapportformat" #: src/settings_translation_file.cpp msgid "Default stack size" From d77a8a980f122f61a5b7ff2060160a741b18acf7 Mon Sep 17 00:00:00 2001 From: Reza Almanda Date: Sun, 21 Feb 2021 10:54:18 +0000 Subject: [PATCH 556/624] Translated using Weblate (Indonesian) Currently translated at 100.0% (1353 of 1353 strings) --- po/id/minetest.po | 50 ++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/po/id/minetest.po b/po/id/minetest.po index 4cfffc6f9..cea94783a 100644 --- a/po/id/minetest.po +++ b/po/id/minetest.po @@ -3,9 +3,8 @@ msgstr "" "Project-Id-Version: Indonesian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-02-03 15:42+0000\n" -"Last-Translator: Muhammad Rifqi Priyo Susanto " -"\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" +"Last-Translator: Reza Almanda \n" "Language-Team: Indonesian \n" "Language: id\n" @@ -13,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -1010,7 +1009,7 @@ msgstr "Untuk menggunakan shader, pengandar OpenGL harus digunakan." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "Tone Mapping" +msgstr "Pemetaan Nada" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" @@ -2217,7 +2216,7 @@ msgid "" msgstr "" "Sesuaikan kepadatan lapisan floatland.\n" "Tambahkan nilai untuk menambah kepadatan. Dapat positif atau negatif.\n" -"Nilai = 0.0: 50% volume adalah floatland.\n" +"Nilai = 0.0: 50% o volume adalah floatland.\n" "Nilai = 2.0 (dapat lebih tinggi tergantung 'mgv7_np_floatland', selalu uji\n" "terlebih dahulu) membuat lapisan floatland padat (penuh)." @@ -2611,8 +2610,8 @@ msgid "" "allow them to upload and download data to/from the internet." msgstr "" "Daftar yang dipisahkan dengan koma dari mod yang dibolehkan untuk\n" -"mengakses HTTP API, membolehkan mereka untuk mengunggah dan\n" -"mengunduh data ke/dari internet." +"mengakses HTTP API, membolehkan mereka untuk mengunggah dan mengunduh data " +"ke/dari internet." #: src/settings_translation_file.cpp msgid "" @@ -2620,8 +2619,8 @@ msgid "" "functions even when mod security is on (via request_insecure_environment())." msgstr "" "Daftar yang dengan dipisahkan koma dari mod terpercaya yang diperbolehkan\n" -"untuk mengakses fungsi yang tidak aman bahkan ketika mod security aktif\n" -"(melalui request_insecure_environment())." +"untuk mengakses fungsi yang tidak aman bahkan ketika mod security aktif (" +"melalui request_insecure_environment())." #: src/settings_translation_file.cpp msgid "Command key" @@ -3479,8 +3478,8 @@ msgid "" msgstr "" "Atribut pembuatan peta global.\n" "Dalam pembuat peta v6, flag \"decorations\" mengatur semua hiasan, kecuali\n" -"pohon dan rumput rimba. Dalam pembuat peta lain, flag ini mengatur\n" -"semua dekorasi." +"pohon dan rumput rimba. Dalam pembuat peta lain, flag ini mengatur semua " +"dekorasi." #: src/settings_translation_file.cpp msgid "" @@ -3902,10 +3901,10 @@ msgid "" "you stand.\n" "This is helpful when working with nodeboxes in small areas." msgstr "" -"Jika dinyalakan, Anda dapat menaruh blok pada posisi (kaki + ketinggian " -"mata)\n" -"tempat Anda berdiri.\n" -"Ini berguna saat bekerja dengan kotak nodus (nodebox) dalam daerah sempit." +"Jika dinyalakan, Anda dapat menaruh blok pada posisi (kaki + ketinggian mata)" +"\n" +"tempat Anda berdiri. Ini berguna saat bekerja dengan kotak nodus (nodebox) " +"dalam daerah sempit." #: src/settings_translation_file.cpp msgid "" @@ -5673,6 +5672,7 @@ msgid "" "open." msgstr "" "Buka menu jeda saat jendela hilang fokus. Tidak menjeda jika formspec sedang " +"\n" "dibuka." #: src/settings_translation_file.cpp @@ -6016,12 +6016,11 @@ msgid "" "edge pixels when images are scaled by non-integer sizes." msgstr "" "Perbesar/perkecil GUI sesuai pengguna.\n" -"Menggunakan filter nearest-neighbor-anti-alias untuk\n" -"perbesar/perkecil GUI.\n" +"Menggunakan filter nearest-neighbor-anti-alias untuk perbesar/perkecil GUI.\n" "Ini akan menghaluskan beberapa tepi kasar dan\n" "mencampurkan piksel-piksel saat diperkecil dengan\n" -"mengaburkan beberapa piksel tepi saat diperkecil dengan\n" -"skala bukan bilangan bulat." +"mengaburkan beberapa piksel tepi saat diperkecil dengan skala bukan bilangan " +"bulat." #: src/settings_translation_file.cpp msgid "Screen height" @@ -6269,7 +6268,8 @@ msgstr "" "PERINGATAN! Tidak ada untungnya dan berbahaya jika menaikkan\n" "nilai ini di atas 5.\n" "Mengecilkan nilai ini akan meningkatkan kekerapan gua dan dungeon.\n" -"Mengubah nilai ini untuk kegunaan khusus, membiarkannya disarankan." +"Mengubah nilai ini untuk kegunaan khusus, membiarkannya \n" +"disarankan." #: src/settings_translation_file.cpp msgid "" @@ -6662,7 +6662,9 @@ msgstr "" msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." -msgstr "Jeda dalam detik antar-penaruhan berulang saat menekan tombol taruh." +msgstr "" +"Jeda dalam detik antar-penaruhan berulang saat menekan \n" +"tombol taruh." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -7174,8 +7176,8 @@ msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." msgstr "" -"Titik acuan kemiringan kepadatan gunung pada sumbu Y.\n" -"Digunakan untuk menggeser gunung secara vertikal." +"Titik acuan kemiringan kepadatan gunung pada sumbu Y. Digunakan untuk " +"menggeser gunung secara vertikal." #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." From 0e75f85c41c987185af1224019d6f46bf6608edc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kornelijus=20Tvarijanavi=C4=8Dius?= Date: Sun, 21 Feb 2021 11:29:02 +0000 Subject: [PATCH 557/624] Translated using Weblate (Lithuanian) Currently translated at 16.0% (217 of 1353 strings) --- po/lt/minetest.po | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/po/lt/minetest.po b/po/lt/minetest.po index e9b9f97eb..98bd29471 100644 --- a/po/lt/minetest.po +++ b/po/lt/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Lithuanian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-09-23 07:41+0000\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" "Last-Translator: Kornelijus Tvarijanavičius \n" "Language-Team: Lithuanian \n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 4.3-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -28,12 +28,10 @@ msgid "OK" msgstr "" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Klaida įvyko Lua scenarijuje, tokiame kaip papildinys:" +msgstr "Įvyko klaida Lua skripte:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" msgstr "Įvyko klaida:" @@ -67,7 +65,7 @@ msgstr "Mes palaikome tik $1 protokolo versiją." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "Mes palaikome protokolo versijas nuo $1 iki $2." +msgstr "Mes palaikome protokolo versijas tarp $1 ir $2." #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_create_world.lua @@ -82,16 +80,14 @@ msgstr "Atšaukti" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Dependencies:" -msgstr "Priklauso:" +msgstr "Priklauso nuo:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" msgstr "Išjungti visus papildinius" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable modpack" msgstr "Išjungti papildinį" @@ -129,9 +125,8 @@ msgid "No game description provided." msgstr "Nepateiktas žaidimo aprašymas." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Priklauso:" +msgstr "Nėra būtinų priklausomybių" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -177,9 +172,8 @@ msgid "" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Įkeliama..." +msgstr "$1 atsiunčiama..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." From 914b0117428ebab62abb9059458e50f15da5b92a Mon Sep 17 00:00:00 2001 From: ssantos Date: Sat, 20 Feb 2021 12:31:56 +0000 Subject: [PATCH 558/624] Translated using Weblate (Portuguese) Currently translated at 93.0% (1259 of 1353 strings) --- po/pt/minetest.po | 88 +++++++++++++++++++++-------------------------- 1 file changed, 40 insertions(+), 48 deletions(-) diff --git a/po/pt/minetest.po b/po/pt/minetest.po index e79a3841d..a9db6f57a 100644 --- a/po/pt/minetest.po +++ b/po/pt/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Portuguese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2020-12-10 19:29+0000\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -154,52 +154,51 @@ msgstr "ativado" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" já existe. Gostaria de sobrescrevê-lo?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "As dependências de $1 e $2 serão instaladas." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 por $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"A descarregar $1,\n" +"$2 na fila" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "A descarregar..." +msgstr "A descarregar $1..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 dependências necessárias não foram encontradas." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 serão instalados e $2 dependências serão ignoradas." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Todos os pacotes" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Tecla já em uso" +msgstr "Já instalado" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Voltar ao menu principal" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Hospedar Jogo" +msgstr "Jogo base:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -223,14 +222,12 @@ msgid "Install" msgstr "Instalar" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Instalar" +msgstr "Instalar $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Dependências opcionais:" +msgstr "Instalar dependências ausentes" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -246,26 +243,24 @@ msgid "No results" msgstr "Sem resultados" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Atualizar" +msgstr "Sem atualizações" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Mutar som" +msgstr "Não encontrado" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Sobrescrever" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Verifique se o jogo base está correto." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "Enfileirado" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -281,11 +276,11 @@ msgstr "Atualizar" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Atualizar tudo [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Exibir mais informações num navegador da Web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -767,15 +762,16 @@ msgid "Credits" msgstr "Méritos" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Selecione o diretório" +msgstr "Abrir o diretório de dados do utilizador" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"Abre o diretório que contém mundos, jogos, mods fornecidos pelo utilizador,\n" +"e pacotes de textura num gestor de ficheiros / explorador." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -815,7 +811,7 @@ msgstr "Instalar jogos do ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Nome" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -826,9 +822,8 @@ msgid "No world created or selected!" msgstr "Nenhum mundo criado ou seleccionado!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Palavra-passe nova" +msgstr "Palavra-passe" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -839,9 +834,8 @@ msgid "Port" msgstr "Porta" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Seleccionar Mundo:" +msgstr "Selecionar mods" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -993,9 +987,8 @@ msgid "Shaders" msgstr "Sombras" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Terrenos flutuantes (experimental)" +msgstr "Shaders (experimental)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1195,7 +1188,7 @@ msgid "Continue" msgstr "Continuar" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1215,15 +1208,15 @@ msgstr "" "Controles:\n" "- %s: mover para a frente\n" "- %s: mover para trás\n" -"- %s: mover à esquerda\n" -"- %s: mover-se para a direita\n" +"- %s: mover para a esquerda\n" +"- %s: mover para a direita\n" "- %s: saltar/escalar\n" +"- %s: cavar/socar\n" +"- %s: colocar/usar\n" "- %s: esgueirar/descer\n" "- %s: soltar item\n" "- %s: inventário\n" "- Rato: virar/ver\n" -"- Rato à esquerda: escavar/dar soco\n" -"- Rato direito: posicionar/usar\n" "- Roda do rato: selecionar item\n" "- %s: bate-papo\n" @@ -1752,19 +1745,18 @@ msgid "Minimap hidden" msgstr "Minimapa escondido" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Minimapa em modo radar, zoom 1x" +msgstr "Minimapa em modo radar, ampliação %dx" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Minimapa em modo de superfície, zoom 1x" +msgstr "Minimapa em modo de superfície, ampliação %dx" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Tamanho mínimo da textura" +msgstr "Minimapa em modo de textura" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -2170,7 +2162,7 @@ msgstr "Intervalo do ABM" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "Orçamento de tempo do ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2676,7 +2668,7 @@ msgstr "Lista negra de flags do ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "Máximo de descargas simultâneas de ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB URL" From b88015d8e4fe51701f7940e80c068be018a5a06c Mon Sep 17 00:00:00 2001 From: Victor Barcelos Lacerda Date: Sun, 21 Feb 2021 20:18:04 +0000 Subject: [PATCH 559/624] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (1353 of 1353 strings) --- po/pt_BR/minetest.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index 579069fa6..6cb0ac983 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-02-23 15:50+0000\n" -"Last-Translator: Ronoaldo Pereira \n" +"Last-Translator: Victor Barcelos Lacerda \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -3608,7 +3608,7 @@ msgstr "Ruído de altura" #: src/settings_translation_file.cpp msgid "Height select noise" -msgstr "Parâmetros de ruido de seleção de altura do gerador de mundo v6" +msgstr "Parâmetros de ruido de seleção de altura" #: src/settings_translation_file.cpp msgid "High-precision FPU" @@ -3616,11 +3616,11 @@ msgstr "FPU de alta precisão" #: src/settings_translation_file.cpp msgid "Hill steepness" -msgstr "Esparsamento das colinas no gerador de mundo plano" +msgstr "Inclinação dos morros" #: src/settings_translation_file.cpp msgid "Hill threshold" -msgstr "Threshold das colinas no gerador de mundo plano" +msgstr "Limite das colinas no gerador de mundo plano" #: src/settings_translation_file.cpp msgid "Hilliness1 noise" @@ -4243,7 +4243,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para aumentar o alcance de visão.\n" +"Tecla para aumentar o volume.\n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4315,7 +4315,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para pular. \n" +"Tecla para por o som em mudo. \n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" From f0084d8494b6a5302983493cc013ff6b43046272 Mon Sep 17 00:00:00 2001 From: Osoitz Date: Mon, 22 Feb 2021 14:57:56 +0000 Subject: [PATCH 560/624] Translated using Weblate (Basque) Currently translated at 21.7% (294 of 1353 strings) --- po/eu/minetest.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/po/eu/minetest.po b/po/eu/minetest.po index 9add230cd..3d32a71e8 100644 --- a/po/eu/minetest.po +++ b/po/eu/minetest.po @@ -9,7 +9,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-30 21:13+0100\n" "PO-Revision-Date: 2021-02-23 15:50+0000\n" -"Last-Translator: aitzol berasategi \n" +"Last-Translator: Osoitz \n" "Language-Team: Basque \n" "Language: eu\n" @@ -265,7 +265,7 @@ msgstr "Mesedez, egiaztatu oinarri jokoa zuzena dela." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "Ilaran" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -971,11 +971,11 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" -msgstr "" +msgstr "Hosto opakoak" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Water" -msgstr "" +msgstr "Ur opakoa" #: builtin/mainmenu/tab_settings.lua msgid "Particles" @@ -1213,11 +1213,11 @@ msgstr "" #: src/client/game.cpp msgid "Creating client..." -msgstr "" +msgstr "Bezeroa sortzen..." #: src/client/game.cpp msgid "Creating server..." -msgstr "" +msgstr "Zerbitzaria sortzen..." #: src/client/game.cpp msgid "Debug info and profiler graph hidden" From f35b9be03df8c8263132bdf34b4d9d10c667065e Mon Sep 17 00:00:00 2001 From: "updatepo.sh" Date: Tue, 23 Feb 2021 19:02:39 +0100 Subject: [PATCH 561/624] Reset Chinese translations to previous state due to vandalism --- po/zh_CN/minetest.po | 1004 +++++++++++------------------- po/zh_TW/minetest.po | 1376 ++++++++++++++---------------------------- 2 files changed, 827 insertions(+), 1553 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index f1cf938ac..28a359fd4 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-01-24 16:19+0000\n" -"Last-Translator: AISS \n" +"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"PO-Revision-Date: 2021-01-20 15:10+0000\n" +"Last-Translator: ZhiZe-ZG \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -46,6 +46,10 @@ msgstr "重新连接" msgid "The server has requested a reconnect:" msgstr "服务器已请求重新连接:" +#: builtin/mainmenu/common.lua src/client/game.cpp +msgid "Loading..." +msgstr "载入中..." + #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "协议版本不匹配。 " @@ -58,6 +62,10 @@ msgstr "服务器强制协议版本为 $1。 " msgid "Server supports protocol versions between $1 and $2. " msgstr "服务器支持协议版本为 $1 至 $2。 " +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "请尝试重新启用公共服务器列表并检查您的网络连接。" + #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "我们只支持协议版本 $1。" @@ -66,8 +74,7 @@ msgstr "我们只支持协议版本 $1。" msgid "We support protocol versions between version $1 and $2." msgstr "我们支持的协议版本为 $1 至 $2。" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -77,8 +84,7 @@ msgstr "我们支持的协议版本为 $1 至 $2。" msgid "Cancel" msgstr "取消" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "依赖项:" @@ -149,55 +155,14 @@ msgstr "世界:" msgid "enabled" msgstr "启用" -#: builtin/mainmenu/dlg_contentstore.lua -msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "$1 and $2 dependencies will be installed." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "$1 by $2" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "" -"$1 downloading,\n" -"$2 queued" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "$1 downloading..." -msgstr "下载中..." - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "$1 required dependencies could not be found." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" - #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "所有包" -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "Already installed" -msgstr "按键已被占用" - #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "返回主菜单" -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "Base Game:" -msgstr "主持游戏" - #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "在没有cURL的情况下编译Minetest时,ContentDB不可用" @@ -219,16 +184,6 @@ msgstr "子游戏" msgid "Install" msgstr "安装" -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "Install $1" -msgstr "安装" - -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "Install missing dependencies" -msgstr "可选依赖项:" - #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -243,26 +198,9 @@ msgid "No results" msgstr "无结果" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "No updates" -msgstr "更新" - -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "Not found" -msgstr "静音" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Overwrite" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Please check that the base game is correct." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Queued" -msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "搜索" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -277,12 +215,8 @@ msgid "Update" msgstr "更新" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Update All [$1]" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "View more information in a web browser" -msgstr "" +msgid "View" +msgstr "视野" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -576,10 +510,6 @@ msgstr "恢复初始设置" msgid "Scale" msgstr "比例" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Search" -msgstr "搜索" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "选择目录" @@ -695,14 +625,6 @@ msgstr "无法将$1安装为mod" msgid "Unable to install a modpack as a $1" msgstr "无法将$1安装为mod包" -#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp -msgid "Loading..." -msgstr "载入中..." - -#: builtin/mainmenu/serverlistmgr.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "请尝试重新启用公共服务器列表并检查您的网络连接。" - #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "浏览在线内容" @@ -755,17 +677,6 @@ msgstr "核心开发者" msgid "Credits" msgstr "贡献者" -#: builtin/mainmenu/tab_credits.lua -#, fuzzy -msgid "Open User Data Directory" -msgstr "选择目录" - -#: builtin/mainmenu/tab_credits.lua -msgid "" -"Opens the directory that contains user-provided worlds, games, mods,\n" -"and texture packs in a file manager / explorer." -msgstr "" - #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "前贡献者" @@ -783,10 +694,14 @@ msgid "Bind Address" msgstr "绑定地址" #: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "配置" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "创造模式" -#: builtin/mainmenu/tab_local.lua +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Enable Damage" msgstr "开启伤害" @@ -803,8 +718,8 @@ msgid "Install games from ContentDB" msgstr "从 ContentDB 安装游戏" #: builtin/mainmenu/tab_local.lua -msgid "Name" -msgstr "" +msgid "Name/Password" +msgstr "用户名/密码" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -814,11 +729,6 @@ msgstr "新建" msgid "No world created or selected!" msgstr "未创建或选择世界!" -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Password" -msgstr "新密码" - #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "开始游戏" @@ -827,11 +737,6 @@ msgstr "开始游戏" msgid "Port" msgstr "端口" -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Select Mods" -msgstr "选择世界:" - #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "选择世界:" @@ -848,23 +753,23 @@ msgstr "启动游戏" msgid "Address / Port" msgstr "地址/端口" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Connect" msgstr "连接" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative mode" msgstr "创造模式" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Damage enabled" msgstr "伤害已启用" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Del. Favorite" msgstr "删除收藏项" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Favorite" msgstr "收藏项" @@ -872,16 +777,16 @@ msgstr "收藏项" msgid "Join Game" msgstr "加入游戏" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" msgstr "用户名/密码" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Ping" msgstr "应答速度" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "PvP enabled" msgstr "启用玩家对战" @@ -909,6 +814,10 @@ msgstr "所有设置" msgid "Antialiasing:" msgstr "抗锯齿:" +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "你确定要重置你的单人世界吗?" + #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "自动保存屏幕尺寸" @@ -917,6 +826,10 @@ msgstr "自动保存屏幕尺寸" msgid "Bilinear Filter" msgstr "双线性过滤" +#: builtin/mainmenu/tab_settings.lua +msgid "Bump Mapping" +msgstr "凹凸贴图" + #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "更改键位设置" @@ -929,6 +842,10 @@ msgstr "连通玻璃" msgid "Fancy Leaves" msgstr "华丽树叶" +#: builtin/mainmenu/tab_settings.lua +msgid "Generate Normal Maps" +msgstr "生成法线贴图" + #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mip 贴图" @@ -937,6 +854,10 @@ msgstr "Mip 贴图" msgid "Mipmap + Aniso. Filter" msgstr "Mip 贴图 + 各向异性过滤" +#: builtin/mainmenu/tab_settings.lua +msgid "No" +msgstr "否" + #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "无过滤" @@ -965,10 +886,18 @@ msgstr "不透明树叶" msgid "Opaque Water" msgstr "不透明水" +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "视差遮蔽" + #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "粒子效果" +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "重置单人世界" + #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "屏幕:" @@ -981,11 +910,6 @@ msgstr "设置" msgid "Shaders" msgstr "着色器" -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Shaders (experimental)" -msgstr "悬空岛(实验性)" - #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "着色器 (不可用)" @@ -1030,6 +954,22 @@ msgstr "摇动流体" msgid "Waving Plants" msgstr "摇摆植物" +#: builtin/mainmenu/tab_settings.lua +msgid "Yes" +msgstr "是" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Config mods" +msgstr "配置 mod" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Main" +msgstr "主菜单" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Start Singleplayer" +msgstr "单人游戏" + #: src/client/client.cpp msgid "Connection timed out." msgstr "连接超时。" @@ -1184,20 +1124,20 @@ msgid "Continue" msgstr "继续" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb up\n" -"- %s: dig/punch\n" -"- %s: place/use\n" -"- %s: sneak/climb down\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1344,6 +1284,34 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "小地图被当前子游戏或者 mod 禁用" +#: src/client/game.cpp +msgid "Minimap hidden" +msgstr "小地图已隐藏" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x1" +msgstr "雷达小地图,放大至一倍" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x2" +msgstr "雷达小地图,放大至两倍" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x4" +msgstr "雷达小地图, 放大至四倍" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x1" +msgstr "地表模式小地图, 放大至一倍" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x2" +msgstr "地表模式小地图, 放大至两倍" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x4" +msgstr "地表模式小地图, 放大至四倍" + #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "穿墙模式已禁用" @@ -1736,25 +1704,6 @@ msgstr "X键2" msgid "Zoom" msgstr "缩放" -#: src/client/minimap.cpp -msgid "Minimap hidden" -msgstr "小地图已隐藏" - -#: src/client/minimap.cpp -#, fuzzy, c-format -msgid "Minimap in radar mode, Zoom x%d" -msgstr "雷达小地图,放大至一倍" - -#: src/client/minimap.cpp -#, fuzzy, c-format -msgid "Minimap in surface mode, Zoom x%d" -msgstr "地表模式小地图, 放大至一倍" - -#: src/client/minimap.cpp -#, fuzzy -msgid "Minimap in texture mode" -msgstr "最小材质大小" - #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "密码不匹配!" @@ -2020,6 +1969,14 @@ msgstr "" "默认值为适合\n" "孤岛的垂直压扁形状,将所有3个数字设置为相等以呈现原始形状。" +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" +"0 = 利用梯度信息进行视差遮蔽 (较快).\n" +"1 = 浮雕映射 (较慢, 但准确)." + #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "控制山脊形状/大小的2D噪声。" @@ -2144,10 +2101,6 @@ msgstr "当关闭服务器时,发送给所有客户端的信息。" msgid "ABM interval" msgstr "ABM间隔" -#: src/settings_translation_file.cpp -msgid "ABM time budget" -msgstr "" - #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "待显示方块队列的绝对限制" @@ -2206,10 +2159,10 @@ msgid "" "to be sure) creates a solid floatland layer." msgstr "" "调整悬空岛层的密度。\n" -"增大数值可增加密度,可以是正值或负值。\n" -"值=0.0:50% o的体积是平原。\n" -"值 = 2.0 (可以更高,取决于'mgv7_np_floatland'。\n" -"总是测试以确保,创建一个坚实的悬空岛层。" +"增加值以增加密度。可以是正值或负值。\n" +"值等于0.0, 容积的50%是floatland。\n" +"值等于2.0 ,(可以更高,取决于 'mgv7_np_floatland' ,始终测试以确定)\n" +"创建一个坚实的悬空岛层。" #: src/settings_translation_file.cpp msgid "Advanced" @@ -2404,6 +2357,10 @@ msgstr "在玩家内部搭建" msgid "Builtin" msgstr "内置" +#: src/settings_translation_file.cpp +msgid "Bumpmapping" +msgstr "凹凸贴图" + #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2480,6 +2437,20 @@ msgstr "" "亮度曲线范围中心。\n" "0.0为最小值时1.0为最大值。" +#: src/settings_translation_file.cpp +msgid "" +"Changes the main menu UI:\n" +"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " +"etc.\n" +"- Simple: One singleplayer world, no game or texture pack choosers. May " +"be\n" +"necessary for smaller screens." +msgstr "" +"主菜单UI的变化:\n" +"- 完整 多个单人世界,子游戏选择,材质包选择器等。\n" +"- 简单:单个单人世界,无子游戏材质包选择器。可能\n" +"需要用于小屏幕。" + #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "聊天字体大小" @@ -2641,10 +2612,6 @@ msgstr "控制台高度" msgid "ContentDB Flag Blacklist" msgstr "ContentDB标签黑名单" -#: src/settings_translation_file.cpp -msgid "ContentDB Max Concurrent Downloads" -msgstr "" - #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "ContentDB网址" @@ -2710,10 +2677,7 @@ msgid "Crosshair alpha" msgstr "准星透明" #: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Crosshair alpha (opaqueness, between 0 and 255).\n" -"Also controls the object crosshair color" +msgid "Crosshair alpha (opaqueness, between 0 and 255)." msgstr "准星不透明度(0-255)。" #: src/settings_translation_file.cpp @@ -2721,10 +2685,8 @@ msgid "Crosshair color" msgstr "准星颜色" #: src/settings_translation_file.cpp -msgid "" -"Crosshair color (R,G,B).\n" -"Also controls the object crosshair color" -msgstr "" +msgid "Crosshair color (R,G,B)." +msgstr "准星颜色(红,绿,蓝)。" #: src/settings_translation_file.cpp msgid "DPI" @@ -2826,6 +2788,14 @@ msgstr "定义大尺寸的河道结构。" msgid "Defines location and terrain of optional hills and lakes." msgstr "定义所选的山和湖的位置与地形。" +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" +"定义材质采样步骤。\n" +"数值越高常态贴图越平滑。" + #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "定义基准地面高度." @@ -2900,11 +2870,6 @@ msgstr "" msgid "Desynchronize block animation" msgstr "去同步块动画" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Dig key" -msgstr "右方向键" - #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "挖掘粒子效果" @@ -3078,6 +3043,17 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "启用物品清单动画。" +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" +"启用材质的凹凸贴图效果。需要材质包支持法线贴图,\n" +"否则将自动生成法线。\n" +"需要启用着色器。" + #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "启用翻转网状物facedir的缓存。" @@ -3086,6 +3062,22 @@ msgstr "启用翻转网状物facedir的缓存。" msgid "Enables minimap." msgstr "启用小地图。" +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" +"启用即时法线贴图生成(浮雕效果)。\n" +"需要启用凹凸贴图。" + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" +"启用视差遮蔽贴图。\n" +"需要启用着色器。" + #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3106,6 +3098,14 @@ msgstr "打印引擎性能分析数据间隔" msgid "Entity methods" msgstr "实体方法" +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" +"实验性选项,设为大于 0 的数字时可能导致\n" +"块之间出现可见空间。" + #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3116,16 +3116,14 @@ msgid "" "flatter lowlands, suitable for a solid floatland layer." msgstr "" "悬空岛锥度的指数,更改锥度的行为。\n" -"值等于1.0 ,创建一个统一的,线性锥度。\n" -"值大于1.0 ,创建一个平滑的、合适的锥度,\n" -"默认分隔的悬空岛。\n" -"值小于1.0,(例如0.25)创建一个带有平坦低地的更加轮廓分明的表面级别。\n" +"值等于1.0,创建一个统一的,线性锥度。\n" +"值大于1.0,创建一个平滑的、合适的锥度,默认分隔的悬空岛。\n" +"值小于1.0,(例如0.25)创建一个带有平坦低地的更加轮廓分明的表面级别,\n" "适用于固体悬空岛层。" #: src/settings_translation_file.cpp -#, fuzzy -msgid "FPS when unfocused or paused" -msgstr "游戏暂停时最高 FPS。" +msgid "FPS in pause menu" +msgstr "暂停菜单 FPS" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3442,6 +3440,10 @@ msgstr "GUI缩放过滤器" msgid "GUI scaling filter txr2img" msgstr "GUI缩放过滤器 txr2img" +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "生成发现贴图" + #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "全局回调" @@ -3501,11 +3503,10 @@ msgid "HUD toggle key" msgstr "HUD启用/禁用键" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- none: Do not log deprecated calls\n" -"- log: mimic and log backtrace of deprecated call (default).\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "处理已弃用的 Lua API 调用:\n" @@ -3877,8 +3878,8 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" -"如果客户端mod方块范围限制启用,限制get_node至玩家。\n" -"到方块的距离。" +"如果客户端mod方块范围限制启用,限制get_node至玩家\n" +"到方块的距离" #: src/settings_translation_file.cpp msgid "" @@ -4022,11 +4023,6 @@ msgstr "摇杆 ID" msgid "Joystick button repetition interval" msgstr "摇杆按钮重复间隔" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Joystick deadzone" -msgstr "摇杆类型" - #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "摇杆头灵敏度" @@ -4129,17 +4125,6 @@ msgstr "" "见http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for digging.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"跳跃键。\n" -"见http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4282,17 +4267,6 @@ msgstr "" "见http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for placing.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"跳跃键。\n" -"见http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5037,6 +5011,10 @@ msgstr "悬空岛的Y值下限。" msgid "Main menu script" msgstr "主菜单脚本" +#: src/settings_translation_file.cpp +msgid "Main menu style" +msgstr "主菜单样式" + #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5050,14 +5028,6 @@ msgstr "使DirectX和LuaJIT一起工作。如果这导致了问题禁用它。" msgid "Makes all liquids opaque" msgstr "使所有液体不透明" -#: src/settings_translation_file.cpp -msgid "Map Compression Level for Disk Storage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map Compression Level for Network Transfer" -msgstr "" - #: src/settings_translation_file.cpp msgid "Map directory" msgstr "地图目录" @@ -5241,8 +5211,7 @@ msgid "Maximum FPS" msgstr "最大 FPS" #: src/settings_translation_file.cpp -#, fuzzy -msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgid "Maximum FPS when game is paused." msgstr "游戏暂停时最高 FPS。" #: src/settings_translation_file.cpp @@ -5299,13 +5268,6 @@ msgstr "" "在从文件中加载时加入队列的最大方块数。\n" "此限制对每位玩家强制执行。" -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of concurrent downloads. Downloads exceeding this limit will " -"be queued.\n" -"This should be lower than curl_parallel_limit." -msgstr "" - #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "强制载入地图块最大数量。" @@ -5555,6 +5517,14 @@ msgstr "NodeTimer间隔" msgid "Noises" msgstr "噪声" +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "法线贴图采样" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "法线贴图强度" + #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "生产线程数" @@ -5593,6 +5563,10 @@ msgstr "" "这是与sqlite交互和内存消耗的平衡。\n" "(4096=100MB,按经验法则)。" +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "视差遮蔽迭代数。" + #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "在线内容仓库(ContentDB)" @@ -5620,6 +5594,34 @@ msgstr "" "当窗口焦点丢失是打开暂停菜单。如果游戏内窗口打开,\n" "则不暂停。" +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "视差遮蔽效果的整体斜纹,通常为比例/2。" + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "视差遮蔽效果的总体比例。" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "视差遮蔽" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "视差遮蔽偏移" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "视差遮蔽迭代" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "视差遮蔽模式" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion scale" +msgstr "视差遮蔽比例" + #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5699,16 +5701,6 @@ msgstr "俯仰移动键" msgid "Pitch move mode" msgstr "俯仰移动模式" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Place key" -msgstr "飞行键" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Place repetition interval" -msgstr "右击重复间隔" - #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5890,6 +5882,10 @@ msgstr "山脊大小噪声" msgid "Right key" msgstr "右方向键" +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "右击重复间隔" + #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "河道深度" @@ -6179,15 +6175,6 @@ msgstr "显示调试信息" msgid "Show entity selection boxes" msgstr "显示实体选择框" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Show entity selection boxes\n" -"A restart is required after changing this." -msgstr "" -"设定语言。留空以使用系统语言。\n" -"变更后须重新启动。" - #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "关闭消息" @@ -6337,6 +6324,10 @@ msgstr "单步山峰广度噪声" msgid "Strength of 3D mode parallax." msgstr "3D 模式视差的强度。" +#: src/settings_translation_file.cpp +msgid "Strength of generated normalmaps." +msgstr "生成的一般地图强度。" + #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6444,46 +6435,34 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" -"节点上的纹理可以与该节点对齐,也可以与世界对齐。\n" -"前一种模式适合机器,家具等更好的东西,而\n" -"后者使楼梯和微区块更适合周围环境。\n" -"但是,由于这种可能性是新的,因此较旧的服务器可能不会使用,\n" -"此选项允许对某些节点类型强制实施。 注意尽管\n" -"被认为是实验性的,可能无法正常工作。" - -#: src/settings_translation_file.cpp -msgid "The URL for the content repository" -msgstr "内容存储库的 URL" #: src/settings_translation_file.cpp #, fuzzy -msgid "The deadzone of the joystick" -msgstr "要使用的操纵杆的标识符" +msgid "The URL for the content repository" +msgstr "内容存储库的 URL" #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" "when calling `/profiler save [format]` without format." msgstr "" -"保存配置文件的默认格式,\n" -"调用`/profiler save[format]`时不带格式。" #: src/settings_translation_file.cpp msgid "The depth of dirt or other biome filler node." -msgstr "泥土深度或其他生物群系过滤节点。" +msgstr "泥土深度或其他生物群系过滤节点" #: src/settings_translation_file.cpp msgid "" "The file path relative to your worldpath in which profiles will be saved to." -msgstr "配置文件将保存到,您的世界路径的文件路径。" +msgstr "" #: src/settings_translation_file.cpp msgid "The identifier of the joystick to use" -msgstr "要使用的操纵杆的标识符" +msgstr "" #: src/settings_translation_file.cpp msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "开始触摸屏交互所需的长度(以像素为单位)。" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -6493,11 +6472,6 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" -"波浪状液体表面的最大高度。\n" -"4.0 =波高是两个节点。\n" -"0.0 =波形完全不移动。\n" -"默认值为1.0(1/2节点)。\n" -"需要启用波状液体。" #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." @@ -6521,35 +6495,22 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" -"每个玩家周围的方块体积的半径受制于\n" -"活动块内容,以mapblock(16个节点)表示。\n" -"在活动块中,将加载对象并运行ABM。\n" -"这也是保持活动对象(生物)的最小范围。\n" -"这应该与active_object_send_range_blocks一起配置。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended.\n" -"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +"On other platforms, OpenGL is recommended, and it’s the only driver with\n" +"shader support currently." msgstr "" -"Irrlicht的渲染后端。\n" -"更改此设置后需要重新启动。\n" -"注意:在Android上,如果不确定,请坚持使用OGLES1! 应用可能无法启动,否则。\n" -"在其他平台上,建议使用OpenGL,它是唯一具有以下功能的驱动程序。\n" -"目前支持着色器。" #: src/settings_translation_file.cpp msgid "" "The sensitivity of the joystick axes for moving the\n" "ingame view frustum around." msgstr "" -"操纵杆轴的灵敏度,用于移动\n" -"在游戏中查看周围 frustum。" #: src/settings_translation_file.cpp msgid "" @@ -6558,10 +6519,6 @@ msgid "" "setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" "set to the nearest valid value." msgstr "" -"节点环境遮挡阴影的强度(暗度)。\n" -"越低越暗,越高越亮。该值的有效范围是\n" -"0.25至4.0(含)。如果该值超出范围,则为\n" -"设置为最接近的有效值。" #: src/settings_translation_file.cpp msgid "" @@ -6569,36 +6526,23 @@ msgid "" "capacity until an attempt is made to decrease its size by dumping old queue\n" "items. A value of 0 disables the functionality." msgstr "" -"液体波动可能增长超过处理能力的时间(以秒为单位)。\n" -"尝试通过旧液体波动项来减少其大小。\n" -"数值为0将禁用该功能。" - -#: src/settings_translation_file.cpp -msgid "" -"The time budget allowed for ABMs to execute on each step\n" -"(as a fraction of the ABM Interval)" -msgstr "" #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" -"按住操纵手柄按钮组合时,\n" -"重复事件之间的时间(以秒为单位)。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" -"The time in seconds it takes between repeated node placements when holding\n" -"the place button." +"The time in seconds it takes between repeated right clicks when holding the " +"right\n" +"mouse button." msgstr "" -"按住鼠标右键时两次重复单击之间所花费的时间(以秒为单位)\n" -"鼠标按钮。" #: src/settings_translation_file.cpp msgid "The type of joystick" -msgstr "手柄类型" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -6611,8 +6555,9 @@ msgstr "" "已启用“ altitude_dry”。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "四种2D波状定义了,频率,幅度,噪声,颜色。" +msgstr "定义tunnels的最初2个3D噪音。" #: src/settings_translation_file.cpp msgid "" @@ -6645,8 +6590,6 @@ msgid "" "This determines how long they are slowed down after placing or removing a " "node." msgstr "" -"为了减少延迟,当一个玩家正在构建某个东西时,阻塞传输会减慢。\n" -"这决定了放置或删除节点后它们的速度减慢的时间。" #: src/settings_translation_file.cpp msgid "Toggle camera mode key" @@ -6687,8 +6630,9 @@ msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "显示在“多人游戏”选项卡中的服务器列表的URL。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Undersampling" -msgstr "采集" +msgstr "欠采样" #: src/settings_translation_file.cpp msgid "" @@ -6698,10 +6642,6 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"采集类似于使用较低的屏幕分辨率,但是它适用\n" -"仅限于游戏世界,保持GUI完整。\n" -"它应该以不那么详细的图像为代价显着提高性能。\n" -"较高的值会导致图像不太清晰。" #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6724,16 +6664,17 @@ msgid "Use 3D cloud look instead of flat." msgstr "使用 3D 云彩,而不是看起来是平面的。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Use a cloud animation for the main menu background." msgstr "主菜单背景使用云动画。" #: src/settings_translation_file.cpp msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "从某个角度查看纹理时使用各向异性过滤。" +msgstr "" #: src/settings_translation_file.cpp msgid "Use bilinear filtering when scaling textures." -msgstr "缩放纹理时使用双线性过滤。" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -6741,24 +6682,10 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" -"使用mip映射缩放纹理。可能会稍微提高性能,\n" -"尤其是使用高分辨率纹理包时。\n" -"不支持Gamma校正缩小。" - -#: src/settings_translation_file.cpp -msgid "" -"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" -"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" -"but it doesn't affect the insides of textures\n" -"(which is especially noticeable with transparent textures).\n" -"Visible spaces appear between nodes when shaders are disabled.\n" -"If set to 0, MSAA is disabled.\n" -"A restart is required after changing this option." -msgstr "" #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." -msgstr "缩放纹理时使用三线过滤。" +msgstr "" #: src/settings_translation_file.cpp msgid "VBO" @@ -6773,8 +6700,9 @@ msgid "Valley depth" msgstr "山谷深度" #: src/settings_translation_file.cpp +#, fuzzy msgid "Valley fill" -msgstr "山谷填塞" +msgstr "山谷弥漫" #: src/settings_translation_file.cpp msgid "Valley profile" @@ -6794,35 +6722,32 @@ msgstr "最大山体高度的变化(以节点为单位)。" #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "洞穴数量的变化。" +msgstr "洞口数量的变化。" #: src/settings_translation_file.cpp msgid "" "Variation of terrain vertical scale.\n" "When noise is < -0.55 terrain is near-flat." msgstr "" -"地形垂直比例的变化。\n" -"当比例< -0.55 地形接近平坦。" #: src/settings_translation_file.cpp msgid "Varies depth of biome surface nodes." -msgstr "改变生物群落表面方块的深度。" +msgstr "" #: src/settings_translation_file.cpp msgid "" "Varies roughness of terrain.\n" "Defines the 'persistence' value for terrain_base and terrain_alt noises." msgstr "" -"改变地形的粗糙度。\n" -"定义 terrain_base和terrain_alt光影的“持久性”值。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Varies steepness of cliffs." msgstr "控制山丘的坡度/高度。" #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "垂直爬升速度,以节点/秒表示。" +msgstr "" #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -6833,6 +6758,7 @@ msgid "Video driver" msgstr "视频驱动程序" #: src/settings_translation_file.cpp +#, fuzzy msgid "View bobbing factor" msgstr "范围摇动" @@ -6858,13 +6784,14 @@ msgstr "可视范围" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "虚拟操纵手柄触发辅助按钮" +msgstr "" #: src/settings_translation_file.cpp msgid "Volume" msgstr "音量" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." @@ -6880,11 +6807,6 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" -"生成的 4D 分形 3D 切片的 W 坐标。\n" -"确定生成的 4D 形状的 3D 切片。\n" -"更改分形的形状。\n" -"对 3D 分形没有影响。\n" -"范围大约 -2 到 2。" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." @@ -6903,8 +6825,9 @@ msgid "Water level" msgstr "水位" #: src/settings_translation_file.cpp +#, fuzzy msgid "Water surface level of the world." -msgstr "地表水面高度。" +msgstr "世界水平面级别。" #: src/settings_translation_file.cpp msgid "Waving Nodes" @@ -6940,9 +6863,6 @@ msgid "" "filtered in software, but some images are generated directly\n" "to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" -"当gui_scaling_filter为 true 时,所有 GUI 映像都需要\n" -"在软件中过滤,但一些图像是直接生成的\n" -"硬件(例如,库存中材质的渲染到纹理)。" #: src/settings_translation_file.cpp msgid "" @@ -6951,10 +6871,6 @@ msgid "" "to the old scaling method, for video drivers that don't\n" "properly support downloading textures back from hardware." msgstr "" -"当gui_scaling_filter_txr2img为 true 时,复制这些图像\n" -"从硬件到软件进行扩展。 当 false 时,回退\n" -"到旧的缩放方法,对于不\n" -"正确支持从硬件下载纹理。" #: src/settings_translation_file.cpp msgid "" @@ -6968,15 +6884,6 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" -"使用双线性/三线性/各向异性滤镜时,低分辨率纹理。\n" -"可以被模糊化,因此可以使用最近的邻居自动对其进行放大。\n" -"插值以保留清晰像素。 设置最小纹理大小。\n" -"用于高档纹理; 较高的值看起来更锐利,但需要更多。\n" -"记忆。 建议使用2的幂。 将此值设置为大于1可能不会。\n" -"除非双线性/三线性/各向异性过滤是。\n" -"已启用。\n" -"这也用作与世界对齐的基本材质纹理大小。\n" -"纹理自动缩放。" #: src/settings_translation_file.cpp msgid "" @@ -6984,24 +6891,20 @@ msgid "" "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" -"是否使用 FreeType 字体,都需要在 中编译 FreeType 支持。\n" -"如果禁用,则使用位图和 XML 矢量字体。" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "节点纹理动画是否应按地图块不同步。" +msgstr "" #: src/settings_translation_file.cpp msgid "" "Whether players are shown to clients without any range limit.\n" "Deprecated, use the setting player_transfer_distance instead." msgstr "" -"玩家是否显示给客户端没有任何范围限制。\n" -"已弃用,请player_transfer_distance设置。" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "是否允许玩家互相伤害和杀死。" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -7022,10 +6925,6 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" -"是否将声音静音。您可随时取消静音声音,除非\n" -"音响系统已禁用(enable_sound=false)。\n" -"在游戏中,您可以使用静音键切换静音状态,或者使用\n" -"暂停菜单。" #: src/settings_translation_file.cpp msgid "" @@ -7037,8 +6936,9 @@ msgid "Width component of the initial window size." msgstr "初始窗口大小的宽度。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Width of the selection box lines around nodes." -msgstr "节点周围的选择框线的宽度。" +msgstr "结点周围的选择框的线宽。" #: src/settings_translation_file.cpp msgid "" @@ -7046,8 +6946,6 @@ msgid "" "background.\n" "Contains the same information as the file debug.txt (default name)." msgstr "" -"仅适用于 Windows 系统:在命令行中窗口中启动 Minetest。\n" -"与 debug.txt(默认名称)文件包含相同的调试信息。" #: src/settings_translation_file.cpp msgid "" @@ -7070,16 +6968,10 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" -"世界对齐的纹理可以缩放以跨越多个节点。 然而,\n" -"服务器可能不会同意您想要的请求,特别是如果您使用\n" -"专门设计的纹理包; 使用此选项,客户端尝试\n" -"根据纹理大小自动确定比例。\n" -"另请参见texture_min_size。\n" -"警告:此选项是实验性的!" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "世界对齐纹理模式" +msgstr "" #: src/settings_translation_file.cpp msgid "Y of flat ground." @@ -7089,15 +6981,16 @@ msgstr "平地的 Y。" msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." -msgstr "Y的山地密度梯度为零。用于垂直移动山脉。" +msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Y of upper limit of large caves." -msgstr "大型随机洞穴的Y坐标最大值。" +msgstr "大型随机洞穴的Y轴最大值。" #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." -msgstr "洞穴扩大到最大尺寸的Y轴距离。" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -7106,22 +6999,18 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" -"悬空岛从最大密度到无密度区域的Y 轴距离。\n" -"锥形从 Y 轴界限开始。\n" -"对于实心浮地图层,这控制山/山的高度。\n" -"必须小于或等于 Y 限制之间一半的距离。" #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." -msgstr "地表平均Y坐标。" +msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of cavern upper limit." -msgstr "洞穴上限的Y坐标。" +msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of higher terrain that creates cliffs." -msgstr "形成悬崖的更高地形的Y坐标。" +msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of lower terrain and seabed." @@ -7131,24 +7020,6 @@ msgstr "较低地形与海底的Y坐标。" msgid "Y-level of seabed." msgstr "海底的Y坐标。" -#: src/settings_translation_file.cpp -msgid "" -"ZLib compression level to use when saving mapblocks to disk.\n" -"-1 - Zlib's default compression level\n" -"0 - no compresson, fastest\n" -"9 - best compression, slowest\n" -"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"ZLib compression level to use when sending mapblocks to the client.\n" -"-1 - Zlib's default compression level\n" -"0 - no compresson, fastest\n" -"9 - best compression, slowest\n" -"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" -msgstr "" - #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "cURL 文件下载超时" @@ -7161,51 +7032,64 @@ msgstr "cURL 并发限制" msgid "cURL timeout" msgstr "cURL 超时" -#~ msgid "" -#~ "0 = parallax occlusion with slope information (faster).\n" -#~ "1 = relief mapping (slower, more accurate)." -#~ msgstr "" -#~ "0 = 利用梯度信息进行视差遮蔽 (较快).\n" -#~ "1 = 浮雕映射 (较慢, 但准确)." +#~ msgid "Toggle Cinematic" +#~ msgstr "切换电影模式" + +#~ msgid "Select Package File:" +#~ msgstr "选择包文件:" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大型随机洞穴的Y轴最大值。" + +#~ msgid "Waving Water" +#~ msgstr "流动的水面" + +#~ msgid "Waving water" +#~ msgstr "摇动水" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "用于特定语言的字体。" + +#, fuzzy +#~ msgid "Shadow limit" +#~ msgstr "地图块限制" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueType 字体或位图的路径。" + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "巨大洞穴深度" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 支持。" + +#~ msgid "Gamma" +#~ msgstr "伽马" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "字体阴影不透明度(0-255)。" + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "启用电影基调映射" + +#~ msgid "Enable VBO" +#~ msgstr "启用 VBO" #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." #~ msgstr "" -#~ "调整亮度表的伽玛编码。较高的数值会较亮。\n" -#~ "这个设定是给客户端使用的,会被服务器忽略。" +#~ "定义 floatland 平滑地形的区域。\n" +#~ "当噪音0时, 平滑的 floatlands 发生。" -#~ msgid "Are you sure to reset your singleplayer world?" -#~ msgstr "你确定要重置你的单人世界吗?" +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "地图生成器平面湖坡度" -#~ msgid "Back" -#~ msgstr "后退" - -#~ msgid "Bump Mapping" -#~ msgstr "凹凸贴图" - -#~ msgid "Bumpmapping" -#~ msgstr "凹凸贴图" - -#~ msgid "" -#~ "Changes the main menu UI:\n" -#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " -#~ "chooser, etc.\n" -#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " -#~ "be\n" -#~ "necessary for smaller screens." -#~ msgstr "" -#~ "主菜单UI的变化:\n" -#~ "- 完整 多个单人世界,子游戏选择,材质包选择器等。\n" -#~ "- 简单:单个单人世界,无子游戏材质包选择器。可能\n" -#~ "需要用于小屏幕。" - -#~ msgid "Config mods" -#~ msgstr "配置 mod" - -#~ msgid "Configure" -#~ msgstr "配置" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "控制隧道宽度,较小的值创建更宽的隧道。" #, fuzzy #~ msgid "" @@ -7215,198 +7099,28 @@ msgstr "cURL 超时" #~ "控制 floatland 地形的密度。\n" #~ "是添加到 \"np_mountain\" 噪声值的偏移量。" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "控制隧道宽度,较小的值创建更宽的隧道。" - -#~ msgid "Crosshair color (R,G,B)." -#~ msgstr "准星颜色(红,绿,蓝)。" - -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "地图生成器平面湖坡度" - #~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." #~ msgstr "" -#~ "定义 floatland 平滑地形的区域。\n" -#~ "当噪音0时, 平滑的 floatlands 发生。" - -#~ msgid "" -#~ "Defines sampling step of texture.\n" -#~ "A higher value results in smoother normal maps." -#~ msgstr "" -#~ "定义材质采样步骤。\n" -#~ "数值越高常态贴图越平滑。" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "正在下载和安装 $1,请稍等..." - -#~ msgid "Enable VBO" -#~ msgstr "启用 VBO" - -#~ msgid "" -#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " -#~ "texture pack\n" -#~ "or need to be auto-generated.\n" -#~ "Requires shaders to be enabled." -#~ msgstr "" -#~ "启用材质的凹凸贴图效果。需要材质包支持法线贴图,\n" -#~ "否则将自动生成法线。\n" -#~ "需要启用着色器。" - -#~ msgid "Enables filmic tone mapping" -#~ msgstr "启用电影基调映射" - -#~ msgid "" -#~ "Enables on the fly normalmap generation (Emboss effect).\n" -#~ "Requires bumpmapping to be enabled." -#~ msgstr "" -#~ "启用即时法线贴图生成(浮雕效果)。\n" -#~ "需要启用凹凸贴图。" - -#~ msgid "" -#~ "Enables parallax occlusion mapping.\n" -#~ "Requires shaders to be enabled." -#~ msgstr "" -#~ "启用视差遮蔽贴图。\n" -#~ "需要启用着色器。" - -#~ msgid "" -#~ "Experimental option, might cause visible spaces between blocks\n" -#~ "when set to higher number than 0." -#~ msgstr "" -#~ "实验性选项,设为大于 0 的数字时可能导致\n" -#~ "块之间出现可见空间。" - -#~ msgid "FPS in pause menu" -#~ msgstr "暂停菜单 FPS" - -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "字体阴影不透明度(0-255)。" - -#~ msgid "Gamma" -#~ msgstr "伽马" - -#~ msgid "Generate Normal Maps" -#~ msgstr "生成法线贴图" - -#~ msgid "Generate normalmaps" -#~ msgstr "生成发现贴图" - -#~ msgid "IPv6 support." -#~ msgstr "IPv6 支持。" - -#, fuzzy -#~ msgid "Lava depth" -#~ msgstr "巨大洞穴深度" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "磁盘上的生产队列限制" - -#~ msgid "Main" -#~ msgstr "主菜单" - -#~ msgid "Main menu style" -#~ msgstr "主菜单样式" - -#~ msgid "Minimap in radar mode, Zoom x2" -#~ msgstr "雷达小地图,放大至两倍" - -#~ msgid "Minimap in radar mode, Zoom x4" -#~ msgstr "雷达小地图, 放大至四倍" - -#~ msgid "Minimap in surface mode, Zoom x2" -#~ msgstr "地表模式小地图, 放大至两倍" - -#~ msgid "Minimap in surface mode, Zoom x4" -#~ msgstr "地表模式小地图, 放大至四倍" - -#~ msgid "Name/Password" -#~ msgstr "用户名/密码" - -#~ msgid "No" -#~ msgstr "否" - -#~ msgid "Normalmaps sampling" -#~ msgstr "法线贴图采样" - -#~ msgid "Normalmaps strength" -#~ msgstr "法线贴图强度" - -#~ msgid "Number of parallax occlusion iterations." -#~ msgstr "视差遮蔽迭代数。" - -#~ msgid "Ok" -#~ msgstr "确定" - -#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." -#~ msgstr "视差遮蔽效果的整体斜纹,通常为比例/2。" - -#~ msgid "Overall scale of parallax occlusion effect." -#~ msgstr "视差遮蔽效果的总体比例。" - -#~ msgid "Parallax Occlusion" -#~ msgstr "视差遮蔽" - -#~ msgid "Parallax occlusion" -#~ msgstr "视差遮蔽" - -#~ msgid "Parallax occlusion bias" -#~ msgstr "视差遮蔽偏移" - -#~ msgid "Parallax occlusion iterations" -#~ msgstr "视差遮蔽迭代" - -#~ msgid "Parallax occlusion mode" -#~ msgstr "视差遮蔽模式" - -#~ msgid "Parallax occlusion scale" -#~ msgstr "视差遮蔽比例" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "视差遮蔽强度" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "TrueType 字体或位图的路径。" +#~ "调整亮度表的伽玛编码。较高的数值会较亮。\n" +#~ "这个设定是给客户端使用的,会被服务器忽略。" #~ msgid "Path to save screenshots at." #~ msgstr "屏幕截图保存路径。" -#~ msgid "Reset singleplayer world" -#~ msgstr "重置单人世界" +#~ msgid "Parallax occlusion strength" +#~ msgstr "视差遮蔽强度" -#~ msgid "Select Package File:" -#~ msgstr "选择包文件:" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "磁盘上的生产队列限制" -#, fuzzy -#~ msgid "Shadow limit" -#~ msgstr "地图块限制" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "正在下载和安装 $1,请稍等..." -#~ msgid "Start Singleplayer" -#~ msgstr "单人游戏" +#~ msgid "Back" +#~ msgstr "后退" -#~ msgid "Strength of generated normalmaps." -#~ msgstr "生成的一般地图强度。" - -#~ msgid "This font will be used for certain languages." -#~ msgstr "用于特定语言的字体。" - -#~ msgid "Toggle Cinematic" -#~ msgstr "切换电影模式" - -#~ msgid "View" -#~ msgstr "视野" - -#~ msgid "Waving Water" -#~ msgstr "流动的水面" - -#~ msgid "Waving water" -#~ msgstr "摇动水" - -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "大型随机洞穴的Y轴最大值。" - -#~ msgid "Yes" -#~ msgstr "是" +#~ msgid "Ok" +#~ msgstr "确定" diff --git a/po/zh_TW/minetest.po b/po/zh_TW/minetest.po index 598777a62..99a9da965 100644 --- a/po/zh_TW/minetest.po +++ b/po/zh_TW/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Chinese (Traditional) (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-30 21:13+0100\n" -"PO-Revision-Date: 2021-01-24 16:19+0000\n" -"Last-Translator: AISS \n" +"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"PO-Revision-Date: 2020-12-24 05:29+0000\n" +"Last-Translator: Man Ho Yiu \n" "Language-Team: Chinese (Traditional) \n" "Language: zh_TW\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,6 +23,7 @@ msgid "You died" msgstr "您已死亡" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp +#, fuzzy msgid "OK" msgstr "OK" @@ -46,6 +47,10 @@ msgstr "重新連線" msgid "The server has requested a reconnect:" msgstr "伺服器已要求重新連線:" +#: builtin/mainmenu/common.lua src/client/game.cpp +msgid "Loading..." +msgstr "正在載入..." + #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "協定版本不符合。 " @@ -58,6 +63,10 @@ msgstr "伺服器強制協定版本 $1。 " msgid "Server supports protocol versions between $1 and $2. " msgstr "伺服器支援協定版本 $1 到 $2。 " +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "請嘗試重新啟用公共伺服器清單並檢查您的網際網路連線。" + #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "我們只支援協定版本 $1。" @@ -66,8 +75,7 @@ msgstr "我們只支援協定版本 $1。" msgid "We support protocol versions between version $1 and $2." msgstr "我們支援協定版本 $1 到 $2。" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -77,8 +85,7 @@ msgstr "我們支援協定版本 $1 到 $2。" msgid "Cancel" msgstr "取消" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "相依元件:" @@ -149,60 +156,21 @@ msgstr "世界:" msgid "enabled" msgstr "已啟用" -#: builtin/mainmenu/dlg_contentstore.lua -msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "$1 and $2 dependencies will be installed." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "$1 by $2" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "" -"$1 downloading,\n" -"$2 queued" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "$1 downloading..." -msgstr "正在載入..." - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "$1 required dependencies could not be found." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" - #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "所有套件" -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "Already installed" -msgstr "已使用此按鍵" - #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "返回主選單" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy -msgid "Base Game:" -msgstr "主持遊戲" - -#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "在沒有cURL的情況下編譯Minetest時,ContentDB不可用" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "Downloading..." msgstr "正在載入..." @@ -219,16 +187,6 @@ msgstr "遊戲" msgid "Install" msgstr "安裝" -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "Install $1" -msgstr "安裝" - -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "Install missing dependencies" -msgstr "可選相依元件:" - #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -243,26 +201,9 @@ msgid "No results" msgstr "無結果" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "No updates" -msgstr "更新" - -#: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy -msgid "Not found" -msgstr "靜音" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Overwrite" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Please check that the base game is correct." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Queued" -msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "搜尋" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -277,18 +218,15 @@ msgid "Update" msgstr "更新" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Update All [$1]" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "View more information in a web browser" -msgstr "" +msgid "View" +msgstr "查看" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" msgstr "名為「$1」的世界已存在" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Additional terrain" msgstr "其他地形" @@ -297,23 +235,24 @@ msgid "Altitude chill" msgstr "寒冷海拔" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Altitude dry" msgstr "寒冷海拔" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Biome blending" -msgstr "生物群落" +msgstr "生物雜訊" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Biomes" -msgstr "生物群落" +msgstr "生物雜訊" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Caverns" -msgstr "洞穴" +msgstr "洞穴雜訊" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -363,7 +302,7 @@ msgstr "遊戲" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "生成曲線或幾何地形:海洋和地下" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" @@ -421,11 +360,11 @@ msgstr "未選擇遊戲" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "隨海拔降低熱量" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "濕度隨海拔升高而降低" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -463,11 +402,11 @@ msgstr "溫帶沙漠" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "溫帶、沙漠、叢林" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "溫帶,沙漠,叢林,苔原,針葉林" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -476,7 +415,7 @@ msgstr "地形基礎高度" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "樹木和叢林草" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -567,7 +506,7 @@ msgstr "已啟用" #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Lacunarity" -msgstr "空隙" +msgstr "Lacunarity" #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy @@ -599,10 +538,6 @@ msgstr "還原至預設值" msgid "Scale" msgstr "規模" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Search" -msgstr "搜尋" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "選擇目錄" @@ -718,14 +653,6 @@ msgstr "無法將 Mod 安裝為 $1" msgid "Unable to install a modpack as a $1" msgstr "無法將 Mod 包安裝為 $1" -#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp -msgid "Loading..." -msgstr "正在載入..." - -#: builtin/mainmenu/serverlistmgr.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "請嘗試重新啟用公共伺服器清單並檢查您的網際網路連線。" - #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "瀏覽線上內容" @@ -778,17 +705,6 @@ msgstr "核心開發者" msgid "Credits" msgstr "感謝" -#: builtin/mainmenu/tab_credits.lua -#, fuzzy -msgid "Open User Data Directory" -msgstr "選擇目錄" - -#: builtin/mainmenu/tab_credits.lua -msgid "" -"Opens the directory that contains user-provided worlds, games, mods,\n" -"and texture packs in a file manager / explorer." -msgstr "" - #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "先前的貢獻者" @@ -806,10 +722,14 @@ msgid "Bind Address" msgstr "綁定地址" #: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "設定" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "創造模式" -#: builtin/mainmenu/tab_local.lua +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Enable Damage" msgstr "啟用傷害" @@ -827,8 +747,8 @@ msgid "Install games from ContentDB" msgstr "從ContentDB安裝遊戲" #: builtin/mainmenu/tab_local.lua -msgid "Name" -msgstr "" +msgid "Name/Password" +msgstr "名稱/密碼" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -838,11 +758,6 @@ msgstr "新增" msgid "No world created or selected!" msgstr "未建立或選取世界!" -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Password" -msgstr "新密碼" - #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "遊玩遊戲" @@ -851,11 +766,6 @@ msgstr "遊玩遊戲" msgid "Port" msgstr "連線埠" -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Select Mods" -msgstr "選取世界:" - #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "選取世界:" @@ -872,23 +782,23 @@ msgstr "開始遊戲" msgid "Address / Port" msgstr "地址/連線埠" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Connect" msgstr "連線" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative mode" msgstr "創造模式" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Damage enabled" msgstr "已啟用傷害" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Del. Favorite" msgstr "刪除收藏" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Favorite" msgstr "收藏" @@ -896,16 +806,16 @@ msgstr "收藏" msgid "Join Game" msgstr "加入遊戲" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Name / Password" msgstr "名稱/密碼" -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua msgid "PvP enabled" msgstr "已啟用 PvP" @@ -933,6 +843,10 @@ msgstr "所有設定" msgid "Antialiasing:" msgstr "反鋸齒:" +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "您確定要重設您的單人遊戲世界嗎?" + #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "自動儲存螢幕大小" @@ -941,6 +855,10 @@ msgstr "自動儲存螢幕大小" msgid "Bilinear Filter" msgstr "雙線性過濾器" +#: builtin/mainmenu/tab_settings.lua +msgid "Bump Mapping" +msgstr "映射貼圖" + #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "變更按鍵" @@ -953,6 +871,10 @@ msgstr "連接玻璃" msgid "Fancy Leaves" msgstr "華麗葉子" +#: builtin/mainmenu/tab_settings.lua +msgid "Generate Normal Maps" +msgstr "產生一般地圖" + #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mip 貼圖" @@ -961,6 +883,10 @@ msgstr "Mip 貼圖" msgid "Mipmap + Aniso. Filter" msgstr "Mip 貼圖 + Aniso. 過濾器" +#: builtin/mainmenu/tab_settings.lua +msgid "No" +msgstr "否" + #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "沒有過濾器" @@ -989,10 +915,18 @@ msgstr "不透明葉子" msgid "Opaque Water" msgstr "不透明水" +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "視差遮蔽" + #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "粒子" +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "重設單人遊戲世界" + #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "螢幕:" @@ -1005,11 +939,6 @@ msgstr "設定" msgid "Shaders" msgstr "著色器" -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Shaders (experimental)" -msgstr "浮地高度" - #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "著色器(無法使用)" @@ -1054,6 +983,22 @@ msgstr "擺動液體" msgid "Waving Plants" msgstr "植物擺動" +#: builtin/mainmenu/tab_settings.lua +msgid "Yes" +msgstr "是" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Config mods" +msgstr "設定 Mod" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Main" +msgstr "主要" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Start Singleplayer" +msgstr "開始單人遊戲" + #: src/client/client.cpp msgid "Connection timed out." msgstr "連線逾時。" @@ -1208,20 +1153,20 @@ msgid "Continue" msgstr "繼續" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb up\n" -"- %s: dig/punch\n" -"- %s: place/use\n" -"- %s: sneak/climb down\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1368,6 +1313,34 @@ msgstr "MiB/秒" msgid "Minimap currently disabled by game or mod" msgstr "迷你地圖目前已被遊戲或 Mod 停用" +#: src/client/game.cpp +msgid "Minimap hidden" +msgstr "已隱藏迷你地圖" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x1" +msgstr "雷達模式的迷你地圖,放大 1 倍" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x2" +msgstr "雷達模式的迷你地圖,放大 2 倍" + +#: src/client/game.cpp +msgid "Minimap in radar mode, Zoom x4" +msgstr "雷達模式的迷你地圖,放大 4 倍" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x1" +msgstr "表面模式的迷你地圖,放大 1 倍" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x2" +msgstr "表面模式的迷你地圖,放大 2 倍" + +#: src/client/game.cpp +msgid "Minimap in surface mode, Zoom x4" +msgstr "表面模式的迷你地圖,放大 4 倍" + #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "已停用穿牆模式" @@ -1761,25 +1734,6 @@ msgstr "X 按鈕 2" msgid "Zoom" msgstr "遠近調整" -#: src/client/minimap.cpp -msgid "Minimap hidden" -msgstr "已隱藏迷你地圖" - -#: src/client/minimap.cpp -#, fuzzy, c-format -msgid "Minimap in radar mode, Zoom x%d" -msgstr "雷達模式的迷你地圖,放大 1 倍" - -#: src/client/minimap.cpp -#, fuzzy, c-format -msgid "Minimap in surface mode, Zoom x%d" -msgstr "表面模式的迷你地圖,放大 1 倍" - -#: src/client/minimap.cpp -#, fuzzy -msgid "Minimap in texture mode" -msgstr "過濾器的最大材質大小" - #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "密碼不符合!" @@ -1999,13 +1953,12 @@ msgstr "" "如停用,虛擬搖桿將會置中於第一個觸碰的位置。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "(Android) Use virtual joystick to trigger \"aux\" button.\n" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." -msgstr "" -"(Android)使用虛擬操縱桿觸發“aux”按鈕。\n" -"如果啟用,則虛擬遊戲桿也會在離開主圓時點擊“aux”按鈕。" +msgstr "(Android) 使用虛擬搖桿觸發 \"aux\" 按鍵。\n" #: src/settings_translation_file.cpp #, fuzzy @@ -2020,16 +1973,11 @@ msgid "" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" "在「比例尺」中單位的 (X,Y,Z) 偏移。\n" -"可用於將所需點移動到(0, 0)以創建一個。\n" -"合適的生成點,或允許“放大”所需的點。\n" -"通過增加“規模”來確定。\n" -"默認值已調整為Mandelbrot合適的生成點。\n" -"設置默認參數,可能需要更改其他參數。\n" -"情況。\n" -"範圍大約在 -2 至 2 間。乘以“比例”可得出節點的偏移值。" +"用於移動適合的低地生成區域靠近 (0, 0)。\n" +"預設值適合曼德博集合,若要用於朱利亞集合則必須修改。\n" +"範圍大約在 -2 至 2 間。乘以節點的偏移值。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "(X,Y,Z) scale of fractal in nodes.\n" "Actual fractal size will be 2 to 3 times larger.\n" @@ -2039,13 +1987,14 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" -"節點的分形幾何的(X,Y,Z)比例。\n" -"實際分形大小將是2到3倍。\n" -"這些數字可以做得很大,分形確實。\n" -"不必適應世界。\n" -"增加這些以“放大”到分形的細節。\n" -"默認為適合於垂直壓扁的形狀。\n" -"一個島,將所有3個數字設置為原始形狀相等。" + +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" +"0 = 包含斜率資訊的視差遮蔽(較快)。\n" +"1 = 替換貼圖(較慢,較準確)。" #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." @@ -2109,10 +2058,6 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" -"3D噪聲定義了浮地結構。\n" -"如果更改為默認值,則可能需要噪聲“比例”(默認值為0.7)。\n" -"需要進行調整,因為當噪音達到。\n" -"值範圍約為-2.0到2.0。" #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2174,10 +2119,6 @@ msgstr "當伺服器關機時要顯示在所有用戶端上的訊息。" msgid "ABM interval" msgstr "ABM 間隔" -#: src/settings_translation_file.cpp -msgid "ABM time budget" -msgstr "" - #: src/settings_translation_file.cpp #, fuzzy msgid "Absolute limit of queued blocks to emerge" @@ -2236,11 +2177,6 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" -"調整浮游性地層的密度.\n" -"增加值以增加密度. 可以是正麵還是負麵的。\n" -"價值=0.0:50% o的體積是浮遊地。\n" -"值2.0(可以更高,取決於“mgv7_np_floatland”,總是測試。\n" -"肯定)創造一個固體浮游性地層。" #: src/settings_translation_file.cpp msgid "Advanced" @@ -2254,11 +2190,6 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" -"通過對其應用“gamma correction”來更改光曲線。\n" -"較高的值可使中等和較低的光照水平更亮。\n" -"值“ 1.0”使光曲線保持不變。\n" -"這僅對日光和人造光有重大影響。\n" -"光線,對自然的夜光影響很小。" #: src/settings_translation_file.cpp msgid "Always fly and fast" @@ -2270,7 +2201,7 @@ msgstr "環境遮蔽光" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "玩家每 10 秒能傳送的訊息量。" +msgstr "玩家每 10 秒能傳送的訊息量" #: src/settings_translation_file.cpp msgid "Amplifies the valleys." @@ -2310,15 +2241,14 @@ msgstr "慣性手臂" msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." -msgstr "" -"手臂慣性,使動作更加逼真。\n" -"相機移動時的手臂。" +msgstr "慣性手臂,當相機移動時提供更加真實的手臂運動。" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" msgstr "詢問是否在當機後重新連線" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "At this distance the server will aggressively optimize which blocks are sent " "to\n" @@ -2332,14 +2262,11 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" -"在這樣的距離下,伺服器將積極最佳化。\n" -"那些要傳送給用戶端的方塊。\n" -"較小的值可能會提升效能。\n" -"但代價是一些可見的彩現問題。\n" -"(有一些在水中與洞穴中的方塊將不會被彩現,\n" -"以及有時在陸地上)。\n" +"在這樣的距離下,伺服器將積極最佳化那些要傳送給用戶端的方塊。\n" +"較小的值可能會提升效能,但代價是一些可見的彩現問題。\n" +"(有一些在水中與洞穴中的方塊將不會被彩現,以及有時在陸地上)\n" "將此值設定為大於 max_block_send_distance 將會停用這個最佳化。\n" -"在地圖區塊中顯示(16 個節點)。" +"在地圖區塊中顯示(16 個節點)" #: src/settings_translation_file.cpp #, fuzzy @@ -2347,9 +2274,8 @@ msgid "Automatic forward key" msgstr "前進鍵" #: src/settings_translation_file.cpp -#, fuzzy msgid "Automatically jump up single-node obstacles." -msgstr "自動跳過單節點障礙物。" +msgstr "" #: src/settings_translation_file.cpp #, fuzzy @@ -2361,9 +2287,8 @@ msgid "Autosave screen size" msgstr "自動儲存視窗大小" #: src/settings_translation_file.cpp -#, fuzzy msgid "Autoscaling mode" -msgstr "自動縮放模式" +msgstr "" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2375,8 +2300,9 @@ msgid "Base ground level" msgstr "地面高度" #: src/settings_translation_file.cpp +#, fuzzy msgid "Base terrain height." -msgstr "基礎地形高度。" +msgstr "基礎地形高度" #: src/settings_translation_file.cpp msgid "Basic" @@ -2449,17 +2375,16 @@ msgid "Builtin" msgstr "內建" #: src/settings_translation_file.cpp -#, fuzzy +msgid "Bumpmapping" +msgstr "映射貼圖" + +#: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"相機在節點附近的“剪切平面附近”距離,介於0到0.25之間\n" -"僅適用於GLES平台。 大多數用戶不需要更改此設置。\n" -"增加可以減少較弱GPU上的偽影。\n" -"0.1 =默認值,0.25 =對於較弱的平板電腦來說是好的值。" #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2523,8 +2448,16 @@ msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -"光線曲線推進範圍中心。\n" -"0.0是最低光水平, 1.0是最高光水平." + +#: src/settings_translation_file.cpp +msgid "" +"Changes the main menu UI:\n" +"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " +"etc.\n" +"- Simple: One singleplayer world, no game or texture pack choosers. May " +"be\n" +"necessary for smaller screens." +msgstr "" #: src/settings_translation_file.cpp #, fuzzy @@ -2598,9 +2531,8 @@ msgid "Client side modding restrictions" msgstr "用戶端修改" #: src/settings_translation_file.cpp -#, fuzzy msgid "Client side node lookup range restriction" -msgstr "客戶端節點查找範圍限制" +msgstr "" #: src/settings_translation_file.cpp msgid "Climbing speed" @@ -2627,7 +2559,6 @@ msgid "Colored fog" msgstr "彩色迷霧" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Comma-separated list of flags to hide in the content repository.\n" "\"nonfree\" can be used to hide packages which do not qualify as 'free " @@ -2637,12 +2568,6 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" -"以逗號分隔的標誌列表,以隱藏在內容存儲庫中。\n" -"“ nonfree”可用於隱藏不符合“免費軟件”資格的軟件包,\n" -"由自由軟件基金會定義。\n" -"您還可以指定內容分級。\n" -"這些標誌獨立於Minetest版本,\n" -"因此請訪問https://content.minetest.net/help/content_flags/查看完整列表" #: src/settings_translation_file.cpp msgid "" @@ -2689,12 +2614,7 @@ msgid "Console height" msgstr "終端機高度" #: src/settings_translation_file.cpp -#, fuzzy msgid "ContentDB Flag Blacklist" -msgstr "ContentDB標誌黑名單列表" - -#: src/settings_translation_file.cpp -msgid "ContentDB Max Concurrent Downloads" msgstr "" #: src/settings_translation_file.cpp @@ -2717,18 +2637,18 @@ msgid "Controls" msgstr "控制" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Controls length of day/night cycle.\n" "Examples:\n" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" "控制日/夜循環的長度。\n" -"範例:\n" -"72 = 20分鐘,360 = 4分鐘,1 = 24小時,0 = 日/夜/一切保持不變。" +"範例:72 = 20分鐘,360 = 4分鐘,1 = 24小時,0 = 日/夜/一切保持不變。" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "控制液體的下沉速度。" +msgstr "" #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2739,15 +2659,11 @@ msgid "Controls steepness/height of hills." msgstr "控制山丘的陡度/深度。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Controls width of tunnels, a smaller value creates wider tunnels.\n" "Value >= 10.0 completely disables generation of tunnels and avoids the\n" "intensive noise calculations." msgstr "" -"控制隧道的寬度,較小的值將創建較寬的隧道。\n" -"值> = 10.0完全禁用了隧道的生成,並避免了\n" -"密集的噪聲計算。" #: src/settings_translation_file.cpp msgid "Crash message" @@ -2762,10 +2678,7 @@ msgid "Crosshair alpha" msgstr "十字 alpha 值" #: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Crosshair alpha (opaqueness, between 0 and 255).\n" -"Also controls the object crosshair color" +msgid "Crosshair alpha (opaqueness, between 0 and 255)." msgstr "十字 alpha 值(不透明,0 至 255間)。" #: src/settings_translation_file.cpp @@ -2773,10 +2686,8 @@ msgid "Crosshair color" msgstr "十字色彩" #: src/settings_translation_file.cpp -msgid "" -"Crosshair color (R,G,B).\n" -"Also controls the object crosshair color" -msgstr "" +msgid "Crosshair color (R,G,B)." +msgstr "十字色彩 (R,G,B)。" #: src/settings_translation_file.cpp msgid "DPI" @@ -2805,7 +2716,7 @@ msgstr "音量減少鍵" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistance to movement." -msgstr "減小此值可增加液體的運動阻力。" +msgstr "" #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2882,6 +2793,14 @@ msgstr "定義大型河道結構。" msgid "Defines location and terrain of optional hills and lakes." msgstr "定義可選的山丘與湖泊的位置與地形。" +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" +"定義材質的採樣步驟。\n" +"較高的值會有較平滑的一般地圖。" + #: src/settings_translation_file.cpp #, fuzzy msgid "Defines the base ground level." @@ -2962,11 +2881,6 @@ msgstr "" msgid "Desynchronize block animation" msgstr "異步化方塊動畫" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Dig key" -msgstr "右鍵" - #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "挖掘粒子" @@ -3017,8 +2931,6 @@ msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." msgstr "" -"啟用IPv6支持(針對客戶端和服務器)。\n" -"IPv6連接需要它。" #: src/settings_translation_file.cpp msgid "" @@ -3042,8 +2954,9 @@ msgid "Enable joysticks" msgstr "啟用搖桿" #: src/settings_translation_file.cpp +#, fuzzy msgid "Enable mod channels support." -msgstr "啟用Mod Channels支持。" +msgstr "啟用 mod 安全性" #: src/settings_translation_file.cpp msgid "Enable mod security" @@ -3059,15 +2972,13 @@ msgstr "啟用隨機使用者輸入(僅供測試使用)。" #: src/settings_translation_file.cpp msgid "Enable register confirmation" -msgstr "啟用註冊確認" +msgstr "" #: src/settings_translation_file.cpp msgid "" "Enable register confirmation when connecting to server.\n" "If disabled, new account will be registered automatically." msgstr "" -"連接到服務器時啟用註冊確認。\n" -"如果禁用,新帳戶將自動註冊。" #: src/settings_translation_file.cpp msgid "" @@ -3105,8 +3016,6 @@ msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" -"啟用最好圖形緩衝.\n" -"這將大大提高圖形性能。" #: src/settings_translation_file.cpp msgid "" @@ -3128,22 +3037,28 @@ msgstr "" "當 bind_address 被設定時將會被忽略。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enables Hable's 'Uncharted 2' filmic tone mapping.\n" "Simulates the tone curve of photographic film and how this approximates the\n" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" -"啟用Hable的“Uncharted 2”電影色調映射。\n" -"模擬攝影膠片的色調曲線,\n" -"以及它如何近似高動態範圍圖像的外觀。\n" -"中檔對比度略微增強,高光和陰影逐漸壓縮。" #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." msgstr "啟用物品欄物品動畫。" +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" +"為材質啟用貼圖轉儲。普通地圖需要材質包的支援\n" +"或是自動生成。\n" +"必須啟用著色器。" + #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "啟用面旋轉方向的網格快取。" @@ -3152,6 +3067,22 @@ msgstr "啟用面旋轉方向的網格快取。" msgid "Enables minimap." msgstr "啟用小地圖。" +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" +"啟用忙碌的一般地圖生成(浮雕效果)。\n" +"必須啟用貼圖轉儲。" + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" +"啟用視差遮蔽貼圖。\n" +"必須啟用著色器。" + #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3159,10 +3090,6 @@ msgid "" "sound controls will be non-functional.\n" "Changing this setting requires a restart." msgstr "" -"啟用聲音系統。\n" -"如果禁用,則將完全禁用所有聲音以及遊戲中的所有聲音。\n" -"聲音控件將不起作用。\n" -"更改此設置需要重新啟動。" #: src/settings_translation_file.cpp msgid "Engine profiling data print interval" @@ -3172,6 +3099,14 @@ msgstr "引擎性能資料印出間隔" msgid "Entity methods" msgstr "主體方法" +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" +"實驗性選項,當設定到大於零的值時\n" +"也許會造成在方塊間有視覺空隙。" + #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3181,17 +3116,10 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" -"逐漸縮小的指數。 更改逐漸變細的行為。\n" -"值= 1.0會創建均勻的線性錐度。\n" -"值> 1.0會創建適合於默認分隔的平滑錐形\n" -"浮地。\n" -"值<1.0(例如0.25)可使用\n" -"平坦的低地,適用於堅固的浮遊地層。" #: src/settings_translation_file.cpp -#, fuzzy -msgid "FPS when unfocused or paused" -msgstr "當遊戲暫停時的最高 FPS。" +msgid "FPS in pause menu" +msgstr "在暫停選單中的 FPS" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3256,13 +3184,13 @@ msgid "Field of view in degrees." msgstr "以度計算的視野。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "File in client/serverlist/ that contains your favorite servers displayed in " "the\n" "Multiplayer Tab." msgstr "" -"在 用戶端/伺服器清單/ 中的檔案包含了顯示在。\n" -"多人遊戲分頁中您最愛的伺服器。" +"在 用戶端/伺服器清單/ 中的檔案包含了顯示在多人遊戲分頁中您最愛的伺服器。" #: src/settings_translation_file.cpp #, fuzzy @@ -3307,9 +3235,8 @@ msgid "Fixed map seed" msgstr "固定的地圖種子" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fixed virtual joystick" -msgstr "固定虛擬遊戲桿" +msgstr "" #: src/settings_translation_file.cpp #, fuzzy @@ -3368,11 +3295,11 @@ msgstr "霧氣切換鍵" #: src/settings_translation_file.cpp msgid "Font bold by default" -msgstr "字體默認為粗體" +msgstr "" #: src/settings_translation_file.cpp msgid "Font italic by default" -msgstr "字體默認為斜體" +msgstr "" #: src/settings_translation_file.cpp msgid "Font shadow" @@ -3387,28 +3314,22 @@ msgid "Font size" msgstr "字型大小" #: src/settings_translation_file.cpp -#, fuzzy msgid "Font size of the default font in point (pt)." -msgstr "默認字體的字體大小,以(pt)為單位。" +msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Font size of the fallback font in point (pt)." -msgstr "後備字體的字體大小,以(pt)為單位。" +msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Font size of the monospace font in point (pt)." -msgstr "以点为单位的单空格字体的字体大小,以(pt)為單位。" +msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" -"最近的聊天文本和聊天提示的字體大小,以(pt)為單位。\n" -"值0將使用默認字體大小。" #: src/settings_translation_file.cpp msgid "" @@ -3425,19 +3346,19 @@ msgstr "螢幕截圖的格式。" #: src/settings_translation_file.cpp msgid "Formspec Default Background Color" -msgstr "Formspec默認背景色" +msgstr "" #: src/settings_translation_file.cpp msgid "Formspec Default Background Opacity" -msgstr "Formspec默認背景不透明度" +msgstr "" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" -msgstr "Formspec全屏背景色" +msgstr "" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" -msgstr "Formspec全屏背景不透明度" +msgstr "" #: src/settings_translation_file.cpp #, fuzzy @@ -3492,7 +3413,6 @@ msgid "" msgstr "要把多遠的區塊送到用戶端,以地圖區塊計算(16 個節點)。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "From how far clients know about objects, stated in mapblocks (16 nodes).\n" "\n" @@ -3500,11 +3420,6 @@ msgid "" "to maintain active objects up to this distance in the direction the\n" "player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" -"客戶端了解對象的程度,以mapblocks(16個節點)表示。\n" -"\n" -"將此值設置為大於active_block_range也會導致服務器。\n" -"使活動物體在以下方向上保持此距離。\n" -"玩家正在尋找。 (這可以避免小怪突然從視線中消失)" #: src/settings_translation_file.cpp msgid "Full screen" @@ -3530,6 +3445,10 @@ msgstr "圖形使用者介面縮放過濾器" msgid "GUI scaling filter txr2img" msgstr "圖形使用者介面縮放比例過濾器 txr2img" +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "生成一般地圖" + #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "全域回呼" @@ -3542,26 +3461,22 @@ msgid "" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" "全域地圖產生屬性。\n" -"在 Mapgen v6 中,「decorations」旗標控制所有除了樹木。\n" +"在 Mapgen v6 中,「decorations」旗標控制所有除了樹木\n" "與叢林以外的裝飾,在其他所有的 mapgen 中,這個旗標控制所有裝飾。\n" -"未在旗標字串中指定的旗標將不會自預設值修改\n" -"以「no」開頭的旗標字串將會用於明確的停用它們" +"未在旗標字串中指定的旗標將不會自預設值修改。\n" +"以「no」開頭的旗標字串將會用於明確的停用它們。" #: src/settings_translation_file.cpp msgid "" "Gradient of light curve at maximum light level.\n" "Controls the contrast of the highest light levels." msgstr "" -"最大光水平下的光曲線漸變。\n" -"控制最高亮度的對比度。" #: src/settings_translation_file.cpp msgid "" "Gradient of light curve at minimum light level.\n" "Controls the contrast of the lowest light levels." msgstr "" -"最小光水平下的光曲線漸變。\n" -"控制最低亮度的對比度。" #: src/settings_translation_file.cpp msgid "Graphics" @@ -3596,8 +3511,8 @@ msgstr "HUD 切換鍵" #, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- none: Do not log deprecated calls\n" -"- log: mimic and log backtrace of deprecated call (default).\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "處理已棄用的 Lua API 呼叫:\n" @@ -3675,24 +3590,18 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" -"跳躍或墜落時空氣中的水平加速度,\n" -"以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" -"快速模式下的水平和垂直加速度,\n" -"以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" -"在地面或攀爬時的水平和垂直加速度,\n" -"以每秒節點數為單位。" #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3833,7 +3742,7 @@ msgstr "快捷列第 9 個槽的按鍵" #: src/settings_translation_file.cpp #, fuzzy msgid "How deep to make rivers." -msgstr "河流深度。" +msgstr "河流多深" #: src/settings_translation_file.cpp msgid "" @@ -3841,9 +3750,6 @@ msgid "" "If negative, liquid waves will move backwards.\n" "Requires waving liquids to be enabled." msgstr "" -"液體波將移動多快。 Higher = faster。\n" -"如果為負,則液體波將向後移動。\n" -"需要啟用波狀液體。" #: src/settings_translation_file.cpp msgid "" @@ -3856,7 +3762,7 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "How wide to make rivers." -msgstr "河流寬度。" +msgstr "河流多寬" #: src/settings_translation_file.cpp msgid "Humidity blend noise" @@ -3892,9 +3798,7 @@ msgid "" "If disabled, \"special\" key is used to fly fast if both fly and fast mode " "are\n" "enabled." -msgstr "" -"若停用,在飛行與快速模式皆啟用時,\n" -"「special」鍵將用於快速飛行。" +msgstr "若停用,在飛行與快速模式皆啟用時,「使用」鍵將用於快速飛行。" #: src/settings_translation_file.cpp msgid "" @@ -3924,9 +3828,7 @@ msgid "" "If enabled, \"special\" key instead of \"sneak\" key is used for climbing " "down and\n" "descending." -msgstr "" -"若啟用,向下爬與下降將使用。\n" -"「special」鍵而非「sneak」鍵。" +msgstr "若啟用,向下爬與下降將使用「使用」鍵而非「潛行」鍵。" #: src/settings_translation_file.cpp msgid "" @@ -3949,50 +3851,38 @@ msgstr "" "只在您知道您在幹嘛時才啟用這個選項。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." msgstr "" -"如果啟用,則在飛行或游泳時。\n" -"相對於玩家的俯仰方向做出移動方向。" #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." msgstr "若啟用,新玩家將無法以空密碼加入。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, you can place blocks at the position (feet + eye level) where " "you stand.\n" "This is helpful when working with nodeboxes in small areas." msgstr "" -"若啟用,您可以在您站立的位置(腳與眼睛的高度)放置方塊。\n" -"當在小區域裡與節點盒一同工作時非常有用。" +"若啟用,您可以在您站立的位置(腳與眼睛的高度)放置方塊。當在小區域裡與節點盒" +"一同工作時非常有用。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If the CSM restriction for node range is enabled, get_node calls are " "limited\n" "to this distance from the player to the node." msgstr "" -"如果啟用了節點範圍的CSM限制,則get_node調用將受到限制\n" -"從玩家到節點的這個距離。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If the file size of debug.txt exceeds the number of megabytes specified in\n" "this setting when it is opened, the file is moved to debug.txt.1,\n" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" -"如果debug.txt的文件大小超過在中指定的兆字節數\n" -"打開此設置後,文件將移至debug.txt.1,\n" -"刪除較舊的debug.txt.1(如果存在)。\n" -"僅當此設置為正時,才會移動debug.txt。" #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -4024,7 +3914,7 @@ msgstr "提高音量鍵" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "跳躍時的初始垂直速度,以每秒節點數為單位。" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -4107,17 +3997,12 @@ msgid "Iterations" msgstr "迭代" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Iterations of the recursive function.\n" "Increasing this increases the amount of fine detail, but also\n" "increases processing load.\n" "At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" -"遞歸函數的迭代。\n" -"增加它會增加細節的數量,而且。\n" -"增加處理負荷。\n" -"迭代次數iterations = 20時,此mapgen的負載與mapgen V7相似。" #: src/settings_translation_file.cpp msgid "Joystick ID" @@ -4127,11 +4012,6 @@ msgstr "搖桿 ID" msgid "Joystick button repetition interval" msgstr "搖桿按鈕重覆間隔" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Joystick deadzone" -msgstr "搖桿類型" - #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "搖桿靈敏度" @@ -4142,6 +4022,7 @@ msgid "Joystick type" msgstr "搖桿類型" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Julia set only.\n" "W component of hypercomplex constant.\n" @@ -4149,11 +4030,9 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" -"蝴蝶只設置蝴蝶。\n" -"超複雜常數的W分量。\n" -"改變分形的形狀。\n" -"對3D分形沒有影響。\n" -"範圍約為-2至2。" +"僅朱利亞集合:可交換超複數的 W 元素決定了 朱利亞形狀。\n" +"在 3D 碎形上沒有效果。\n" +"範圍約在 -2 至 2 間。" #: src/settings_translation_file.cpp #, fuzzy @@ -4163,10 +4042,9 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"蝴蝶只設置蝴蝶。\n" -"超複雜常數的X分量。\n" -"改變分形的形狀。\n" -"範圍約為-2至2。" +"僅朱利亞集合:可交換超複數的 X 元素決定了 朱利亞形狀。\n" +"在 3D 碎形上沒有效果。\n" +"範圍約在 -2 至 2 間。" #: src/settings_translation_file.cpp #, fuzzy @@ -4176,8 +4054,7 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"蝴蝶只設置蝴蝶\n" -"可交換超複數的 Y 元素決定了 蝴蝶形狀。\n" +"僅朱利亞集合:可交換超複數的 Y 元素決定了 朱利亞形狀。\n" "在 3D 碎形上沒有效果。\n" "範圍約在 -2 至 2 間。" @@ -4189,8 +4066,7 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"蝴蝶設置。\n" -"可交換超複數的 Z 元素決定了 蝴蝶形狀。\n" +"僅朱利亞集合:可交換超複數的 Z 元素決定了 朱利亞形狀。\n" "在 3D 碎形上沒有效果。\n" "範圍約在 -2 至 2 間。" @@ -4238,17 +4114,6 @@ msgstr "" "請見 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for digging.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"跳躍的按鍵。\n" -"請見 http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4308,7 +4173,6 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "將玩家往後方移動的按鍵。\n" -"在活躍時,還會禁用自動。\n" "請見 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4392,17 +4256,6 @@ msgstr "" "請見 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for placing.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"跳躍的按鍵。\n" -"請見 http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4938,9 +4791,8 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "踢每10秒發送超過X條信息的玩家。" +msgstr "" #: src/settings_translation_file.cpp msgid "Lake steepness" @@ -4960,11 +4812,11 @@ msgstr "大型洞穴深度" #: src/settings_translation_file.cpp msgid "Large cave maximum number" -msgstr "大洞穴最大數量" +msgstr "" #: src/settings_translation_file.cpp msgid "Large cave minimum number" -msgstr "大洞穴最小數量" +msgstr "" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" @@ -5000,9 +4852,7 @@ msgid "" "Length of a server tick and the interval at which objects are generally " "updated over\n" "network." -msgstr "" -"伺服器 tick 的長度與相關物件的間隔,\n" -"通常透過網路更新。" +msgstr "伺服器 tick 的長度與相關物件的間隔通常透過網路更新。" #: src/settings_translation_file.cpp #, fuzzy @@ -5049,28 +4899,27 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Light curve boost" -msgstr "光曲線增強" +msgstr "" #: src/settings_translation_file.cpp msgid "Light curve boost center" -msgstr "光曲線提升中心" +msgstr "" #: src/settings_translation_file.cpp msgid "Light curve boost spread" -msgstr "光曲線增強擴散" +msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve gamma" -msgstr "光線曲線伽瑪" +msgstr "" #: src/settings_translation_file.cpp msgid "Light curve high gradient" -msgstr "光曲線高漸變度" +msgstr "" #: src/settings_translation_file.cpp msgid "Light curve low gradient" -msgstr "光曲線低漸變度" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -5156,6 +5005,11 @@ msgstr "大型偽隨機洞穴的 Y 上限。" msgid "Main menu script" msgstr "主選單指令稿" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Main menu style" +msgstr "主選單指令稿" + #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5169,30 +5023,24 @@ msgstr "讓 DirectX 與 LuaJIT 一同運作。若其造成麻煩則請停用。" msgid "Makes all liquids opaque" msgstr "讓所有的液體不透明" -#: src/settings_translation_file.cpp -msgid "Map Compression Level for Disk Storage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map Compression Level for Network Transfer" -msgstr "" - #: src/settings_translation_file.cpp msgid "Map directory" msgstr "地圖目錄" #: src/settings_translation_file.cpp -#, fuzzy msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "Mapgen Carpathian特有的属性地图生成。" +msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" -"專用於 Mapgen Flat 的地圖生成屬性。\n" -"可能會有少數的湖泊或是丘陵會在扁平的世界中生成。" +"專用於 Mapgen flat 的地圖生成屬性。\n" +"可能會有少數的湖泊或是丘陵會在扁平的世界中生成。\n" +"未在旗標字串中指定的旗標將不會自預設值修改。\n" +"以「no」開頭的旗標字串將會用於明確的停用它們。" #: src/settings_translation_file.cpp #, fuzzy @@ -5201,12 +5049,12 @@ msgid "" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Mapgen Fractal特有的地圖生成屬性。\n" -"“terrain”可生成非幾何地形:\n" -"海洋,島嶼和地下。" +"專用於 Mapgen flat 的地圖生成屬性。\n" +"可能會有少數的湖泊或是丘陵會在扁平的世界中生成。\n" +"未在旗標字串中指定的旗標將不會自預設值修改。\n" +"以「no」開頭的旗標字串將會用於明確的停用它們。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Valleys.\n" "'altitude_chill': Reduces heat with altitude.\n" @@ -5215,17 +5063,10 @@ msgid "" "to become shallower and occasionally dry.\n" "'altitude_dry': Reduces humidity with altitude." msgstr "" -"Mapgen Valleys 山谷特有的地圖生成屬性。\n" -"'altitude_chill':隨高度降低熱量。\n" -"'humid_rivers':增加河流周圍的濕度。\n" -"'vary_river_depth':如果啟用,低濕度和高熱量會導致河流\n" -"變淺,偶爾變乾。\n" -"'altitude_dry':隨著海拔高度降低濕度。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Map generation attributes specific to Mapgen v5." -msgstr "Mapgen v5特有的地圖生成屬性。" +msgstr "" #: src/settings_translation_file.cpp #, fuzzy @@ -5235,10 +5076,12 @@ msgid "" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" -"Mapgen v6特有的地圖生成屬性。\n" -"“ snowbiomes”標誌啟用了新的5個生物群落系統。\n" -"啟用“ snowbiomes”標誌時,會自動啟用叢林並。\n" -"“叢林”標誌將被忽略。" +"專用於 Mapgen v6 的地圖生成屬性。\n" +"'snowbiomes' 旗標啟用了五個新的生態系。\n" +"當新的生態系啟用時,叢林生態系會自動啟用,\n" +"而 'jungles' 會被忽略。\n" +"未在旗標字串中指定的旗標將不會自預設值修改。\n" +"以「no」開頭的旗標字串將會用於明確的停用它們。" #: src/settings_translation_file.cpp #, fuzzy @@ -5380,8 +5223,7 @@ msgid "Maximum FPS" msgstr "最高 FPS" #: src/settings_translation_file.cpp -#, fuzzy -msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgid "Maximum FPS when game is paused." msgstr "當遊戲暫停時的最高 FPS。" #: src/settings_translation_file.cpp @@ -5394,30 +5236,24 @@ msgstr "快捷列最大寬度" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "每個地圖塊的大洞穴隨機數的最大限制。" +msgstr "" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "每個地圖塊隨機小洞數的最大限制。" +msgstr "" #: src/settings_translation_file.cpp msgid "" "Maximum liquid resistance. Controls deceleration when entering liquid at\n" "high speed." msgstr "" -"最大液體阻力。控制進入液體時的減速\n" -"高速。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks that are simultaneously sent per client.\n" "The maximum total count is calculated dynamically:\n" "max_total = ceil((#clients + max_users) * per_client / 4)" msgstr "" -"每個客戶端同時發送的最大塊數。\n" -"最大總數是動態計算的:\n" -"max_total = ceil((#clients + max_users)* per_client / 4)" #: src/settings_translation_file.cpp msgid "Maximum number of blocks that can be queued for loading." @@ -5441,13 +5277,6 @@ msgstr "" "可被放進佇列內等待從檔案載入的最大區塊數。\n" "將其設定留空則會自動選擇適當的值。" -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of concurrent downloads. Downloads exceeding this limit will " -"be queued.\n" -"This should be lower than curl_parallel_limit." -msgstr "" - #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "強制載入地圖區塊的最大數量。" @@ -5500,18 +5329,14 @@ msgid "Maximum simultaneous block sends per client" msgstr "每個用戶端最大同時傳送區塊數" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum size of the out chat queue" -msgstr "輸出聊天隊列的最大大小" +msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum size of the out chat queue.\n" "0 to disable queueing and -1 to make the queue size unlimited." msgstr "" -"輸出聊天隊列的最大大小。\n" -"0表示禁用排隊,-1表示隊列大小不受限制。" #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." @@ -5542,9 +5367,8 @@ msgid "Method used to highlight selected object." msgstr "用於突顯物件的方法。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimal level of logging to be written to chat." -msgstr "要寫入聊天記錄的最低級別。" +msgstr "" #: src/settings_translation_file.cpp msgid "Minimap" @@ -5560,11 +5384,11 @@ msgstr "迷你地圖掃描高度" #: src/settings_translation_file.cpp msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "每個地圖塊的大洞穴隨機數的最小限制。" +msgstr "" #: src/settings_translation_file.cpp msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "每個地圖塊隨機小洞數的最小限制。" +msgstr "" #: src/settings_translation_file.cpp #, fuzzy @@ -5576,9 +5400,8 @@ msgid "Mipmapping" msgstr "映射貼圖" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mod channels" -msgstr "Mod 清單" +msgstr "" #: src/settings_translation_file.cpp msgid "Modifies the size of the hudbar elements." @@ -5635,7 +5458,7 @@ msgstr "靜音按鍵" #: src/settings_translation_file.cpp msgid "Mute sound" -msgstr "靜音" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -5700,6 +5523,14 @@ msgstr "NodeTimer 間隔" msgid "Noises" msgstr "雜訊" +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "法線貼圖採樣" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "法線貼圖強度" + #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "出現的執行緒數" @@ -5728,9 +5559,13 @@ msgstr "" "這是與 sqlite 處理耗費的折衷與\n" "記憶體耗費(根據經驗,4096=100MB)。" +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "視差遮蔽迭代次數。" + #: src/settings_translation_file.cpp msgid "Online Content Repository" -msgstr "在線內容存儲庫" +msgstr "" #: src/settings_translation_file.cpp msgid "Opaque liquids" @@ -5739,22 +5574,48 @@ msgstr "不透明液體" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "默認字體後面的陰影的不透明(alpha),介於0和255之間。" +msgstr "" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "後備字體後面的陰影的不透明度(alpha),介於0和255之間。" +msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Open the pause menu when the window's focus is lost. Does not pause if a " "formspec is\n" "open." msgstr "" -"當窗口焦點丟失時,打開“暫停”菜單。如果formspec是\n" -"打開的。" + +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "視差遮蔽效果的總偏差,通常是規模/2。" + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "視差遮蔽效果的總規模。" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "視差遮蔽" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "視差遮蔽偏差" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "視差遮蔽迭代" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "視差遮蔽模式" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Parallax occlusion scale" +msgstr "視差遮蔽係數" #: src/settings_translation_file.cpp msgid "" @@ -5764,18 +5625,12 @@ msgid "" "This font will be used for certain languages or if the default font is " "unavailable." msgstr "" -"後備字體的路徑。\n" -"如果啟用“freetype”設置:必須是TrueType字體。\n" -"如果“freetype”設置被禁用:必須是位圖或XML矢量字體。\n" -"此字體將用於某些語言或默認字體不可用時。" #: src/settings_translation_file.cpp msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" -"保存截圖的路徑。可以是絕對路徑或相對路徑。\n" -"如果文件夾尚不存在,則將創建該文件夾。" #: src/settings_translation_file.cpp msgid "" @@ -5794,27 +5649,18 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "The fallback font will be used if the font cannot be loaded." msgstr "" -"默認字體的路徑。\n" -"如果啟用“freetype”設置:必須是TrueType字體。\n" -"如果“freetype”設置被禁用:必須是位圖或XML矢量字體。\n" -"如果無法加載字體,將使用後備字體。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Path to the monospace font.\n" "If “freetype” setting is enabled: Must be a TrueType font.\n" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "This font is used for e.g. the console and profiler screen." msgstr "" -"等寬字體的路徑。\n" -"如果啟用了“ freetype”設置:必須為TrueType字體。\n" -"如果禁用了“ freetype”設置:必須為位圖或XML矢量字體。\n" -"該字體用於例如 控制台和探查器屏幕。" #: src/settings_translation_file.cpp msgid "Pause on lost window focus" -msgstr "窗口焦點丟失時暫停" +msgstr "" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" @@ -5836,17 +5682,7 @@ msgstr "飛行按鍵" #: src/settings_translation_file.cpp msgid "Pitch move mode" -msgstr "俯仰移動模式" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Place key" -msgstr "飛行按鍵" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Place repetition interval" -msgstr "右鍵點擊重覆間隔" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -5882,20 +5718,17 @@ msgid "" "Prevent digging and placing from repeating when holding the mouse buttons.\n" "Enable this when you dig or place too often by accident." msgstr "" -"按住鼠標按鈕時,避免重複挖掘和放置。\n" -"當您意外挖掘或放置過多時,請啟用此功能。" #: src/settings_translation_file.cpp msgid "Prevent mods from doing insecure things like running shell commands." msgstr "避免 mod 做出不安全的舉動,像是執行 shell 指令等。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." -msgstr "" -"引擎性能資料印出間隔的秒數。\n" -"0 = 停用。對開發者有用。" +msgstr "引擎性能資料印出間隔的秒數。0 = 停用。對開發者有用。" #: src/settings_translation_file.cpp msgid "Privileges that players with basic_privs can grant" @@ -5939,8 +5772,9 @@ msgstr "" "大於 26 的值將會在雲的角落有銳角的產生。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Raises terrain to make valleys around the rivers." -msgstr "抬高地形,使河流周圍形成山谷。" +msgstr "提升地形以讓山谷在河流周圍" #: src/settings_translation_file.cpp msgid "Random input" @@ -5996,16 +5830,6 @@ msgid "" "csm_restriction_noderange)\n" "READ_PLAYERINFO: 32 (disable get_player_names call client-side)" msgstr "" -"限制對服務器上某些客戶端功能的訪問。\n" -"組合下面的字節標誌以限制客戶端功能,或設置為0\n" -"無限制:\n" -"LOAD_CLIENT_MODS:1(禁用加載客戶端提供的mod)\n" -"CHAT_MESSAGES:2(在客戶端禁用send_chat_message調用)\n" -"READ_ITEMDEFS:4(禁用get_item_def調用客戶端)\n" -"READ_NODEDEFS:8(禁用get_node_def調用客戶端)\n" -"LOOKUP_NODES_LIMIT:16(限制get_node調用客戶端到\n" -"csm_restriction_noderange)\n" -"READ_PLAYERINFO:32(禁用get_player_names調用客戶端)" #: src/settings_translation_file.cpp msgid "Ridge mountain spread noise" @@ -6027,6 +5851,10 @@ msgstr "山脊大小雜訊" msgid "Right key" msgstr "右鍵" +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "右鍵點擊重覆間隔" + #: src/settings_translation_file.cpp #, fuzzy msgid "River channel depth" @@ -6085,9 +5913,8 @@ msgid "Save the map received by the client on disk." msgstr "由用戶端儲存接收到的地圖到磁碟上。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Save window size automatically when modified." -msgstr "修改時自動保存窗口大小。" +msgstr "" #: src/settings_translation_file.cpp msgid "Saving map received from server" @@ -6294,14 +6121,14 @@ msgid "Shader path" msgstr "著色器路徑" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Shaders allow advanced visual effects and may increase performance on some " "video\n" "cards.\n" "This only works with the OpenGL video backend." msgstr "" -"著色器讓您可以有進階視覺效果並可能會在某些顯示卡上,\n" -"增強效能。\n" +"著色器讓您可以有進階視覺效果並可能會在某些顯示卡上增強效能。\n" "這僅在 OpenGL 視訊後端上才能運作。" #: src/settings_translation_file.cpp @@ -6330,15 +6157,6 @@ msgstr "顯示除錯資訊" msgid "Show entity selection boxes" msgstr "顯示物體選取方塊" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Show entity selection boxes\n" -"A restart is required after changing this." -msgstr "" -"設定語言。留空以使用系統語言。\n" -"變更後必須重新啟動以使其生效。" - #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "關閉訊息" @@ -6368,16 +6186,17 @@ msgid "Slice w" msgstr "切片 w" #: src/settings_translation_file.cpp +#, fuzzy msgid "Slope and fill work together to modify the heights." -msgstr "坡度與填充一同運作來修改高度。" +msgstr "坡度與填充一同運作來修改高度" #: src/settings_translation_file.cpp msgid "Small cave maximum number" -msgstr "小洞穴最大數量" +msgstr "" #: src/settings_translation_file.cpp msgid "Small cave minimum number" -msgstr "小洞穴最小數量" +msgstr "" #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." @@ -6417,9 +6236,8 @@ msgid "Sneaking speed" msgstr "走路速度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Sneaking speed, in nodes per second." -msgstr "潛行速度,以每秒節點數為單位。" +msgstr "" #: src/settings_translation_file.cpp msgid "Sound" @@ -6448,25 +6266,18 @@ msgstr "" "沒有在其中的檔案將會以平常的方式抓取。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Specifies the default stack size of nodes, items and tools.\n" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" -"指定節點、項和工具的默認堆棧大小。\n" -"請注意,mods或games可以顯式地為某些(或所有)項目設置堆棧。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Spread of light curve boost range.\n" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" -"傳播光曲線增強範圍。\n" -"控制要增加範圍的寬度。\n" -"光曲線的標準偏差增強了高斯。" #: src/settings_translation_file.cpp msgid "Static spawnpoint" @@ -6492,15 +6303,15 @@ msgid "Strength of 3D mode parallax." msgstr "視差強度。" #: src/settings_translation_file.cpp -#, fuzzy +msgid "Strength of generated normalmaps." +msgstr "生成之一般地圖的強度。" + +#: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" -"光強度曲線增強。\n" -"3個“ boost”參數定義光源的範圍\n" -"亮度增加的曲線。" #: src/settings_translation_file.cpp msgid "Strict protocol checking" @@ -6508,7 +6319,7 @@ msgstr "嚴格協議檢查" #: src/settings_translation_file.cpp msgid "Strip color codes" -msgstr "帶顏色代碼" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -6523,16 +6334,6 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" -"放置在固態漂浮面上的可選水的表面高度。\n" -"默認情況下禁用水,並且僅在設置了此值後才放置水\n" -"到'mgv7_floatland_ymax'-'mgv7_floatland_taper'(\n" -"上部逐漸變細)。\n" -"***警告,可能危害世界和服務器性能***:\n" -"啟用水位時,必須對浮地進行配置和測試\n" -"通過將'mgv7_floatland_density'設置為2.0(或其他\n" -"所需的值取決於“ mgv7_np_floatland”),以避免\n" -"服務器密集的極端水流,並避免大量洪水\n" -"下面的世界表面。" #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6592,7 +6393,6 @@ msgid "Texture path" msgstr "材質路徑" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Textures on a node may be aligned either to the node or to the world.\n" "The former mode suits better things like machines, furniture, etc., while\n" @@ -6601,21 +6401,10 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" -"節點上的紋理可以與節點對齊,也可以與世界對齊。\n" -"前一種模式適合機器,家具等更好的東西,而\n" -"後者使樓梯和微區塊更適合周圍環境。\n" -"但是,由於這種可能性是新的,因此較舊的服務器可能不會使用,\n" -"此選項允許對某些節點類型強制實施。 注意儘管\n" -"被認為是實驗性的,可能無法正常工作。" #: src/settings_translation_file.cpp msgid "The URL for the content repository" -msgstr "內容存儲庫的URL" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "The deadzone of the joystick" -msgstr "要使用的搖桿的識別碼" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -6626,8 +6415,9 @@ msgstr "" "當呼叫「/profiler save [格式]」但不包含格式時。" #: src/settings_translation_file.cpp +#, fuzzy msgid "The depth of dirt or other biome filler node." -msgstr "塵土或其他填充物的深度。" +msgstr "塵土或其他填充物的深度" #: src/settings_translation_file.cpp msgid "" @@ -6650,11 +6440,6 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" -"波動液體表面的最大高度。\n" -"4.0 =波高是兩個節點。\n" -"0.0 =波形完全不移動。\n" -"默認值為1.0(1/2節點)。\n" -"需要啟用波狀液體。" #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." @@ -6669,7 +6454,6 @@ msgstr "" "在遊戲中請見 /privs 以取得在您的伺服器上與 mod 設定的完整清單。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6679,27 +6463,16 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" -"每個玩家周圍的方塊體積的半徑受制於。\n" -"活動塊內容,以地图块(16個節點)表示。\n" -"在活動塊中,將加載對象並運行ABM。\n" -"這也是保持活動對象(生物)的最小範圍。\n" -"這應該與active_object_send_range_blocks一起配置。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended.\n" -"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +"On other platforms, OpenGL is recommended, and it’s the only driver with\n" +"shader support currently." msgstr "" -"Irrlicht的渲染後端。\n" -"更改此設置後需要重新啟動。\n" -"注意:在Android上,如果不確定,請堅持使用OGLES1! 應用可能無法啟動,否則。\n" -"在其他平台上,建議使用OpenGL,它是唯一具有以下功能的驅動程序。\n" -"目前支持著色器。" #: src/settings_translation_file.cpp msgid "" @@ -6731,12 +6504,6 @@ msgstr "" "超過時將會嘗試透過傾倒舊佇列項目減少其\n" "大小。將值設為 0 以停用此功能。" -#: src/settings_translation_file.cpp -msgid "" -"The time budget allowed for ABMs to execute on each step\n" -"(as a fraction of the ABM Interval)" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6748,11 +6515,10 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "" -"The time in seconds it takes between repeated node placements when holding\n" -"the place button." -msgstr "" -"當按住滑鼠右鍵時,\n" -"重覆右鍵點選的間隔以秒計。" +"The time in seconds it takes between repeated right clicks when holding the " +"right\n" +"mouse button." +msgstr "當按住滑鼠右鍵時,重覆右鍵點選的間隔以秒計。" #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6764,9 +6530,6 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" -"如果'altitude_chill'為,則熱量下降20的垂直距離\n" -"已啟用。 如果濕度下降的垂直距離也是10\n" -"已啟用“ altitude_dry”。" #: src/settings_translation_file.cpp msgid "Third of 4 2D noises that together define hill/mountain range height." @@ -6782,7 +6545,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "新世界開始的一天的時間,以毫秒為單位(0-23999)。" +msgstr "" #: src/settings_translation_file.cpp msgid "Time send interval" @@ -6851,6 +6614,7 @@ msgid "Undersampling" msgstr "Undersampling" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6858,8 +6622,7 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"Undersampling 類似於較低的螢幕解析度,\n" -"但其,\n" +"Undersampling 類似於較低的螢幕解析度,但其\n" "僅適用於遊戲世界,保持圖形使用者介面完好無損。\n" "它應該有顯著的效能提升,代價是細節較差的圖片。" @@ -6897,26 +6660,11 @@ msgid "Use bilinear filtering when scaling textures." msgstr "當縮放材質時使用雙線性過濾。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Use mip mapping to scale textures. May slightly increase performance,\n" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" -"使用Mip映射縮放紋理。 可能會稍微提高性能,\n" -"尤其是在使用高分辨率紋理包時。\n" -"不支持Gamma正確縮小。" - -#: src/settings_translation_file.cpp -msgid "" -"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" -"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" -"but it doesn't affect the insides of textures\n" -"(which is especially noticeable with transparent textures).\n" -"Visible spaces appear between nodes when shaders are disabled.\n" -"If set to 0, MSAA is disabled.\n" -"A restart is required after changing this option." -msgstr "" #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -6988,9 +6736,8 @@ msgid "Varies steepness of cliffs." msgstr "懸崖坡度變化。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Vertical climbing speed, in nodes per second." -msgstr "垂直爬升速度,以每秒節點數為單位。" +msgstr "" #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -7026,7 +6773,7 @@ msgstr "視野" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "虛擬操縱桿觸發aux按鈕" +msgstr "" #: src/settings_translation_file.cpp msgid "Volume" @@ -7052,23 +6799,20 @@ msgid "" msgstr "" "4D 碎形生成的 3D 切片的 W 座標。\n" "決定了會生成怎樣的 4D 形狀的 3D 切片。\n" -"改變碎形的形狀。\n" "對 3D 碎形沒有影響。\n" "範圍約在 -2 至 2 間。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Walking and flying speed, in nodes per second." -msgstr "行走和飛行速度,以每秒節點數為單位。" +msgstr "" #: src/settings_translation_file.cpp msgid "Walking speed" msgstr "走路速度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "快速模式下的行走,飛行和爬升速度,以每秒節點數為單位。" +msgstr "" #: src/settings_translation_file.cpp msgid "Water level" @@ -7133,6 +6877,7 @@ msgstr "" "來軟體支援不佳的顯示卡驅動程式使用。" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" "can be blurred, so automatically upscale them with nearest-neighbor\n" @@ -7144,14 +6889,12 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" -"當使用雙線性/三線性/各向異性過濾器時,低解析度材質。\n" -"會被模糊,所以會自動將大小縮放至最近的內插值。\n" -"以讓像素保持清晰。這會設定最小材質大小。\n" -"供放大材質使用;較高的值看起來較銳利,\n" -"但需要更多的記憶體。\n" -"建議為 2 的次方。將這個值設定高於 1 不會。\n" -"有任何視覺效果,\n" -"除非雙線性/三線性/各向異性過濾。\n" +"當使用雙線性/三線性/各向異性過濾器時,低解析度材質\n" +"會被模糊,所以會自動將大小縮放至最近的內插值\n" +"以讓像素保持清晰。這會設定最小材質大小\n" +"供放大材質使用;較高的值看起來較銳利,但需要更多的\n" +"記憶體。建議為 2 的次方。將這個值設定高於 1 不會\n" +"有任何視覺效果,除非雙線性/三線性/各向異性過濾\n" "已啟用。" #: src/settings_translation_file.cpp @@ -7160,9 +6903,7 @@ msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" -"是否使用 freetype 字型,\n" -"需要將 freetype 支援編譯進來。" +msgstr "是否使用 freetype 字型,需要將 freetype 支援編譯進來。" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7199,10 +6940,6 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" -"是否靜音。 您可以隨時取消靜音,除非\n" -"聲音系統已禁用(enable_sound = false)。\n" -"在遊戲中,您可以使用靜音鍵或通過使用靜音鍵來切換靜音狀態\n" -"暫停菜單。" #: src/settings_translation_file.cpp msgid "" @@ -7303,24 +7040,6 @@ msgstr "較低地形與湖底的 Y 高度。" msgid "Y-level of seabed." msgstr "海底的 Y 高度。" -#: src/settings_translation_file.cpp -msgid "" -"ZLib compression level to use when saving mapblocks to disk.\n" -"-1 - Zlib's default compression level\n" -"0 - no compresson, fastest\n" -"9 - best compression, slowest\n" -"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"ZLib compression level to use when sending mapblocks to the client.\n" -"-1 - Zlib's default compression level\n" -"0 - no compresson, fastest\n" -"9 - best compression, slowest\n" -"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" -msgstr "" - #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "cURL 檔案下載逾時" @@ -7333,51 +7052,81 @@ msgstr "cURL 並行限制" msgid "cURL timeout" msgstr "cURL 逾時" +#~ msgid "Toggle Cinematic" +#~ msgstr "切換過場動畫" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "選取 Mod 檔案:" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大型偽隨機洞穴的 Y 上限。" + +#~ msgid "Waving Water" +#~ msgstr "波動的水" + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "浮地陰影擴展的 Y 高度。" + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "浮地中點與湖表面的 Y 高度。" + +#~ msgid "Waving water" +#~ msgstr "波動的水" + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "在平整浮地地形的山丘高度與湖泊深度變化。" + +#, fuzzy #~ msgid "" -#~ "0 = parallax occlusion with slope information (faster).\n" -#~ "1 = relief mapping (slower, more accurate)." -#~ msgstr "" -#~ "0 = 包含斜率資訊的視差遮蔽(較快)。\n" -#~ "1 = 替換貼圖(較慢,較準確)。" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "浮地山區域的典型最大高度,高於與低於中點。" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "這個字型將會被用於特定的語言。" + +#~ msgid "Shadow limit" +#~ msgstr "陰影限制" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueType 字型或點陣字的路徑。" + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "大型洞穴深度" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 支援。" + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "字型陰影 alpha(不透明度,介於 0 到 255)。" + +#~ msgid "Floatland base height noise" +#~ msgstr "浮地基礎高度噪音" + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "啟用電影色調映射" + +#~ msgid "Enable VBO" +#~ msgstr "啟用 VBO" #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." #~ msgstr "" -#~ "調整亮度表的伽瑪編碼。較高的數值會較亮。\n" -#~ "這個設定是給客戶端使用的,會被伺服器忽略。" +#~ "定義浮地的平整地形區。\n" +#~ "平整的浮地會在噪音 > 0 時產生。" -#~ msgid "Are you sure to reset your singleplayer world?" -#~ msgstr "您確定要重設您的單人遊戲世界嗎?" +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "湖泊坡度" -#~ msgid "Back" -#~ msgstr "返回" - -#~ msgid "Bump Mapping" -#~ msgstr "映射貼圖" - -#~ msgid "Bumpmapping" -#~ msgstr "映射貼圖" - -#~ msgid "" -#~ "Changes the main menu UI:\n" -#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " -#~ "chooser, etc.\n" -#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " -#~ "be\n" -#~ "necessary for smaller screens." -#~ msgstr "" -#~ "更改主菜單用戶界面:\n" -#~ "-完整:多個單人遊戲世界,遊戲選擇,紋理包選擇器等。\n" -#~ "-簡單:一個單人遊戲世界,沒有遊戲或紋理包選擇器。 也許\n" -#~ "對於較小的屏幕是必需的。" - -#~ msgid "Config mods" -#~ msgstr "設定 Mod" - -#~ msgid "Configure" -#~ msgstr "設定" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "控制隧道的寬度,較小的值會創造出較寬的隧道。" #, fuzzy #~ msgid "" @@ -7387,217 +7136,28 @@ msgstr "cURL 逾時" #~ "控制山地的浮地密度。\n" #~ "是加入到 'np_mountain' 噪音值的補償。" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "控制隧道的寬度,較小的值會創造出較寬的隧道。" - -#~ msgid "Crosshair color (R,G,B)." -#~ msgstr "十字色彩 (R,G,B)。" - -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "湖泊坡度" - #~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." #~ msgstr "" -#~ "定義浮地的平整地形區。\n" -#~ "平整的浮地會在噪音 > 0 時產生。" - -#~ msgid "" -#~ "Defines sampling step of texture.\n" -#~ "A higher value results in smoother normal maps." -#~ msgstr "" -#~ "定義材質的採樣步驟。\n" -#~ "較高的值會有較平滑的一般地圖。" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "正在下載並安裝 $1,請稍候……" - -#~ msgid "Enable VBO" -#~ msgstr "啟用 VBO" - -#~ msgid "" -#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " -#~ "texture pack\n" -#~ "or need to be auto-generated.\n" -#~ "Requires shaders to be enabled." -#~ msgstr "" -#~ "為材質啟用貼圖轉儲。普通地圖需要材質包的支援\n" -#~ "或是自動生成。\n" -#~ "必須啟用著色器。" - -#~ msgid "Enables filmic tone mapping" -#~ msgstr "啟用電影色調映射" - -#~ msgid "" -#~ "Enables on the fly normalmap generation (Emboss effect).\n" -#~ "Requires bumpmapping to be enabled." -#~ msgstr "" -#~ "啟用忙碌的一般地圖生成(浮雕效果)。\n" -#~ "必須啟用貼圖轉儲。" - -#~ msgid "" -#~ "Enables parallax occlusion mapping.\n" -#~ "Requires shaders to be enabled." -#~ msgstr "" -#~ "啟用視差遮蔽貼圖。\n" -#~ "必須啟用著色器。" - -#~ msgid "" -#~ "Experimental option, might cause visible spaces between blocks\n" -#~ "when set to higher number than 0." -#~ msgstr "" -#~ "實驗性選項,當設定到大於零的值時\n" -#~ "也許會造成在方塊間有視覺空隙。" - -#~ msgid "FPS in pause menu" -#~ msgstr "在暫停選單中的 FPS" - -#~ msgid "Floatland base height noise" -#~ msgstr "浮地基礎高度噪音" - -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "字型陰影 alpha(不透明度,介於 0 到 255)。" - -#~ msgid "Gamma" -#~ msgstr "Gamma" - -#~ msgid "Generate Normal Maps" -#~ msgstr "產生一般地圖" - -#~ msgid "Generate normalmaps" -#~ msgstr "生成一般地圖" - -#~ msgid "IPv6 support." -#~ msgstr "IPv6 支援。" - -#, fuzzy -#~ msgid "Lava depth" -#~ msgstr "大型洞穴深度" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "在磁碟上出現佇列的限制" - -#~ msgid "Main" -#~ msgstr "主要" - -#, fuzzy -#~ msgid "Main menu style" -#~ msgstr "主選單指令稿" - -#~ msgid "Minimap in radar mode, Zoom x2" -#~ msgstr "雷達模式的迷你地圖,放大 2 倍" - -#~ msgid "Minimap in radar mode, Zoom x4" -#~ msgstr "雷達模式的迷你地圖,放大 4 倍" - -#~ msgid "Minimap in surface mode, Zoom x2" -#~ msgstr "表面模式的迷你地圖,放大 2 倍" - -#~ msgid "Minimap in surface mode, Zoom x4" -#~ msgstr "表面模式的迷你地圖,放大 4 倍" - -#~ msgid "Name/Password" -#~ msgstr "名稱/密碼" - -#~ msgid "No" -#~ msgstr "否" - -#~ msgid "Normalmaps sampling" -#~ msgstr "法線貼圖採樣" - -#~ msgid "Normalmaps strength" -#~ msgstr "法線貼圖強度" - -#~ msgid "Number of parallax occlusion iterations." -#~ msgstr "視差遮蔽迭代次數。" - -#~ msgid "Ok" -#~ msgstr "確定" - -#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." -#~ msgstr "視差遮蔽效果的總偏差,通常是規模/2。" - -#~ msgid "Overall scale of parallax occlusion effect." -#~ msgstr "視差遮蔽效果的總規模。" - -#~ msgid "Parallax Occlusion" -#~ msgstr "視差遮蔽" - -#~ msgid "Parallax occlusion" -#~ msgstr "視差遮蔽" - -#~ msgid "Parallax occlusion bias" -#~ msgstr "視差遮蔽偏差" - -#~ msgid "Parallax occlusion iterations" -#~ msgstr "視差遮蔽迭代" - -#~ msgid "Parallax occlusion mode" -#~ msgstr "視差遮蔽模式" - -#, fuzzy -#~ msgid "Parallax occlusion scale" -#~ msgstr "視差遮蔽係數" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "視差遮蔽強度" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "TrueType 字型或點陣字的路徑。" +#~ "調整亮度表的伽瑪編碼。較高的數值會較亮。\n" +#~ "這個設定是給客戶端使用的,會被伺服器忽略。" #~ msgid "Path to save screenshots at." #~ msgstr "儲存螢幕截圖的路徑。" -#~ msgid "Reset singleplayer world" -#~ msgstr "重設單人遊戲世界" +#~ msgid "Parallax occlusion strength" +#~ msgstr "視差遮蔽強度" -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "選取 Mod 檔案:" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "在磁碟上出現佇列的限制" -#~ msgid "Shadow limit" -#~ msgstr "陰影限制" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "正在下載並安裝 $1,請稍候……" -#~ msgid "Start Singleplayer" -#~ msgstr "開始單人遊戲" +#~ msgid "Back" +#~ msgstr "返回" -#~ msgid "Strength of generated normalmaps." -#~ msgstr "生成之一般地圖的強度。" - -#~ msgid "This font will be used for certain languages." -#~ msgstr "這個字型將會被用於特定的語言。" - -#~ msgid "Toggle Cinematic" -#~ msgstr "切換過場動畫" - -#, fuzzy -#~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." -#~ msgstr "浮地山區域的典型最大高度,高於與低於中點。" - -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "在平整浮地地形的山丘高度與湖泊深度變化。" - -#~ msgid "View" -#~ msgstr "查看" - -#~ msgid "Waving Water" -#~ msgstr "波動的水" - -#~ msgid "Waving water" -#~ msgstr "波動的水" - -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "大型偽隨機洞穴的 Y 上限。" - -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "浮地中點與湖表面的 Y 高度。" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "浮地陰影擴展的 Y 高度。" - -#~ msgid "Yes" -#~ msgstr "是" +#~ msgid "Ok" +#~ msgstr "確定" From e86fbf9c06ad055f44c2784d3f115ad7d52fe62c Mon Sep 17 00:00:00 2001 From: "updatepo.sh" Date: Tue, 23 Feb 2021 19:03:34 +0100 Subject: [PATCH 562/624] Update minetest.conf.example and dummy translation file --- minetest.conf.example | 7 ++++++- src/settings_translation_file.cpp | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/minetest.conf.example b/minetest.conf.example index f5f608adf..47c03ff80 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -503,6 +503,11 @@ ### Basic +# Whether nametag backgrounds should be shown by default. +# Mods may still set a background. +# type: bool +# show_nametag_backgrounds = true + # Enable vertex buffer objects. # This should greatly improve graphics performance. # type: bool @@ -1298,7 +1303,7 @@ # type: bool # enable_damage = false -# Enable creative mode for new created maps. +# Enable creative mode for all players # type: bool # creative_mode = false diff --git a/src/settings_translation_file.cpp b/src/settings_translation_file.cpp index 8ce323ff6..317186e94 100644 --- a/src/settings_translation_file.cpp +++ b/src/settings_translation_file.cpp @@ -203,6 +203,8 @@ fake_function() { gettext("Graphics"); gettext("In-Game"); gettext("Basic"); + gettext("Show nametag backgrounds by default"); + gettext("Whether nametag backgrounds should be shown by default.\nMods may still set a background."); gettext("VBO"); gettext("Enable vertex buffer objects.\nThis should greatly improve graphics performance."); gettext("Fog"); @@ -513,7 +515,7 @@ fake_function() { gettext("Damage"); gettext("Enable players getting damage and dying."); gettext("Creative"); - gettext("Enable creative mode for new created maps."); + gettext("Enable creative mode for all players"); gettext("Fixed map seed"); gettext("A chosen map seed for a new map, leave empty for random.\nWill be overridden when creating a new world in the main menu."); gettext("Default password"); From bbf4f7ae54ccdac0598003bbd8d3e549ddf3e565 Mon Sep 17 00:00:00 2001 From: "updatepo.sh" Date: Tue, 23 Feb 2021 19:04:38 +0100 Subject: [PATCH 563/624] Update translation files --- po/ar/minetest.po | 19 +- po/be/minetest.po | 20 +- po/bg/minetest.po | 22 +- po/ca/minetest.po | 18 +- po/cs/minetest.po | 20 +- po/da/minetest.po | 19 +- po/de/minetest.po | 29 +- po/dv/minetest.po | 18 +- po/el/minetest.po | 18 +- po/eo/minetest.po | 21 +- po/es/minetest.po | 21 +- po/et/minetest.po | 19 +- po/eu/minetest.po | 19 +- po/fi/minetest.po | 22 +- po/fr/minetest.po | 21 +- po/gd/minetest.po | 18 +- po/gl/minetest.po | 18 +- po/he/minetest.po | 23 +- po/hi/minetest.po | 19 +- po/hu/minetest.po | 21 +- po/id/minetest.po | 33 +- po/it/minetest.po | 33 +- po/ja/minetest.po | 35 +- po/jbo/minetest.po | 18 +- po/kk/minetest.po | 18 +- po/kn/minetest.po | 18 +- po/ko/minetest.po | 20 +- po/ky/minetest.po | 18 +- po/lt/minetest.po | 18 +- po/lv/minetest.po | 19 +- po/minetest.pot | 18 +- po/ms/minetest.po | 29 +- po/ms_Arab/minetest.po | 21 +- po/nb/minetest.po | 21 +- po/nl/minetest.po | 33 +- po/nn/minetest.po | 19 +- po/pl/minetest.po | 20 +- po/pt/minetest.po | 21 +- po/pt_BR/minetest.po | 32 +- po/ro/minetest.po | 19 +- po/ru/minetest.po | 29 +- po/sk/minetest.po | 24 +- po/sl/minetest.po | 20 +- po/sr_Cyrl/minetest.po | 18 +- po/sr_Latn/minetest.po | 22 +- po/sv/minetest.po | 18 +- po/sw/minetest.po | 18 +- po/th/minetest.po | 20 +- po/tr/minetest.po | 21 +- po/uk/minetest.po | 19 +- po/vi/minetest.po | 18 +- po/zh_CN/minetest.po | 856 +++++++++++++++++++++++++--------------- po/zh_TW/minetest.po | 875 +++++++++++++++++++++++++---------------- 53 files changed, 2025 insertions(+), 801 deletions(-) diff --git a/po/ar/minetest.po b/po/ar/minetest.po index 530715a6d..1ab09c2bd 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-30 21:13+0100\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-10-29 16:26+0000\n" "Last-Translator: abidin toumi \n" "Language-Team: Arabic \n" "Language-Team: Belarusian \n" "Language-Team: Bulgarian \n" "Language-Team: Catalan \n" "Language-Team: Czech \n" "Language-Team: Danish \n" "Language-Team: German \n" "Language-Team: Dhivehi \n" "Language-Team: Greek \n" "Language-Team: Esperanto \n" "Language-Team: Spanish \n" "Language-Team: Estonian \n" "Language-Team: Basque \n" "Language-Team: Finnish \n" "Language-Team: French \n" "Language-Team: Gaelic \n" "Language-Team: Galician \n" "Language-Team: Hebrew \n" "Language-Team: Hindi \n" "Language-Team: Hungarian \n" "Language-Team: Indonesian \n" "Language-Team: Italian \n" "Language-Team: Japanese \n" "Language-Team: Lojban \n" "Language-Team: Kazakh \n" "Language-Team: Kannada \n" "Language-Team: Korean \n" "Language-Team: Kyrgyz \n" "Language-Team: Lithuanian \n" "Language-Team: Latvian \n" "Language-Team: LANGUAGE \n" @@ -698,6 +698,10 @@ msgstr "" msgid "Try reenabling public serverlist and check your internet connection." msgstr "" +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" msgstr "" @@ -2959,6 +2963,16 @@ msgstr "" msgid "Basic" msgstr "" +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "VBO" msgstr "" @@ -4426,7 +4440,7 @@ msgid "Creative" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp diff --git a/po/ms/minetest.po b/po/ms/minetest.po index d15da624e..d35e063cc 100644 --- a/po/ms/minetest.po +++ b/po/ms/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Malay (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-30 21:13+0100\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-02-01 05:52+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" @@ -700,6 +700,11 @@ msgstr "Gagal memasang pek mods sebagai $1" msgid "Loading..." msgstr "Sedang memuatkan..." +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Skrip pihak klien dilumpuhkan" + #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "" @@ -3003,7 +3008,8 @@ msgid "Enable console window" msgstr "Membolehkan tetingkap konsol" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Membolehkan mod kreatif untuk peta baru dicipta." #: src/settings_translation_file.cpp @@ -3562,8 +3568,8 @@ msgid "" msgstr "" "Cara pengendalian panggilan API Lua yang terkecam:\n" "- none: Jangan log panggilan terkecam\n" -"- log: meniru dan menulis log runut balik bagi panggilan terkecam (lalai)." -"\n" +"- log: meniru dan menulis log runut balik bagi panggilan terkecam " +"(lalai).\n" "- error: gugurkan penggunaan panggilan terkecam (digalakkan untuk " "pembangun mods)." @@ -6301,6 +6307,11 @@ msgstr "" "Tunjuk kotak pemilihan entiti\n" "Anda perlu mulakan semula selepas mengubah tetapan ini." +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Fon tebal secara lalainya" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Mesej penutupan" @@ -7134,8 +7145,8 @@ msgstr "" "lebih tajam, tetapi memerlukan memori yang lebih banyak. Nilai kuasa 2\n" "digalakkan. Menetapkan nilai ini lebih tinggi dari 1 tidak akan " "menampakkan\n" -"kesan yang nyata melainkan tapisan bilinear/trilinear/anisotropik dibolehkan." -"\n" +"kesan yang nyata melainkan tapisan bilinear/trilinear/anisotropik " +"dibolehkan.\n" "Ini juga digunakan sebagai saiz tekstur nod asas untuk autopenyesuaian\n" "tekstur jajaran dunia." @@ -7149,6 +7160,12 @@ msgstr "" "dikompil bersama. Jika dilumpuhkan, fon peta bit dan vektor XML akan " "digunakan." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" diff --git a/po/ms_Arab/minetest.po b/po/ms_Arab/minetest.po index 2520856c3..42d758b7d 100644 --- a/po/ms_Arab/minetest.po +++ b/po/ms_Arab/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-30 21:13+0100\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-10-20 18:26+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" @@ -710,6 +710,11 @@ msgstr "ݢاݢل مماسڠ ڤيک مودس سباݢاي $1" msgid "Loading..." msgstr "سدڠ ممواتکن..." +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "سکريڤ ڤيهق کليئن دلومڤوهکن" + #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "چوب اکتيفکن سمولا سناراي ڤلاين عوام فان ڤريقسا سمبوڠن اينترنيت اندا." @@ -2948,7 +2953,8 @@ msgid "Enable console window" msgstr "ممبوليهکن تتيڠکڤ کونسول" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "ممبوليهکن مود کرياتيف اونتوق ڤتا بارو دچيڤتا." #: src/settings_translation_file.cpp @@ -6029,6 +6035,11 @@ msgid "" "A restart is required after changing this." msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "فون تبل سچارا لالايڽ" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "ميسيج ڤنوتوڤن" @@ -6797,6 +6808,12 @@ msgstr "" "منتڤکن سام اد فون FreeType دݢوناکن⹁ ممرلوکن سوکوڠن Freetype\n" "دکومڤيل برسام. جيک دلومڤوهکن⹁ فون ڤتا بيت دان ۏيکتور XML اکن دݢوناکن." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "سام اد انيماسي تيکستور نود ڤرلو دڽهسݢرقکن ڤد ستياڤ بلوک ڤتا." diff --git a/po/nb/minetest.po b/po/nb/minetest.po index b3d6ae154..3762509a4 100644 --- a/po/nb/minetest.po +++ b/po/nb/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Norwegian Bokmål (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-30 21:13+0100\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-01-10 01:32+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål \n" "Language-Team: Dutch \n" "Language-Team: Norwegian Nynorsk \n" "Language-Team: Polish \n" "Language-Team: Portuguese \n" "Language-Team: Portuguese (Brazil) \n" "Language-Team: Romanian \n" "Language-Team: Russian \n" "Language-Team: Slovak \n" "Language-Team: Slovenian \n" "Language-Team: Serbian (cyrillic) \n" "Language-Team: Serbian (latin) \n" "Language-Team: Swedish \n" "Language-Team: Swahili \n" "Language-Team: Thai \n" "Language-Team: Turkish \n" "Language-Team: Ukrainian \n" "Language-Team: Vietnamese \n" "Language-Team: Chinese (Simplified) 0." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "定义 floatland 平滑地形的区域。\n" -#~ "当噪音0时, 平滑的 floatlands 发生。" - -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "地图生成器平面湖坡度" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "控制隧道宽度,较小的值创建更宽的隧道。" - -#, fuzzy -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "控制 floatland 地形的密度。\n" -#~ "是添加到 \"np_mountain\" 噪声值的偏移量。" +#~ "0 = 利用梯度信息进行视差遮蔽 (较快).\n" +#~ "1 = 浮雕映射 (较慢, 但准确)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7107,20 +7110,237 @@ msgstr "cURL 超时" #~ "调整亮度表的伽玛编码。较高的数值会较亮。\n" #~ "这个设定是给客户端使用的,会被服务器忽略。" -#~ msgid "Path to save screenshots at." -#~ msgstr "屏幕截图保存路径。" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "视差遮蔽强度" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "磁盘上的生产队列限制" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "正在下载和安装 $1,请稍等..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "你确定要重置你的单人世界吗?" #~ msgid "Back" #~ msgstr "后退" +#~ msgid "Bump Mapping" +#~ msgstr "凹凸贴图" + +#~ msgid "Bumpmapping" +#~ msgstr "凹凸贴图" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "主菜单UI的变化:\n" +#~ "- 完整 多个单人世界,子游戏选择,材质包选择器等。\n" +#~ "- 简单:单个单人世界,无子游戏材质包选择器。可能\n" +#~ "需要用于小屏幕。" + +#~ msgid "Config mods" +#~ msgstr "配置 mod" + +#~ msgid "Configure" +#~ msgstr "配置" + +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "控制 floatland 地形的密度。\n" +#~ "是添加到 \"np_mountain\" 噪声值的偏移量。" + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "控制隧道宽度,较小的值创建更宽的隧道。" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "准星颜色(红,绿,蓝)。" + +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "地图生成器平面湖坡度" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "定义 floatland 平滑地形的区域。\n" +#~ "当噪音0时, 平滑的 floatlands 发生。" + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "定义材质采样步骤。\n" +#~ "数值越高常态贴图越平滑。" + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "正在下载和安装 $1,请稍等..." + +#~ msgid "Enable VBO" +#~ msgstr "启用 VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "启用材质的凹凸贴图效果。需要材质包支持法线贴图,\n" +#~ "否则将自动生成法线。\n" +#~ "需要启用着色器。" + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "启用电影基调映射" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "启用即时法线贴图生成(浮雕效果)。\n" +#~ "需要启用凹凸贴图。" + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "启用视差遮蔽贴图。\n" +#~ "需要启用着色器。" + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "实验性选项,设为大于 0 的数字时可能导致\n" +#~ "块之间出现可见空间。" + +#~ msgid "FPS in pause menu" +#~ msgstr "暂停菜单 FPS" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "字体阴影不透明度(0-255)。" + +#~ msgid "Gamma" +#~ msgstr "伽马" + +#~ msgid "Generate Normal Maps" +#~ msgstr "生成法线贴图" + +#~ msgid "Generate normalmaps" +#~ msgstr "生成发现贴图" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 支持。" + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "巨大洞穴深度" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "磁盘上的生产队列限制" + +#~ msgid "Main" +#~ msgstr "主菜单" + +#~ msgid "Main menu style" +#~ msgstr "主菜单样式" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "雷达小地图,放大至两倍" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "雷达小地图, 放大至四倍" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "地表模式小地图, 放大至两倍" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "地表模式小地图, 放大至四倍" + +#~ msgid "Name/Password" +#~ msgstr "用户名/密码" + +#~ msgid "No" +#~ msgstr "否" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法线贴图采样" + +#~ msgid "Normalmaps strength" +#~ msgstr "法线贴图强度" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "视差遮蔽迭代数。" + #~ msgid "Ok" #~ msgstr "确定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "视差遮蔽效果的整体斜纹,通常为比例/2。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "视差遮蔽效果的总体比例。" + +#~ msgid "Parallax Occlusion" +#~ msgstr "视差遮蔽" + +#~ msgid "Parallax occlusion" +#~ msgstr "视差遮蔽" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "视差遮蔽偏移" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "视差遮蔽迭代" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "视差遮蔽模式" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "视差遮蔽比例" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "视差遮蔽强度" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueType 字体或位图的路径。" + +#~ msgid "Path to save screenshots at." +#~ msgstr "屏幕截图保存路径。" + +#~ msgid "Reset singleplayer world" +#~ msgstr "重置单人世界" + +#~ msgid "Select Package File:" +#~ msgstr "选择包文件:" + +#, fuzzy +#~ msgid "Shadow limit" +#~ msgstr "地图块限制" + +#~ msgid "Start Singleplayer" +#~ msgstr "单人游戏" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生成的一般地图强度。" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "用于特定语言的字体。" + +#~ msgid "Toggle Cinematic" +#~ msgstr "切换电影模式" + +#~ msgid "View" +#~ msgstr "视野" + +#~ msgid "Waving Water" +#~ msgstr "流动的水面" + +#~ msgid "Waving water" +#~ msgstr "摇动水" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大型随机洞穴的Y轴最大值。" + +#~ msgid "Yes" +#~ msgstr "是" diff --git a/po/zh_TW/minetest.po b/po/zh_TW/minetest.po index 99a9da965..99332e226 100644 --- a/po/zh_TW/minetest.po +++ b/po/zh_TW/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Chinese (Traditional) (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-12-24 05:29+0000\n" "Last-Translator: Man Ho Yiu \n" "Language-Team: Chinese (Traditional) 0." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "定義浮地的平整地形區。\n" -#~ "平整的浮地會在噪音 > 0 時產生。" - -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "湖泊坡度" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "控制隧道的寬度,較小的值會創造出較寬的隧道。" - -#, fuzzy -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "控制山地的浮地密度。\n" -#~ "是加入到 'np_mountain' 噪音值的補償。" +#~ "0 = 包含斜率資訊的視差遮蔽(較快)。\n" +#~ "1 = 替換貼圖(較慢,較準確)。" #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7144,20 +7130,243 @@ msgstr "cURL 逾時" #~ "調整亮度表的伽瑪編碼。較高的數值會較亮。\n" #~ "這個設定是給客戶端使用的,會被伺服器忽略。" -#~ msgid "Path to save screenshots at." -#~ msgstr "儲存螢幕截圖的路徑。" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "視差遮蔽強度" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "在磁碟上出現佇列的限制" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "正在下載並安裝 $1,請稍候……" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "您確定要重設您的單人遊戲世界嗎?" #~ msgid "Back" #~ msgstr "返回" +#~ msgid "Bump Mapping" +#~ msgstr "映射貼圖" + +#~ msgid "Bumpmapping" +#~ msgstr "映射貼圖" + +#~ msgid "Config mods" +#~ msgstr "設定 Mod" + +#~ msgid "Configure" +#~ msgstr "設定" + +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "控制山地的浮地密度。\n" +#~ "是加入到 'np_mountain' 噪音值的補償。" + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "控制隧道的寬度,較小的值會創造出較寬的隧道。" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "十字色彩 (R,G,B)。" + +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "湖泊坡度" + +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "定義浮地的平整地形區。\n" +#~ "平整的浮地會在噪音 > 0 時產生。" + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "定義材質的採樣步驟。\n" +#~ "較高的值會有較平滑的一般地圖。" + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "正在下載並安裝 $1,請稍候……" + +#~ msgid "Enable VBO" +#~ msgstr "啟用 VBO" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "為材質啟用貼圖轉儲。普通地圖需要材質包的支援\n" +#~ "或是自動生成。\n" +#~ "必須啟用著色器。" + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "啟用電影色調映射" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "啟用忙碌的一般地圖生成(浮雕效果)。\n" +#~ "必須啟用貼圖轉儲。" + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "啟用視差遮蔽貼圖。\n" +#~ "必須啟用著色器。" + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "實驗性選項,當設定到大於零的值時\n" +#~ "也許會造成在方塊間有視覺空隙。" + +#~ msgid "FPS in pause menu" +#~ msgstr "在暫停選單中的 FPS" + +#~ msgid "Floatland base height noise" +#~ msgstr "浮地基礎高度噪音" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "字型陰影 alpha(不透明度,介於 0 到 255)。" + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "產生一般地圖" + +#~ msgid "Generate normalmaps" +#~ msgstr "生成一般地圖" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 支援。" + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "大型洞穴深度" + +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "在磁碟上出現佇列的限制" + +#~ msgid "Main" +#~ msgstr "主要" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "主選單指令稿" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "雷達模式的迷你地圖,放大 2 倍" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "雷達模式的迷你地圖,放大 4 倍" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "表面模式的迷你地圖,放大 2 倍" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "表面模式的迷你地圖,放大 4 倍" + +#~ msgid "Name/Password" +#~ msgstr "名稱/密碼" + +#~ msgid "No" +#~ msgstr "否" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法線貼圖採樣" + +#~ msgid "Normalmaps strength" +#~ msgstr "法線貼圖強度" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "視差遮蔽迭代次數。" + #~ msgid "Ok" #~ msgstr "確定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "視差遮蔽效果的總偏差,通常是規模/2。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "視差遮蔽效果的總規模。" + +#~ msgid "Parallax Occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "視差遮蔽偏差" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "視差遮蔽迭代" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "視差遮蔽模式" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "視差遮蔽係數" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "視差遮蔽強度" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueType 字型或點陣字的路徑。" + +#~ msgid "Path to save screenshots at." +#~ msgstr "儲存螢幕截圖的路徑。" + +#~ msgid "Reset singleplayer world" +#~ msgstr "重設單人遊戲世界" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "選取 Mod 檔案:" + +#~ msgid "Shadow limit" +#~ msgstr "陰影限制" + +#~ msgid "Start Singleplayer" +#~ msgstr "開始單人遊戲" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生成之一般地圖的強度。" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "這個字型將會被用於特定的語言。" + +#~ msgid "Toggle Cinematic" +#~ msgstr "切換過場動畫" + +#, fuzzy +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "浮地山區域的典型最大高度,高於與低於中點。" + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "在平整浮地地形的山丘高度與湖泊深度變化。" + +#~ msgid "View" +#~ msgstr "查看" + +#~ msgid "Waving Water" +#~ msgstr "波動的水" + +#~ msgid "Waving water" +#~ msgstr "波動的水" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大型偽隨機洞穴的 Y 上限。" + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "浮地中點與湖表面的 Y 高度。" + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "浮地陰影擴展的 Y 高度。" + +#~ msgid "Yes" +#~ msgstr "是" From 29681085b9762e8cf0e953014ca0e8d2890713ef Mon Sep 17 00:00:00 2001 From: savilli <78875209+savilli@users.noreply.github.com> Date: Tue, 23 Feb 2021 21:36:55 +0300 Subject: [PATCH 564/624] Fix wrong number of items in allow_metadata_inventory_put/take callbacks (#10990) --- src/inventorymanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/inventorymanager.cpp b/src/inventorymanager.cpp index 554708e8e..1e81c1dbc 100644 --- a/src/inventorymanager.cpp +++ b/src/inventorymanager.cpp @@ -340,7 +340,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame */ ItemStack src_item = list_from->getItem(from_i); - if (count > 0) + if (count > 0 && count < src_item.count) src_item.count = count; if (src_item.empty()) return; From 4abe4b87b5902bff229505b83b9bddb9a8f759cd Mon Sep 17 00:00:00 2001 From: DS Date: Tue, 23 Feb 2021 19:39:15 +0100 Subject: [PATCH 565/624] Allow overwriting media files of dependencies (#10752) --- doc/lua_api.txt | 3 +++ .../mods/basenodes/textures/default_dirt.png | Bin 790 -> 7303 bytes .../textures/dirt_with_grass/info.txt | 3 --- games/devtest/mods/basenodes/textures/info.txt | 7 +++++++ games/devtest/mods/unittests/mod.conf | 1 + .../mods/unittests/textures/default_dirt.png | Bin 0 -> 790 bytes src/server/mods.cpp | 3 ++- src/server/mods.h | 8 ++++++++ 8 files changed, 21 insertions(+), 4 deletions(-) delete mode 100644 games/devtest/mods/basenodes/textures/dirt_with_grass/info.txt create mode 100644 games/devtest/mods/basenodes/textures/info.txt create mode 100644 games/devtest/mods/unittests/textures/default_dirt.png diff --git a/doc/lua_api.txt b/doc/lua_api.txt index a9c3bcdd9..d3165b9fd 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -256,6 +256,9 @@ Subfolders with names starting with `_` or `.` are ignored. If a subfolder contains a media file with the same name as a media file in one of its parents, the parent's file is used. +Although it is discouraged, a mod can overwrite a media file of any mod that it +depends on by supplying a file with an equal name. + Naming conventions ------------------ diff --git a/games/devtest/mods/basenodes/textures/default_dirt.png b/games/devtest/mods/basenodes/textures/default_dirt.png index 58670305d007716c3fee12b45e8acf301cbd4c5a..aa75bffb6459d1415a2f146f0da636fbcc94c253 100644 GIT binary patch literal 7303 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 UYvInCO8@`>07*qoM6N<$f@__Gg8%>k literal 0 HcmV?d00001 diff --git a/src/server/mods.cpp b/src/server/mods.cpp index cf1467648..83fa12da9 100644 --- a/src/server/mods.cpp +++ b/src/server/mods.cpp @@ -98,7 +98,8 @@ void ServerModManager::getModNames(std::vector &modlist) const void ServerModManager::getModsMediaPaths(std::vector &paths) const { - for (const ModSpec &spec : m_sorted_mods) { + for (auto it = m_sorted_mods.crbegin(); it != m_sorted_mods.crend(); it++) { + const ModSpec &spec = *it; fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "textures"); fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "sounds"); fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "media"); diff --git a/src/server/mods.h b/src/server/mods.h index 54774bd86..8954bbf72 100644 --- a/src/server/mods.h +++ b/src/server/mods.h @@ -42,5 +42,13 @@ public: void loadMods(ServerScripting *script); const ModSpec *getModSpec(const std::string &modname) const; void getModNames(std::vector &modlist) const; + /** + * Recursively gets all paths of mod folders that can contain media files. + * + * Result is ordered in descending priority, ie. files from an earlier path + * should not be replaced by files from a latter one. + * + * @param paths result vector + */ void getModsMediaPaths(std::vector &paths) const; }; From 74a93546ea31e9bd1479920c8c5df3f3f70361ae Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 18 Feb 2021 19:44:02 +0100 Subject: [PATCH 566/624] Add script that sorts contributions for use in credits --- util/gather_git_credits.py | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 util/gather_git_credits.py diff --git a/util/gather_git_credits.py b/util/gather_git_credits.py new file mode 100755 index 000000000..1b2865182 --- /dev/null +++ b/util/gather_git_credits.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 +import subprocess +import re +from collections import defaultdict + +codefiles = r"(\.[ch](pp)?|\.lua|\.md|\.cmake|\.java|\.gradle|Makefile|CMakeLists\.txt)$" + +# two minor versions back, for "Active Contributors" +REVS_ACTIVE = "5.2.0..HEAD" +# all time, for "Previous Contributors" +REVS_PREVIOUS = "HEAD" + +CUTOFF_ACTIVE = 3 +CUTOFF_PREVIOUS = 21 + +# For a description of the points system see: +# https://github.com/minetest/minetest/pull/9593#issue-398677198 + +def load(revs): + points = defaultdict(int) + p = subprocess.Popen(["git", "log", "--mailmap", "--pretty=format:%h %aN <%aE>", revs], + stdout=subprocess.PIPE, universal_newlines=True) + for line in p.stdout: + hash, author = line.strip().split(" ", 1) + n = 0 + + p2 = subprocess.Popen(["git", "show", "--numstat", "--pretty=format:", hash], + stdout=subprocess.PIPE, universal_newlines=True) + for line in p2.stdout: + added, deleted, filename = re.split(r"\s+", line.strip(), 2) + if re.search(codefiles, filename) and added != "-": + n += int(added) + p2.wait() + + if n == 0: + continue + if n > 1200: + n = 8 + elif n > 700: + n = 4 + elif n > 100: + n = 2 + else: + n = 1 + points[author] += n + p.wait() + + # Some authors duplicate? Don't add manual workarounds here, edit the .mailmap! + for author in ("updatepo.sh ", "Weblate <42@minetest.ru>"): + points.pop(author, None) + return points + +points_active = load(REVS_ACTIVE) +points_prev = load(REVS_PREVIOUS) + +with open("results.txt", "w") as f: + for author, points in sorted(points_active.items(), key=(lambda e: e[1]), reverse=True): + if points < CUTOFF_ACTIVE: break + points_prev.pop(author, None) # active authors don't appear in previous + f.write("%d\t%s\n" % (points, author)) + f.write('\n---------\n\n') + once = True + for author, points in sorted(points_prev.items(), key=(lambda e: e[1]), reverse=True): + if points < CUTOFF_PREVIOUS and once: + f.write('\n---------\n\n') + once = False + f.write("%d\t%s\n" % (points, author)) From 35b476c65df9c78935e166b94ca686015b43960f Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 18 Feb 2021 19:52:59 +0100 Subject: [PATCH 567/624] Update credits tab and mailmap --- .mailmap | 74 +++++++++++++++++++++++--------- builtin/mainmenu/tab_credits.lua | 54 ++++++++++++----------- 2 files changed, 82 insertions(+), 46 deletions(-) diff --git a/.mailmap b/.mailmap index c487460a0..fcc763411 100644 --- a/.mailmap +++ b/.mailmap @@ -1,33 +1,67 @@ +# Documentation: https://git-scm.com/docs/git-check-mailmap#_mapping_authors + 0gb.us <0gb.us@0gb.us> -Calinou -Perttu Ahola celeron55 +Calinou +Calinou +Perttu Ahola Perttu Ahola celeron55 -Craig Robbins +Zeno- +Zeno- +Diego Martínez Diego Martínez +Ilya Zhuravlev Ilya Zhuravlev kwolekr -PilzAdam PilzAdam -PilzAdam Pilz Adam -PilzAdam PilzAdam +PilzAdam +PilzAdam proller proller RealBadAngel RealBadAngel Selat ShadowNinja ShadowNinja -Shen Zheyu arsdragonfly -Pavel Elagin elagin -Esteban I. Ruiz Moreno Esteban I. RM -manuel duarte manuel joaquim -manuel duarte sweetbomber -Diego Martínez kaeza -Diego Martínez Diego Martinez -Lord James Lord89James -BlockMen Block Men -sfan5 Sfan5 -DannyDark dannydark -Ilya Pavlov Ilya -Ilya Zhuravlev xyzz +Esteban I. Ruiz Moreno +Esteban I. Ruiz Moreno +Lord James +BlockMen +sfan5 +DannyDark +Ilya Pavlov sapier sapier sapier sapier - +SmallJoker +Loïc Blot +Loïc Blot +numzero Vitaliy +numzero +Jean-Patrick Guerrero +Jean-Patrick Guerrero +HybridDog <3192173+HybridDog@users.noreply.github.com> +srfqi +Dániel Juhász +rubenwardy +rubenwardy +Paul Ouellette +Vanessa Dannenberg +ClobberXD +ClobberXD +ClobberXD <36130650+ClobberXD@users.noreply.github.com> +Auke Kok +Auke Kok +Desour +Nathanaël Courant +Ezhh +paramat +paramat +lhofhansl +red-001 +Wuzzy +Wuzzy +Jordach +MoNTE48 +v-rob +v-rob <31123645+v-rob@users.noreply.github.com> +EvidenceB <49488517+EvidenceBKidscode@users.noreply.github.com> +gregorycu +Rogier +Rogier diff --git a/builtin/mainmenu/tab_credits.lua b/builtin/mainmenu/tab_credits.lua index 075274798..a34dd58bb 100644 --- a/builtin/mainmenu/tab_credits.lua +++ b/builtin/mainmenu/tab_credits.lua @@ -23,28 +23,37 @@ local core_developers = { "Nathanaël Courant (Nore/Ekdohibs) ", "Loic Blot (nerzhul/nrz) ", "paramat", - "Auke Kok (sofar) ", "Andrew Ward (rubenwardy) ", "Krock/SmallJoker ", "Lars Hofhansl ", + "Pierre-Yves Rollo ", + "v-rob ", } +-- For updating active/previous contributors, see the script in ./util/gather_git_credits.py + local active_contributors = { - "Hugues Ross [Formspecs]", + "Wuzzy [devtest game, visual corrections]", + "Zughy [Visual improvements, various fixes]", "Maksim (MoNTE48) [Android]", - "DS [Formspecs]", - "pyrollo [Formspecs: Hypertext]", - "v-rob [Formspecs]", - "Jordach [set_sky]", - "random-geek [Formspecs]", - "Wuzzy [Pathfinder, builtin, translations]", - "ANAND (ClobberXD) [Fixes, per-player FOV]", - "Warr1024 [Fixes]", - "Paul Ouellette (pauloue) [Fixes, Script API]", - "Jean-Patrick G (kilbith) [Audiovisuals]", - "HybridDog [Script API]", + "numzero [Graphics and rendering]", + "appgurueu [Various internal fixes]", + "Desour [Formspec and vector API changes]", + "HybridDog [Rendering fixes and documentation]", + "Hugues Ross [Graphics-related improvements]", + "ANAND (ClobberXD) [Mouse buttons rebinding]", + "luk3yx [Fixes]", + "hecks [Audiovisuals, Lua API]", + "LoneWolfHT [Object crosshair, documentation fixes]", + "Lejo [Server-related improvements]", + "EvidenceB [Compass HUD element]", + "Paul Ouellette (pauloue) [Lua API, documentation]", + "TheTermos [Collision detection, physics]", + "David CARLIER [Unix & Haiku build fixes]", "dcbrwn [Object shading]", - "srifqi [Fixes]", + "Elias Fleckenstein [API features/fixes]", + "Jean-Patrick Guerrero (kilbith) [model element, visual fixes]", + "k.h.lai [Memory leak fixes, documentation]", } local previous_core_developers = { @@ -60,30 +69,23 @@ local previous_core_developers = { "sapier", "Zeno", "ShadowNinja ", + "Auke Kok (sofar) ", } local previous_contributors = { "Nils Dagsson Moskopp (erlehmann) [Minetest Logo]", - "Dániel Juhász (juhdanad) ", "red-001 ", - "numberZero [Audiovisuals: meshgen]", "Giuseppe Bilotta", + "Dániel Juhász (juhdanad) ", "MirceaKitsune ", "Constantin Wenger (SpeedProg)", "Ciaran Gultnieks (CiaranG)", "stujones11 [Android UX improvements]", - "Jeija [HTTP, particles]", - "Vincent Glize (Dumbeldor) [Cleanups, CSM APIs]", - "Ben Deutsch [Rendering, Fixes, SQLite auth]", - "TeTpaAka [Hand overriding, nametag colors]", - "Rui [Sound Pitch]", - "Duane Robertson [MGValleys]", - "Raymoo [Tool Capabilities]", "Rogier [Fixes]", "Gregory Currie (gregorycu) [optimisation]", - "TriBlade9 [Audiovisuals]", - "T4im [Profiler]", - "Jurgen Doser (doserj) ", + "srifqi [Fixes]", + "JacobF", + "Jeija [HTTP, particles]", } local function buildCreditList(source) From 9b59b2f75de8a523cba255335fb8d9350716c8c5 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 23 Feb 2021 14:21:15 +0100 Subject: [PATCH 568/624] Fix keyWasDown in input handler This was changed 291a6b70d674d9003f522b5875a60f7e2753e32b but should have never been done. --- src/client/inputhandler.cpp | 11 +++-------- src/client/inputhandler.h | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp index 608a405a8..978baa320 100644 --- a/src/client/inputhandler.cpp +++ b/src/client/inputhandler.cpp @@ -113,17 +113,12 @@ bool MyEventReceiver::OnEvent(const SEvent &event) if (event.EventType == irr::EET_KEY_INPUT_EVENT) { const KeyPress &keyCode = event.KeyInput; if (keysListenedFor[keyCode]) { - // If the key is being held down then the OS may - // send a continuous stream of keydown events. - // In this case, we don't want to let this - // stream reach the application as it will cause - // certain actions to repeat constantly. if (event.KeyInput.PressedDown) { - if (!IsKeyDown(keyCode)) { - keyWasDown.set(keyCode); + if (!IsKeyDown(keyCode)) keyWasPressed.set(keyCode); - } + keyIsDown.set(keyCode); + keyWasDown.set(keyCode); } else { if (IsKeyDown(keyCode)) keyWasReleased.set(keyCode); diff --git a/src/client/inputhandler.h b/src/client/inputhandler.h index 7487bbdc7..1fb4cf0ec 100644 --- a/src/client/inputhandler.h +++ b/src/client/inputhandler.h @@ -201,7 +201,7 @@ private: // The current state of keys KeyList keyIsDown; - // Whether a key was down + // Like keyIsDown but only reset when that key is read KeyList keyWasDown; // Whether a key has just been pressed From f3e51dca155ce1d1062a339cf925f41d7c751df8 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 23 Feb 2021 19:50:37 +0100 Subject: [PATCH 569/624] Bump version to 5.4.0 --- CMakeLists.txt | 2 +- build/android/build.gradle | 4 ++-- misc/net.minetest.minetest.appdata.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2549bd25d..f6a0d22fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ set(VERSION_PATCH 0) set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string") # Change to false for releases -set(DEVELOPMENT_BUILD TRUE) +set(DEVELOPMENT_BUILD FALSE) set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") if(VERSION_EXTRA) diff --git a/build/android/build.gradle b/build/android/build.gradle index 61b24caab..be9eaada4 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -3,8 +3,8 @@ project.ext.set("versionMajor", 5) // Version Major project.ext.set("versionMinor", 4) // Version Minor project.ext.set("versionPatch", 0) // Version Patch -project.ext.set("versionExtra", "-dev") // Version Extra -project.ext.set("versionCode", 30) // Android Version Code +project.ext.set("versionExtra", "") // Version Extra +project.ext.set("versionCode", 32) // Android Version Code // NOTE: +2 after each release! // +1 for ARM and +1 for ARM64 APK's, because // each APK must have a larger `versionCode` than the previous diff --git a/misc/net.minetest.minetest.appdata.xml b/misc/net.minetest.minetest.appdata.xml index c177c3713..0e5397b37 100644 --- a/misc/net.minetest.minetest.appdata.xml +++ b/misc/net.minetest.minetest.appdata.xml @@ -62,6 +62,6 @@ minetest sfan5@live.de - + From cd840b7c9d1f228bab94c5f58b5df235d6c0a180 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 28 Feb 2021 17:10:40 +0000 Subject: [PATCH 570/624] pkgmgr: Fix crash when .conf release field is invalid Fixes #10942 --- builtin/mainmenu/pkgmgr.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua index 19127d8d3..4aa05d838 100644 --- a/builtin/mainmenu/pkgmgr.lua +++ b/builtin/mainmenu/pkgmgr.lua @@ -90,7 +90,7 @@ local function load_texture_packs(txtpath, retval) retval[#retval + 1] = { name = item, author = conf:get("author"), - release = tonumber(conf:get("release") or "0"), + release = tonumber(conf:get("release")) or 0, list_name = name, type = "txp", path = path, @@ -135,7 +135,7 @@ function get_mods(path,retval,modpack) -- Read from config toadd.name = name toadd.author = mod_conf.author - toadd.release = tonumber(mod_conf.release or "0") + toadd.release = tonumber(mod_conf.release) or 0 toadd.path = prefix toadd.type = "mod" From 67be50b706b0d1364b42ff1fd3d461d0794cd268 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein <54945686+EliasFleckenstein03@users.noreply.github.com> Date: Mon, 1 Mar 2021 12:13:47 +0100 Subject: [PATCH 571/624] Make pkgmgr handle modpacks containing modpacks properly fixes #10550 --- builtin/mainmenu/pkgmgr.lua | 39 ++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua index 4aa05d838..787936e31 100644 --- a/builtin/mainmenu/pkgmgr.lua +++ b/builtin/mainmenu/pkgmgr.lua @@ -413,18 +413,7 @@ function pkgmgr.is_modpack_entirely_enabled(data, name) end ---------- toggles or en/disables a mod or modpack and its dependencies -------- -function pkgmgr.enable_mod(this, toset) - local list = this.data.list:get_list() - local mod = list[this.data.selected_mod] - - -- Game mods can't be enabled or disabled - if mod.is_game_content then - return - end - - local toggled_mods = {} - - local enabled_mods = {} +local function toggle_mod_or_modpack(list, toggled_mods, enabled_mods, toset, mod) if not mod.is_modpack then -- Toggle or en/disable the mod if toset == nil then @@ -443,19 +432,25 @@ function pkgmgr.enable_mod(this, toset) -- interleaved unsupported for i = 1, #list do if list[i].modpack == mod.name then - if toset == nil then - toset = not list[i].enabled - end - if list[i].enabled ~= toset then - list[i].enabled = toset - toggled_mods[#toggled_mods+1] = list[i].name - end - if toset then - enabled_mods[list[i].name] = true - end + toggle_mod_or_modpack(list, toggled_mods, enabled_mods, toset, list[i]) end end end +end + +function pkgmgr.enable_mod(this, toset) + local list = this.data.list:get_list() + local mod = list[this.data.selected_mod] + + -- Game mods can't be enabled or disabled + if mod.is_game_content then + return + end + + local toggled_mods = {} + local enabled_mods = {} + toggle_mod_or_modpack(list, toggled_mods, enabled_mods, toset, mod) + if not toset then -- Mod(s) were disabled, so no dependencies need to be enabled table.sort(toggled_mods) From 41beb74ef7eab2a2c634cd2c23671807443788aa Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 7 Mar 2021 10:04:07 +0100 Subject: [PATCH 572/624] Protect per-player detached inventory actions --- src/network/serverpackethandler.cpp | 6 +++++- src/server/serverinventorymgr.cpp | 12 ++++++++++++ src/server/serverinventorymgr.h | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index ddc6f4e47..f1ed42302 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -626,7 +626,7 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) const bool player_has_interact = checkPriv(player->getName(), "interact"); - auto check_inv_access = [player, player_has_interact] ( + auto check_inv_access = [player, player_has_interact, this] ( const InventoryLocation &loc) -> bool { if (loc.type == InventoryLocation::CURRENT_PLAYER) return false; // Only used internally on the client, never sent @@ -634,6 +634,10 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) // Allow access to own inventory in all cases return loc.name == player->getName(); } + if (loc.type == InventoryLocation::DETACHED) { + if (!getInventoryMgr()->checkDetachedInventoryAccess(loc, player->getName())) + return false; + } if (!player_has_interact) { infostream << "Cannot modify foreign inventory: " diff --git a/src/server/serverinventorymgr.cpp b/src/server/serverinventorymgr.cpp index 555e01ec6..2a80c9bbe 100644 --- a/src/server/serverinventorymgr.cpp +++ b/src/server/serverinventorymgr.cpp @@ -168,6 +168,18 @@ bool ServerInventoryManager::removeDetachedInventory(const std::string &name) return true; } +bool ServerInventoryManager::checkDetachedInventoryAccess( + const InventoryLocation &loc, const std::string &player) const +{ + SANITY_CHECK(loc.type == InventoryLocation::DETACHED); + + const auto &inv_it = m_detached_inventories.find(loc.name); + if (inv_it == m_detached_inventories.end()) + return false; + + return inv_it->second.owner.empty() || inv_it->second.owner == player; +} + void ServerInventoryManager::sendDetachedInventories(const std::string &peer_name, bool incremental, std::function apply_cb) diff --git a/src/server/serverinventorymgr.h b/src/server/serverinventorymgr.h index ccf6d3b2e..0e4b72415 100644 --- a/src/server/serverinventorymgr.h +++ b/src/server/serverinventorymgr.h @@ -43,6 +43,7 @@ public: Inventory *createDetachedInventory(const std::string &name, IItemDefManager *idef, const std::string &player = ""); bool removeDetachedInventory(const std::string &name); + bool checkDetachedInventoryAccess(const InventoryLocation &loc, const std::string &player) const; void sendDetachedInventories(const std::string &peer_name, bool incremental, std::function apply_cb); From 77e936445f4e520e5301de03f11698083d9184a9 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 7 Mar 2021 11:35:53 +0100 Subject: [PATCH 573/624] Protect dropping from far node inventories Also changes if/if to switch/case --- src/network/serverpackethandler.cpp | 47 ++++++++++++++--------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index f1ed42302..b863e1828 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -628,23 +628,34 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) auto check_inv_access = [player, player_has_interact, this] ( const InventoryLocation &loc) -> bool { - if (loc.type == InventoryLocation::CURRENT_PLAYER) - return false; // Only used internally on the client, never sent - if (loc.type == InventoryLocation::PLAYER) { - // Allow access to own inventory in all cases - return loc.name == player->getName(); - } - if (loc.type == InventoryLocation::DETACHED) { - if (!getInventoryMgr()->checkDetachedInventoryAccess(loc, player->getName())) - return false; - } - if (!player_has_interact) { + // Players without interact may modify their own inventory + if (!player_has_interact && loc.type != InventoryLocation::PLAYER) { infostream << "Cannot modify foreign inventory: " << "No interact privilege" << std::endl; return false; } - return true; + + switch (loc.type) { + case InventoryLocation::CURRENT_PLAYER: + // Only used internally on the client, never sent + return false; + case InventoryLocation::PLAYER: + // Allow access to own inventory in all cases + return loc.name == player->getName(); + case InventoryLocation::NODEMETA: + { + // Check for out-of-range interaction + v3f node_pos = intToFloat(loc.p, BS); + v3f player_pos = player->getPlayerSAO()->getEyePosition(); + f32 d = player_pos.getDistanceFrom(node_pos); + return checkInteractDistance(player, d, "inventory"); + } + case InventoryLocation::DETACHED: + return getInventoryMgr()->checkDetachedInventoryAccess(loc, player->getName()); + default: + return false; + } }; /* @@ -664,18 +675,6 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) !check_inv_access(ma->to_inv)) return; - InventoryLocation *remote = ma->from_inv.type == InventoryLocation::PLAYER ? - &ma->to_inv : &ma->from_inv; - - // Check for out-of-range interaction - if (remote->type == InventoryLocation::NODEMETA) { - v3f node_pos = intToFloat(remote->p, BS); - v3f player_pos = player->getPlayerSAO()->getEyePosition(); - f32 d = player_pos.getDistanceFrom(node_pos); - if (!checkInteractDistance(player, d, "inventory")) - return; - } - /* Disable moving items out of craftpreview */ From 847860fc5cf8867deb45646670ce1f11c3f977b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= <34514239+appgurueu@users.noreply.github.com> Date: Tue, 30 Mar 2021 21:49:50 +0200 Subject: [PATCH 574/624] Block & report player self-interaction (#11137) --- doc/lua_api.txt | 1 + src/network/serverpackethandler.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index d3165b9fd..790ab32f4 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -4654,6 +4654,7 @@ Call these functions only at load time! * `cheat`: `{type=}`, where `` is one of: * `moved_too_fast` * `interacted_too_far` + * `interacted_with_self` * `interacted_while_dead` * `finished_unknown_dig` * `dug_unbreakable` diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index b863e1828..fd5aed9d1 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -1041,6 +1041,12 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) if (pointed.type == POINTEDTHING_NODE) { target_pos = intToFloat(pointed.node_undersurface, BS); } else if (pointed.type == POINTEDTHING_OBJECT) { + if (playersao->getId() == pointed_object->getId()) { + actionstream << "Server: " << player->getName() + << " attempted to interact with themselves" << std::endl; + m_script->on_cheat(playersao, "interacted_with_self"); + return; + } target_pos = pointed_object->getBasePosition(); } float d = playersao->getEyePosition().getDistanceFrom(target_pos); From e5f802ab5cb32b242b0261000f8836a7da72a4bc Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 2 Apr 2021 16:31:44 +0200 Subject: [PATCH 575/624] Fix server favorites not saving when client/serverlist/ doesn't exist already (#11152) --- builtin/mainmenu/serverlistmgr.lua | 10 ++++++---- src/script/lua_api/l_mainmenu.cpp | 19 +++++++++++-------- src/script/lua_api/l_mainmenu.h | 2 +- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/builtin/mainmenu/serverlistmgr.lua b/builtin/mainmenu/serverlistmgr.lua index 9876d8ac5..964d0c584 100644 --- a/builtin/mainmenu/serverlistmgr.lua +++ b/builtin/mainmenu/serverlistmgr.lua @@ -90,8 +90,11 @@ function serverlistmgr.sync() end -------------------------------------------------------------------------------- -local function get_favorites_path() +local function get_favorites_path(folder) local base = core.get_user_path() .. DIR_DELIM .. "client" .. DIR_DELIM .. "serverlist" .. DIR_DELIM + if folder then + return base + end return base .. core.settings:get("serverlist_file") end @@ -103,9 +106,8 @@ local function save_favorites(favorites) core.settings:set("serverlist_file", filename:sub(1, #filename - 4) .. ".json") end - local path = get_favorites_path() - core.create_dir(path) - core.safe_file_write(path, core.write_json(favorites)) + assert(core.create_dir(get_favorites_path(true))) + core.safe_file_write(get_favorites_path(), core.write_json(favorites)) end -------------------------------------------------------------------------------- diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index ba7f708a4..3e9709bde 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -716,21 +716,24 @@ int ModApiMainMenu::l_get_mainmenu_path(lua_State *L) } /******************************************************************************/ -bool ModApiMainMenu::mayModifyPath(const std::string &path) +bool ModApiMainMenu::mayModifyPath(std::string path) { + path = fs::RemoveRelativePathComponents(path); + if (fs::PathStartsWith(path, fs::TempPath())) return true; - if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "games"))) - return true; + std::string path_user = fs::RemoveRelativePathComponents(porting::path_user); - if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "mods"))) + if (fs::PathStartsWith(path, path_user + DIR_DELIM "client")) return true; - - if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "textures"))) + if (fs::PathStartsWith(path, path_user + DIR_DELIM "games")) return true; - - if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "worlds"))) + if (fs::PathStartsWith(path, path_user + DIR_DELIM "mods")) + return true; + if (fs::PathStartsWith(path, path_user + DIR_DELIM "textures")) + return true; + if (fs::PathStartsWith(path, path_user + DIR_DELIM "worlds")) return true; if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_cache))) diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index 49ce7c251..33ac9e721 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -58,7 +58,7 @@ private: * @param path path to check * @return true if the path may be modified */ - static bool mayModifyPath(const std::string &path); + static bool mayModifyPath(std::string path); //api calls From 43e262f13e8046dbe756cbfa45bf78e022e010cc Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 5 Apr 2021 15:21:43 +0200 Subject: [PATCH 576/624] Don't apply connection timeout limit to locally hosted servers fixes #11085 --- src/client/game.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/game.cpp b/src/client/game.cpp index 3c58fb46f..e3c40130f 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -1532,7 +1532,7 @@ bool Game::connectToServer(const GameStartData &start_data, } else { wait_time += dtime; // Only time out if we aren't waiting for the server we started - if (!start_data.isSinglePlayer() && wait_time > 10) { + if (!start_data.address.empty() && wait_time > 10) { *error_message = "Connection timed out."; errorstream << *error_message << std::endl; break; From 1c89a07226d069817ffd8ad4034e00b8fc1b96d5 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 22 Mar 2021 01:22:22 +0300 Subject: [PATCH 577/624] Restore minimal normal texture support (for minimap shading) --- src/client/game.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client/game.cpp b/src/client/game.cpp index e3c40130f..fbdbc4f5f 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -425,6 +425,7 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter CachedPixelShaderSetting m_camera_offset_pixel; CachedPixelShaderSetting m_camera_offset_vertex; CachedPixelShaderSetting m_base_texture; + CachedPixelShaderSetting m_normal_texture; Client *m_client; public: @@ -458,6 +459,7 @@ public: m_camera_offset_pixel("cameraOffset"), m_camera_offset_vertex("cameraOffset"), m_base_texture("baseTexture"), + m_normal_texture("normalTexture"), m_client(client) { g_settings->registerChangedCallback("enable_fog", settingsCallback, this); @@ -545,8 +547,9 @@ public: m_camera_offset_pixel.set(camera_offset_array, services); m_camera_offset_vertex.set(camera_offset_array, services); - SamplerLayer_t base_tex = 0; + SamplerLayer_t base_tex = 0, normal_tex = 1; m_base_texture.set(&base_tex, services); + m_normal_texture.set(&normal_tex, services); } }; From ae1d82c3256e25de97bf93b4fd87033bc9012159 Mon Sep 17 00:00:00 2001 From: savilli <78875209+savilli@users.noreply.github.com> Date: Fri, 26 Feb 2021 23:21:20 +0300 Subject: [PATCH 578/624] Fix hud_change and hud_remove after hud_add (#10997) --- src/client/client.h | 8 ------- src/client/game.cpp | 30 ++++++++++++++++------- src/network/clientpackethandler.cpp | 37 +++++++++++------------------ 3 files changed, 35 insertions(+), 40 deletions(-) diff --git a/src/client/client.h b/src/client/client.h index 25a1b97ba..2dba1506e 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -415,11 +415,6 @@ public: return m_csm_restriction_flags & flag; } - inline std::unordered_map &getHUDTranslationMap() - { - return m_hud_server_to_client; - } - bool joinModChannel(const std::string &channel) override; bool leaveModChannel(const std::string &channel) override; bool sendModChannelMessage(const std::string &channel, @@ -556,9 +551,6 @@ private: // Relation of client id to object id std::unordered_map m_sounds_to_objects; - // Map server hud ids to client hud ids - std::unordered_map m_hud_server_to_client; - // Privileges std::unordered_set m_privileges; diff --git a/src/client/game.cpp b/src/client/game.cpp index fbdbc4f5f..a88972d53 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -859,6 +859,9 @@ private: Hud *hud = nullptr; Minimap *mapper = nullptr; + // Map server hud ids to client hud ids + std::unordered_map m_hud_server_to_client; + GameRunData runData; Flags m_flags; @@ -2605,12 +2608,11 @@ void Game::handleClientEvent_HandleParticleEvent(ClientEvent *event, void Game::handleClientEvent_HudAdd(ClientEvent *event, CameraOrientation *cam) { LocalPlayer *player = client->getEnv().getLocalPlayer(); - auto &hud_server_to_client = client->getHUDTranslationMap(); u32 server_id = event->hudadd.server_id; // ignore if we already have a HUD with that ID - auto i = hud_server_to_client.find(server_id); - if (i != hud_server_to_client.end()) { + auto i = m_hud_server_to_client.find(server_id); + if (i != m_hud_server_to_client.end()) { delete event->hudadd.pos; delete event->hudadd.name; delete event->hudadd.scale; @@ -2638,7 +2640,7 @@ void Game::handleClientEvent_HudAdd(ClientEvent *event, CameraOrientation *cam) e->size = *event->hudadd.size; e->z_index = event->hudadd.z_index; e->text2 = *event->hudadd.text2; - hud_server_to_client[server_id] = player->addHud(e); + m_hud_server_to_client[server_id] = player->addHud(e); delete event->hudadd.pos; delete event->hudadd.name; @@ -2654,18 +2656,28 @@ void Game::handleClientEvent_HudAdd(ClientEvent *event, CameraOrientation *cam) void Game::handleClientEvent_HudRemove(ClientEvent *event, CameraOrientation *cam) { LocalPlayer *player = client->getEnv().getLocalPlayer(); - HudElement *e = player->removeHud(event->hudrm.id); - delete e; + + auto i = m_hud_server_to_client.find(event->hudrm.id); + if (i != m_hud_server_to_client.end()) { + HudElement *e = player->removeHud(i->second); + delete e; + m_hud_server_to_client.erase(i); + } + } void Game::handleClientEvent_HudChange(ClientEvent *event, CameraOrientation *cam) { LocalPlayer *player = client->getEnv().getLocalPlayer(); - u32 id = event->hudchange.id; - HudElement *e = player->getHud(id); + HudElement *e = nullptr; - if (e == NULL) { + auto i = m_hud_server_to_client.find(event->hudchange.id); + if (i != m_hud_server_to_client.end()) { + e = player->getHud(i->second); + } + + if (e == nullptr) { delete event->hudchange.v3fdata; delete event->hudchange.v2fdata; delete event->hudchange.sdata; diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index 65db02300..44bd81dac 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -1095,16 +1095,10 @@ void Client::handleCommand_HudRemove(NetworkPacket* pkt) *pkt >> server_id; - auto i = m_hud_server_to_client.find(server_id); - if (i != m_hud_server_to_client.end()) { - int client_id = i->second; - m_hud_server_to_client.erase(i); - - ClientEvent *event = new ClientEvent(); - event->type = CE_HUDRM; - event->hudrm.id = client_id; - m_client_event_queue.push(event); - } + ClientEvent *event = new ClientEvent(); + event->type = CE_HUDRM; + event->hudrm.id = server_id; + m_client_event_queue.push(event); } void Client::handleCommand_HudChange(NetworkPacket* pkt) @@ -1131,19 +1125,16 @@ void Client::handleCommand_HudChange(NetworkPacket* pkt) else *pkt >> intdata; - std::unordered_map::const_iterator i = m_hud_server_to_client.find(server_id); - if (i != m_hud_server_to_client.end()) { - ClientEvent *event = new ClientEvent(); - event->type = CE_HUDCHANGE; - event->hudchange.id = i->second; - event->hudchange.stat = (HudElementStat)stat; - event->hudchange.v2fdata = new v2f(v2fdata); - event->hudchange.v3fdata = new v3f(v3fdata); - event->hudchange.sdata = new std::string(sdata); - event->hudchange.data = intdata; - event->hudchange.v2s32data = new v2s32(v2s32data); - m_client_event_queue.push(event); - } + ClientEvent *event = new ClientEvent(); + event->type = CE_HUDCHANGE; + event->hudchange.id = server_id; + event->hudchange.stat = (HudElementStat)stat; + event->hudchange.v2fdata = new v2f(v2fdata); + event->hudchange.v3fdata = new v3f(v3fdata); + event->hudchange.sdata = new std::string(sdata); + event->hudchange.data = intdata; + event->hudchange.v2s32data = new v2s32(v2s32data); + m_client_event_queue.push(event); } void Client::handleCommand_HudSetFlags(NetworkPacket* pkt) From aeafcce314fc863716d45dd5e1e38cb42aea15e7 Mon Sep 17 00:00:00 2001 From: Giov4 Date: Wed, 24 Feb 2021 19:31:05 +0000 Subject: [PATCH 579/624] Translated using Weblate (Italian) Currently translated at 99.7% (1352 of 1356 strings) --- po/it/minetest.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/po/it/minetest.po b/po/it/minetest.po index 897859222..b9bfa1b6c 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-13 08:50+0000\n" -"Last-Translator: Jacques Lagrange \n" +"PO-Revision-Date: 2021-02-25 23:50+0000\n" +"Last-Translator: Giov4 \n" "Language-Team: Italian \n" "Language: it\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -747,7 +747,7 @@ msgstr "Rinomina" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" -msgstr "Disinstalla la raccolta" +msgstr "Disinstalla pacchetto" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" @@ -1888,7 +1888,7 @@ msgstr "Selezione raggio" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "Schermata" +msgstr "Screenshot" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" @@ -3409,7 +3409,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Format of screenshots." -msgstr "Formato delle schermate." +msgstr "Formato degli screenshot." #: src/settings_translation_file.cpp msgid "Formspec Default Background Color" @@ -4764,7 +4764,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per scattare schermate.\n" +"Tasto per scattare gli screenshot.\n" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5784,7 +5784,7 @@ msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" -"Percorso dove salvare le schermate. Può essere un percorso assoluto o " +"Percorso dove salvare gli screenshot. Può essere un percorso assoluto o " "relativo.\n" "La cartella sarà create se non esiste già." @@ -6141,15 +6141,15 @@ msgstr "Larghezza dello schermo" #: src/settings_translation_file.cpp msgid "Screenshot folder" -msgstr "Cartella delle schermate" +msgstr "Cartella degli screenshot" #: src/settings_translation_file.cpp msgid "Screenshot format" -msgstr "Formato delle schermate" +msgstr "Formato degli screenshot" #: src/settings_translation_file.cpp msgid "Screenshot quality" -msgstr "Qualità delle schermate" +msgstr "Qualità degli screenshot" #: src/settings_translation_file.cpp msgid "" @@ -6157,8 +6157,8 @@ msgid "" "1 means worst quality; 100 means best quality.\n" "Use 0 for default quality." msgstr "" -"Qualità delle schermate. Usata solo per il formato JPEG.\n" -"1 significa qualità peggiore, 100 significa qualità migliore.\n" +"Qualità degli screenshot. Usata solo per il formato JPEG.\n" +"1 significa la qualità peggiore, 100 quella migliore.\n" "Usa 0 per la qualità predefinita." #: src/settings_translation_file.cpp From 34883d356ed637de13191b2750581b133a27f0b5 Mon Sep 17 00:00:00 2001 From: Mateusz Mendel Date: Wed, 24 Feb 2021 14:58:08 +0000 Subject: [PATCH 580/624] Translated using Weblate (Polish) Currently translated at 71.2% (966 of 1356 strings) --- po/pl/minetest.po | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/po/pl/minetest.po b/po/pl/minetest.po index 4c5d166e8..8b4d1d407 100644 --- a/po/pl/minetest.po +++ b/po/pl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Polish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2020-12-27 00:29+0000\n" -"Last-Translator: Atrate \n" +"PO-Revision-Date: 2021-02-25 23:50+0000\n" +"Last-Translator: Mateusz Mendel \n" "Language-Team: Polish \n" "Language: pl\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -108,8 +108,9 @@ msgstr "" "znaki. Tylko znaki od [a-z, 0-9 i _] są dozwolone." #: builtin/mainmenu/dlg_config_world.lua +#, fuzzy msgid "Find More Mods" -msgstr "" +msgstr "Znajdź więcej modów" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -153,22 +154,28 @@ msgid "enabled" msgstr "włączone" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" już istnieje. Czy chciałbyś to nadpisać?" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "Zależności $1 i $2 będą zainstalowane." #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "$1 by $2" -msgstr "" +msgstr "$1 przez $2" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 pobierany,\n" +"$2 w kolejce" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -176,12 +183,14 @@ msgid "$1 downloading..." msgstr "Ładowanie..." #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "$1 wymaga zależności, których nie można znaleźć." #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "$1 będzie zainstalowany, a zależności $2 zostaną pominięte." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" @@ -258,15 +267,15 @@ msgstr "Wycisz dźwięk" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Nadpisz" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Proszę sprawdzić, czy gra podstawowa jest poprawnie zainstalowana." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "W kolejce" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -282,11 +291,11 @@ msgstr "Aktualizacja" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Zaktualizuj wszystko [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Pokaż więcej informacji w przeglądarce" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -303,7 +312,7 @@ msgstr "Wysokość mrozu" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "Wysokość suchości" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -364,7 +373,7 @@ msgstr "Gra" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Generuj niefraktalny teren: oceany i podziemia" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" @@ -443,13 +452,15 @@ msgstr "Ziarno losowości" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Płynne przejście między biomami" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Struktury pojawiające się na terenie (brak wpływu na drzewa i trawę w " +"dżungli stworzone przez v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" From 740d0da5ee8fcd2d2960579e2849695b0e6fa74a Mon Sep 17 00:00:00 2001 From: narrnika Date: Wed, 24 Feb 2021 15:36:56 +0000 Subject: [PATCH 581/624] Translated using Weblate (Russian) Currently translated at 99.3% (1347 of 1356 strings) --- po/ru/minetest.po | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 9f78a12da..7ea2b0235 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-13 08:50+0000\n" -"Last-Translator: Ertu (Er2, Err) \n" +"PO-Revision-Date: 2021-02-25 23:50+0000\n" +"Last-Translator: narrnika \n" "Language-Team: Russian \n" "Language: ru\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -3015,9 +3015,8 @@ msgid "Enable console window" msgstr "Включить окно консоли" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "Включить творческий режим для вновь созданных карт." +msgstr "Включить творческий режим для всех игроков." #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -4341,13 +4340,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Клавиша прыжка.\n" +"Клавиша размещения.\n" "См. http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -6282,12 +6280,11 @@ msgid "Show entity selection boxes" msgstr "Показывать область выделения объектов" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"Установка языка. Оставьте пустым для использования системного языка.\n" +"Показывать область выделения объектов\n" "Требует перезапуска после изменения." #: src/settings_translation_file.cpp From 6b4210a2ea71f3f06bf6dc50637b0329d9835728 Mon Sep 17 00:00:00 2001 From: Marian Date: Wed, 24 Feb 2021 23:34:12 +0000 Subject: [PATCH 582/624] Translated using Weblate (Slovak) Currently translated at 100.0% (1356 of 1356 strings) --- po/sk/minetest.po | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/po/sk/minetest.po b/po/sk/minetest.po index c8249c0f0..f3c6f4445 100644 --- a/po/sk/minetest.po +++ b/po/sk/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"PO-Revision-Date: 2021-03-14 11:02+0000\n" "Last-Translator: Marian \n" "Language-Team: Slovak \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -190,7 +190,7 @@ msgstr "$1 bude nainštalovaný, a $2 závislosti budú preskočené." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" -msgstr "Všetky balíčky" +msgstr "Všetko" #: builtin/mainmenu/dlg_contentstore.lua msgid "Already installed" @@ -198,7 +198,7 @@ msgstr "Už je nainštalované" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "Naspäť do hlavného menu" +msgstr "Hlavné menu" #: builtin/mainmenu/dlg_contentstore.lua msgid "Base Game:" @@ -268,7 +268,7 @@ msgstr "Čaká v rade" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "Balíčky textúr" +msgstr "Textúry" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" @@ -577,7 +577,7 @@ msgstr "Prosím vlož platné číslo." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Obnov štandardné hodnoty" +msgstr "Obnov štand. hodnoty" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" @@ -710,9 +710,8 @@ msgid "Loading..." msgstr "Nahrávam..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "Skriptovanie na strane klienta je zakázané" +msgstr "Zoznam verejných serverov je zakázaný" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -1023,7 +1022,7 @@ msgstr "Aby mohli byť aktivované shadery, musí sa použiť OpenGL." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "Tone Mapping (Optim. farieb)" +msgstr "Optim. farieb" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" @@ -3005,9 +3004,8 @@ msgid "Enable console window" msgstr "Aktivuj okno konzoly" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "Aktivuj kreatívny režim pre novo vytvorené mapy." +msgstr "Aktivuj kreatívny režim pre všetkých hráčov" #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -4987,13 +4985,13 @@ msgid "" "- verbose" msgstr "" "Úroveň ladiacich informácií, ktoré budú zapísané do debug.txt:\n" -"- (bez logovania)\n" -"- žiadna (správy bez úrovne)\n" -"- chyby\n" -"- varovania\n" -"- akcie\n" -"- informácie\n" -"- všetko" +"- (bez logovania)\n" +"- none - žiadna (správy bez úrovne)\n" +"- error - chyby\n" +"- warning - varovania\n" +"- akcie\n" +"- info - informácie\n" +"- verbose - všetko" #: src/settings_translation_file.cpp msgid "Light curve boost" @@ -6276,9 +6274,8 @@ msgstr "" "Po zmene je požadovaný reštart." #: src/settings_translation_file.cpp -#, fuzzy msgid "Show nametag backgrounds by default" -msgstr "Štandardne tučné písmo" +msgstr "Pri mene zobraz štandardne pozadie" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -7107,6 +7104,8 @@ msgid "" "Whether nametag backgrounds should be shown by default.\n" "Mods may still set a background." msgstr "" +"Či sa má pri mene zobraziť pozadie.\n" +"Rozšírenia stále môžu pozadie nastaviť." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." From 52b2eacd379fbffd9fc9192d906d574c2f82f047 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sun, 28 Feb 2021 11:03:12 +0000 Subject: [PATCH 583/624] Translated using Weblate (German) Currently translated at 100.0% (1356 of 1356 strings) --- po/de/minetest.po | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/po/de/minetest.po b/po/de/minetest.po index 484c4707f..f3894fe6f 100644 --- a/po/de/minetest.po +++ b/po/de/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: German (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"PO-Revision-Date: 2021-03-02 15:50+0000\n" "Last-Translator: Wuzzy \n" "Language-Team: German \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -707,9 +707,8 @@ msgid "Loading..." msgstr "Lädt …" #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "Clientseitige Skripte sind deaktiviert" +msgstr "Öffentliche Serverliste ist deaktiviert" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -1286,7 +1285,7 @@ msgstr "Unbegrenzte Sichtweite aktiviert" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "Zum Hauptmenü" +msgstr "Hauptmenü" #: src/client/game.cpp msgid "Exit to OS" @@ -3038,9 +3037,8 @@ msgid "Enable console window" msgstr "Konsolenfenster aktivieren" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "Kreativmodus für neu erstellte Karten aktivieren." +msgstr "Kreativmodus für alle Spieler aktivieren" #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -6390,9 +6388,8 @@ msgstr "" "Nach Änderung ist ein Neustart erforderlich." #: src/settings_translation_file.cpp -#, fuzzy msgid "Show nametag backgrounds by default" -msgstr "Schrift standardmäßig fett" +msgstr "Namensschildhintergründe standardmäßig anzeigen" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -7260,6 +7257,8 @@ msgid "" "Whether nametag backgrounds should be shown by default.\n" "Mods may still set a background." msgstr "" +"Ob Namensschildhintergründe standardmäßig angezeigt werden sollen.\n" +"Mods können immer noch einen Hintergrund setzen." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." From be74ed9ab689c53aee395fa7f91168a1aaa18f8c Mon Sep 17 00:00:00 2001 From: Ayes Date: Sun, 28 Feb 2021 23:22:29 +0000 Subject: [PATCH 584/624] Translated using Weblate (Estonian) Currently translated at 39.5% (536 of 1356 strings) --- po/et/minetest.po | 98 +++++++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 50 deletions(-) diff --git a/po/et/minetest.po b/po/et/minetest.po index 5feb9be60..1b9440046 100644 --- a/po/et/minetest.po +++ b/po/et/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Estonian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2020-12-05 15:29+0000\n" -"Last-Translator: Janar Leas \n" +"PO-Revision-Date: 2021-03-02 15:50+0000\n" +"Last-Translator: Ayes \n" "Language-Team: Estonian \n" "Language: et\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -153,7 +153,7 @@ msgstr "Sisse lülitatud" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" on juba olemas. Kas sa tahad seda üle kirjutada?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." @@ -170,9 +170,8 @@ msgid "" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Allalaadimine..." +msgstr "$1 allalaadimine..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." @@ -180,29 +179,27 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "" +msgstr "Installitakse $1 ja $2 sõltuvus jäetakse vahele." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Kõik pakid" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Nupp juba kasutuses" +msgstr "Juba installeeritud" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Tagasi peamenüüsse" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Võõrusta" +msgstr "Põhi Mäng:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB ei ole olemas kui Minetest on kompileeritud ilma cURL'ita" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." @@ -222,14 +219,13 @@ msgid "Install" msgstr "Paigalda" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Paigalda" +msgstr "Paigalda $1" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy msgid "Install missing dependencies" -msgstr "Valikulised sõltuvused:" +msgstr "Paigalda valikulised sõltuvused" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -245,21 +241,21 @@ msgid "No results" msgstr "Tulemused puuduvad" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Uuenda" +msgstr "Värskendusi pole" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "Not found" -msgstr "" +msgstr "Ei leitud" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Ümber kirjuta" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Palun tee kindlaks et põhi mäng on õige." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" @@ -279,11 +275,11 @@ msgstr "Uuenda" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Uuenda kõiki [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "Vaata rohkem infot veebibrauseris" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -705,9 +701,8 @@ msgid "Loading..." msgstr "Laadimine..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "Kliendipoolne skriptimine on keelatud" +msgstr "Avalike serverite loend on keelatud" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -768,9 +763,8 @@ msgid "Credits" msgstr "Tegijad" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Vali kataloog" +msgstr "Avalik Kasutaja Andmete Kaust" #: builtin/mainmenu/tab_credits.lua msgid "" @@ -816,7 +810,7 @@ msgstr "Lisa mänge sisuvaramust" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Nimi" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -840,9 +834,8 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Vali maailm:" +msgstr "Vali mod" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -996,7 +989,7 @@ msgstr "Varjutajad" #: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Shaders (experimental)" -msgstr "Lendsaared (katseline)" +msgstr "Shaderid (eksperimentaalsed)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1196,7 +1189,7 @@ msgid "Continue" msgstr "Jätka" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1219,12 +1212,12 @@ msgstr "" "- %s: liigu vasakule\n" "- %s: liigu paremale\n" "- %s: hüppa/roni\n" +"- %s: kaeva/viruta\n" +"- %s: paigalda/kasuta\n" "- %s: hiili/mine alla\n" "- %s: viska ese\n" "- %s: seljakott\n" "- Hiir: keera/vaata\n" -"- Hiire vasakklõps: kaeva/viruta\n" -"- Hiire paremklõps: paigalda/kasuta\n" "- Hiireratas: vali ese\n" "- %s: vestlus\n" @@ -1341,16 +1334,18 @@ msgid "Item definitions..." msgstr "Esemete määratlused..." #: src/client/game.cpp +#, fuzzy msgid "KiB/s" -msgstr "" +msgstr "KiB/s" #: src/client/game.cpp msgid "Media..." msgstr "Meedia..." #: src/client/game.cpp +#, fuzzy msgid "MiB/s" -msgstr "" +msgstr "MiB/s" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" @@ -1444,9 +1439,9 @@ msgid "Viewing range is at minimum: %d" msgstr "Vaate kaugus on vähim võimalik: %d" #: src/client/game.cpp -#, c-format +#, c-format, fuzzy msgid "Volume changed to %d%%" -msgstr "" +msgstr "helitugevus muutetud %d%%-ks" #: src/client/game.cpp msgid "Wireframe shown" @@ -1454,11 +1449,11 @@ msgstr "" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "Suumimine on praegu mängu või modi tõttu keelatud" #: src/client/game.cpp msgid "ok" -msgstr "" +msgstr "sobib" #: src/client/gameui.cpp msgid "Chat hidden" @@ -1495,7 +1490,7 @@ msgstr "Tagasinihe" #: src/client/keycode.cpp msgid "Caps Lock" -msgstr "" +msgstr "Suurtähelukk" #: src/client/keycode.cpp msgid "Clear" @@ -1753,14 +1748,14 @@ msgid "Minimap hidden" msgstr "Pisikaart peidetud" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Radarkaart, Suurendus ×1" +msgstr "Radarkaart, Suurendus ×%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Pinnakaart, Suurendus ×1" +msgstr "Pinnakaart, Suurendus ×%d" #: src/client/minimap.cpp #, fuzzy @@ -1773,7 +1768,7 @@ msgstr "Paroolid ei ole samad!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "Registreeru ja liitu" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1799,7 +1794,7 @@ msgstr "Iseastuja" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "" +msgstr "Automaatne hüppamine" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" @@ -1872,16 +1867,18 @@ msgid "Local command" msgstr "Kohalik käsk" #: src/gui/guiKeyChangeMenu.cpp +#, fuzzy msgid "Mute" -msgstr "" +msgstr "Summuta" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" msgstr "Järgmine üksus" #: src/gui/guiKeyChangeMenu.cpp +#, fuzzy msgid "Prev. item" -msgstr "" +msgstr "Eelmine asi" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" @@ -1966,8 +1963,9 @@ msgstr "Hääle Volüüm: " #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp +#, fuzzy msgid "Enter " -msgstr "" +msgstr "Sisesta " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -2046,7 +2044,7 @@ msgstr "3D pilved" #: src/settings_translation_file.cpp msgid "3D mode" -msgstr "" +msgstr "3D-režiim" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" From e7ab875b477ddbeaf71fba2b0ebd958b586eb84c Mon Sep 17 00:00:00 2001 From: winniepee Date: Mon, 1 Mar 2021 15:35:51 +0000 Subject: [PATCH 585/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 92.4% (1254 of 1356 strings) --- po/zh_CN/minetest.po | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index aa816e11d..57853e413 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-01-20 15:10+0000\n" -"Last-Translator: ZhiZe-ZG \n" +"PO-Revision-Date: 2021-03-02 15:50+0000\n" +"Last-Translator: winniepee \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -20,7 +20,7 @@ msgstr "重生" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "您已死亡" +msgstr "您已经死亡" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -36,7 +36,7 @@ msgstr "发生了错误:" #: builtin/fstk/ui.lua msgid "Main menu" -msgstr "主菜单" +msgstr "主单" #: builtin/fstk/ui.lua msgid "Reconnect" @@ -151,7 +151,7 @@ msgstr "启用" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\"已经存在,你想覆写吗?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." @@ -213,16 +213,15 @@ msgstr "下载 $1 失败" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "子游戏" +msgstr "游戏" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" msgstr "安装" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "安装" +msgstr "安装$1" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -243,22 +242,20 @@ msgid "No results" msgstr "无结果" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "更新" +msgstr "没有更新" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "静音" +msgstr "未找到" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "覆写" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "请查看游戏是否正确。" #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" From 4e620beb75d1b65b507b043b4b01b1293c9bc7e0 Mon Sep 17 00:00:00 2001 From: "Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi" Date: Sat, 27 Feb 2021 15:28:00 +0000 Subject: [PATCH 586/624] Translated using Weblate (Malay) Currently translated at 100.0% (1356 of 1356 strings) --- po/ms/minetest.po | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/po/ms/minetest.po b/po/ms/minetest.po index d35e063cc..d74807eb1 100644 --- a/po/ms/minetest.po +++ b/po/ms/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Malay (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"PO-Revision-Date: 2021-03-10 17:02+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" "Language-Team: Malay Date: Sun, 28 Feb 2021 15:11:57 +0000 Subject: [PATCH 587/624] Translated using Weblate (Greek) Currently translated at 8.8% (120 of 1356 strings) --- po/el/minetest.po | 204 +++++++++++++++++++++++----------------------- 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/po/el/minetest.po b/po/el/minetest.po index b9b6182bf..62db47b75 100644 --- a/po/el/minetest.po +++ b/po/el/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Greek (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-13 08:50+0000\n" -"Last-Translator: Michalis \n" +"PO-Revision-Date: 2021-03-02 15:50+0000\n" +"Last-Translator: THANOS SIOURDAKIS \n" "Language-Team: Greek \n" "Language: el\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Πέθανες" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Εντάξει" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -139,15 +139,15 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "" +msgstr "Αποθήκευση" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "" +msgstr "Κόσμος:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "" +msgstr "ενεργοποιήθηκε" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" @@ -182,15 +182,15 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" -msgstr "" +msgstr "Όλα τα Πακέτα" #: builtin/mainmenu/dlg_contentstore.lua msgid "Already installed" -msgstr "" +msgstr "Ήδη εγκαταστημένο" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "" +msgstr "Πίσω στο Κύριο Μενού" #: builtin/mainmenu/dlg_contentstore.lua msgid "Base Game:" @@ -211,11 +211,11 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "" +msgstr "Παιχνίδια" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "" +msgstr "Εγκατάσταση" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install $1" @@ -236,7 +236,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "" +msgstr "Χωρίς αποτελέσματα" #: builtin/mainmenu/dlg_contentstore.lua msgid "No updates" @@ -244,7 +244,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Not found" -msgstr "" +msgstr "Δε βρέθηκε" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" @@ -264,15 +264,15 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" -msgstr "" +msgstr "Απεγκατάσταση" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "" +msgstr "Ενημέρωση" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Ενημέρωση Όλων [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" @@ -312,7 +312,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" -msgstr "" +msgstr "Δημιουργία" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" @@ -344,7 +344,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "" +msgstr "Παιχνίδι" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" @@ -352,7 +352,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Λόφοι" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -364,7 +364,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Λίμνες" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" @@ -384,7 +384,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Βουνά" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -396,7 +396,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" -msgstr "" +msgstr "Κανένα παιχνίδι επιλεγμένο" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" @@ -408,7 +408,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "Ποτάμια" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" @@ -417,7 +417,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "" +msgstr "Σπόρος" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" @@ -467,7 +467,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "World name" -msgstr "" +msgstr "Όνομα κόσμου" #: builtin/mainmenu/dlg_create_world.lua msgid "You have no games installed." @@ -481,7 +481,7 @@ msgstr "" #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" -msgstr "" +msgstr "Διαγραφή" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" @@ -497,7 +497,7 @@ msgstr "" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "" +msgstr "Αποδοχή" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" @@ -523,7 +523,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" -msgstr "" +msgstr "Περιήγηση" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" @@ -531,7 +531,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "" +msgstr "Επεξεργασία" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" @@ -571,15 +571,15 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Search" -msgstr "" +msgstr "Αναζήτηση" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "" +msgstr "Επιλογή φακέλου" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select file" -msgstr "" +msgstr "Επιλογή αρχείου" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" @@ -666,7 +666,7 @@ msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "" +msgstr "Εγκατάσταση: αρχείο: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" @@ -704,11 +704,11 @@ msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "" +msgstr "Περιήγηση διαδικτυακού περιεχομένου" #: builtin/mainmenu/tab_content.lua msgid "Content" -msgstr "" +msgstr "Περιεχόμενο" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" @@ -716,11 +716,11 @@ msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Information:" -msgstr "" +msgstr "Πληροφορίες:" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" -msgstr "" +msgstr "Εγκαταστημένα Πακέτα:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." @@ -732,7 +732,7 @@ msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Rename" -msgstr "" +msgstr "Μετονομασία" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" @@ -752,7 +752,7 @@ msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "" +msgstr "Μνείες" #: builtin/mainmenu/tab_credits.lua msgid "Open User Data Directory" @@ -802,11 +802,11 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "Όνομα" #: builtin/mainmenu/tab_local.lua msgid "New" -msgstr "" +msgstr "Νέο" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" @@ -814,7 +814,7 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Password" -msgstr "" +msgstr "Κωδικός" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -822,7 +822,7 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Port" -msgstr "" +msgstr "Θήρα" #: builtin/mainmenu/tab_local.lua msgid "Select Mods" @@ -830,23 +830,23 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Select World:" -msgstr "" +msgstr "Επιλογή Κόσμου:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" -msgstr "" +msgstr "Θήρα Διακομιστή" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "" +msgstr "Εκκίνηση Παιχνιδιού" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "" +msgstr "Διεύθυνση Αποθετηρίου" #: builtin/mainmenu/tab_online.lua msgid "Connect" -msgstr "" +msgstr "Σύνδεση" #: builtin/mainmenu/tab_online.lua msgid "Creative mode" @@ -870,7 +870,7 @@ msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Name / Password" -msgstr "" +msgstr "Όνομα / Κωδικός" #: builtin/mainmenu/tab_online.lua msgid "Ping" @@ -899,7 +899,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" -msgstr "" +msgstr "Όλες οι ρυθμίσεις" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" @@ -915,7 +915,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" -msgstr "" +msgstr "Αλλαγή πλήκτρων" #: builtin/mainmenu/tab_settings.lua msgid "Connected Glass" @@ -951,7 +951,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "None" -msgstr "" +msgstr "Κανένα" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" @@ -971,7 +971,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Settings" -msgstr "" +msgstr "Ρυθμίσεις" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" @@ -1031,7 +1031,7 @@ msgstr "" #: src/client/client.cpp msgid "Done!" -msgstr "" +msgstr "Έτοιμο!" #: src/client/client.cpp msgid "Initializing nodes" @@ -1063,7 +1063,7 @@ msgstr "" #: src/client/clientlauncher.cpp msgid "Main Menu" -msgstr "" +msgstr "Κύριο μενού" #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." @@ -1075,7 +1075,7 @@ msgstr "" #: src/client/clientlauncher.cpp msgid "Please choose a name!" -msgstr "" +msgstr "Παρακαλώ επιλέξτε ένα όνομα!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " @@ -1095,7 +1095,7 @@ msgstr "" #. When in doubt, test your translation. #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "no" +msgstr "needs_fallback_font" #: src/client/game.cpp msgid "" @@ -1105,7 +1105,7 @@ msgstr "" #: src/client/game.cpp msgid "- Address: " -msgstr "" +msgstr "- Διεύθυνση: " #: src/client/game.cpp msgid "- Creative Mode: " @@ -1121,7 +1121,7 @@ msgstr "" #: src/client/game.cpp msgid "- Port: " -msgstr "" +msgstr "- Θήρα: " #: src/client/game.cpp msgid "- Public: " @@ -1134,7 +1134,7 @@ msgstr "" #: src/client/game.cpp msgid "- Server Name: " -msgstr "" +msgstr "- Όνομα Διακομιστή: " #: src/client/game.cpp msgid "Automatic forward disabled" @@ -1174,7 +1174,7 @@ msgstr "" #: src/client/game.cpp msgid "Continue" -msgstr "" +msgstr "Συνέχεια" #: src/client/game.cpp #, c-format @@ -1241,11 +1241,11 @@ msgstr "" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "" +msgstr "Έξοδος στο Μενού" #: src/client/game.cpp msgid "Exit to OS" -msgstr "" +msgstr "Έξοδος στο ΛΣ" #: src/client/game.cpp msgid "Fast mode disabled" @@ -1281,7 +1281,7 @@ msgstr "" #: src/client/game.cpp msgid "Game info:" -msgstr "" +msgstr "Πληροφορίες Παιχνιδιού:" #: src/client/game.cpp msgid "Game paused" @@ -1365,11 +1365,11 @@ msgstr "" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "Ένταση Ήχου" #: src/client/game.cpp msgid "Sound muted" -msgstr "" +msgstr "Σίγαση Ήχου" #: src/client/game.cpp msgid "Sound system is disabled" @@ -1454,7 +1454,7 @@ msgstr "" #: src/client/keycode.cpp msgid "Clear" -msgstr "" +msgstr "Εκκαθάριση" #: src/client/keycode.cpp msgid "Control" @@ -1462,7 +1462,7 @@ msgstr "" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "Κάτω" #: src/client/keycode.cpp msgid "End" @@ -1478,7 +1478,7 @@ msgstr "" #: src/client/keycode.cpp msgid "Help" -msgstr "" +msgstr "Βοήθεια" #: src/client/keycode.cpp msgid "Home" @@ -1510,7 +1510,7 @@ msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "" +msgstr "Αριστερά" #: src/client/keycode.cpp msgid "Left Button" @@ -1535,7 +1535,7 @@ msgstr "" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" -msgstr "" +msgstr "Μενού" #: src/client/keycode.cpp msgid "Middle Button" @@ -1619,16 +1619,16 @@ msgstr "" #: src/client/keycode.cpp msgid "Pause" -msgstr "" +msgstr "Παύση" #: src/client/keycode.cpp msgid "Play" -msgstr "" +msgstr "Αναπαραγωγή" #. ~ "Print screen" key #: src/client/keycode.cpp msgid "Print" -msgstr "" +msgstr "Εκτύπωση" #: src/client/keycode.cpp msgid "Return" @@ -1636,7 +1636,7 @@ msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Right" -msgstr "" +msgstr "Δεξιά" #: src/client/keycode.cpp msgid "Right Button" @@ -1673,7 +1673,7 @@ msgstr "" #: src/client/keycode.cpp msgid "Sleep" -msgstr "" +msgstr "Ύπνος" #: src/client/keycode.cpp msgid "Snapshot" @@ -1689,7 +1689,7 @@ msgstr "" #: src/client/keycode.cpp msgid "Up" -msgstr "" +msgstr "Πάνω" #: src/client/keycode.cpp msgid "X Button 1" @@ -1701,7 +1701,7 @@ msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" -msgstr "" +msgstr "Μεγέθυνση" #: src/client/minimap.cpp msgid "Minimap hidden" @@ -1769,7 +1769,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" -msgstr "" +msgstr "Εντολή" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" @@ -1813,7 +1813,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Key already in use" -msgstr "" +msgstr "Το πλήκτρο ήδη χρησιμοποιείται" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" @@ -1825,11 +1825,11 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "" +msgstr "Σίγαση" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" -msgstr "" +msgstr "Επόμενο αντικείμενο" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" @@ -1841,7 +1841,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "" +msgstr "Στιγμιότυπο οθόνης" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" @@ -1889,27 +1889,27 @@ msgstr "" #: src/gui/guiPasswordChange.cpp msgid "Change" -msgstr "" +msgstr "Αλλαγή" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "" +msgstr "Επιβεβαίωση Κωδικού" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "" +msgstr "Νέος Κωδικός" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "" +msgstr "Παλιός Κωδικός" #: src/gui/guiVolumeChange.cpp msgid "Exit" -msgstr "" +msgstr "Έξοδος" #: src/gui/guiVolumeChange.cpp msgid "Muted" -msgstr "" +msgstr "Σε σίγαση" #: src/gui/guiVolumeChange.cpp msgid "Sound Volume: " @@ -2131,7 +2131,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Advanced" -msgstr "" +msgstr "Περισσότερα" #: src/settings_translation_file.cpp msgid "" @@ -2245,7 +2245,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Basic" -msgstr "" +msgstr "Βασικό" #: src/settings_translation_file.cpp msgid "Basic privileges" @@ -2459,7 +2459,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Clouds" -msgstr "" +msgstr "Σύννεφα" #: src/settings_translation_file.cpp msgid "Clouds are a client side effect." @@ -3103,7 +3103,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Fog" -msgstr "" +msgstr "Ομίχλη" #: src/settings_translation_file.cpp msgid "Fog start" @@ -3131,7 +3131,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Font size" -msgstr "" +msgstr "Μέγεθος γραμματοσειράς" #: src/settings_translation_file.cpp msgid "Font size of the default font in point (pt)." @@ -3236,7 +3236,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Full screen" -msgstr "" +msgstr "Πλήρης οθόνη" #: src/settings_translation_file.cpp msgid "Full screen BPP" @@ -3287,7 +3287,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Gravity" -msgstr "" +msgstr "Βαρύτητα" #: src/settings_translation_file.cpp msgid "Ground level" @@ -4362,7 +4362,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Language" -msgstr "" +msgstr "Γλώσσα" #: src/settings_translation_file.cpp msgid "Large cave depth" @@ -4941,7 +4941,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Mute sound" -msgstr "" +msgstr "Σίγαση ήχου" #: src/settings_translation_file.cpp msgid "" @@ -4969,7 +4969,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Network" -msgstr "" +msgstr "Δίκτυο" #: src/settings_translation_file.cpp msgid "" @@ -5132,7 +5132,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Player name" -msgstr "" +msgstr "Όνομα παίκτη" #: src/settings_translation_file.cpp msgid "Player transfer distance" @@ -5389,7 +5389,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Security" -msgstr "" +msgstr "Ασφάλεια" #: src/settings_translation_file.cpp msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" From 88517030a485f918fd4ebf1347a45e42840a4c32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Sat, 6 Mar 2021 06:01:12 +0000 Subject: [PATCH 588/624] Translated using Weblate (Turkish) Currently translated at 100.0% (1356 of 1356 strings) --- po/tr/minetest.po | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/po/tr/minetest.po b/po/tr/minetest.po index a2311124b..207b18a01 100644 --- a/po/tr/minetest.po +++ b/po/tr/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Turkish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"PO-Revision-Date: 2021-03-07 07:10+0000\n" "Last-Translator: Oğuz Ersen \n" "Language-Team: Turkish \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -700,9 +700,8 @@ msgid "Loading..." msgstr "Yükleniyor..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "İstemci tarafı betik devre dışı" +msgstr "Açık sunucu listesi devre dışı" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -2999,9 +2998,8 @@ msgid "Enable console window" msgstr "Konsol penceresini etkinleştir" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "Yeni yaratılan haritalar için yaratıcı kipi etkinleştir." +msgstr "Tüm oyuncular için yaratıcı kipi etkinleştir" #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -6264,9 +6262,8 @@ msgstr "" "Bunu değiştirdikten sonra yeniden başlatma gerekir." #: src/settings_translation_file.cpp -#, fuzzy msgid "Show nametag backgrounds by default" -msgstr "Öntanımlı kalın yazı tipi" +msgstr "Ad etiketi arka planlarını öntanımlı olarak göster" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -7105,6 +7102,8 @@ msgid "" "Whether nametag backgrounds should be shown by default.\n" "Mods may still set a background." msgstr "" +"Ad etiketi arka planlarının öntanımlı olarak gösterilip gösterilmeyileceği.\n" +"Modlar yine de bir arka plan ayarlayabilir." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." From c77c78cef502b0faf82583e98a0cababeef3e5af Mon Sep 17 00:00:00 2001 From: Tirifto Date: Sat, 6 Mar 2021 21:57:38 +0000 Subject: [PATCH 589/624] Translated using Weblate (Esperanto) Currently translated at 94.6% (1283 of 1356 strings) --- po/eo/minetest.po | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/po/eo/minetest.po b/po/eo/minetest.po index 64db5dd71..60e276136 100644 --- a/po/eo/minetest.po +++ b/po/eo/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Esperanto (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2020-07-17 08:41+0000\n" +"PO-Revision-Date: 2021-03-07 07:10+0000\n" "Last-Translator: Tirifto \n" "Language-Team: Esperanto \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -299,9 +299,8 @@ msgid "Altitude chill" msgstr "Alteca malvarmiĝo" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Alteca malvarmiĝo" +msgstr "Alteca sekeco" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" @@ -458,9 +457,8 @@ msgid "Temperate, Desert, Jungle, Tundra, Taiga" msgstr "Milda, Dezerto, Ĝangalo, Tundro, Tajgo" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "Bruo de terena bazo" +msgstr "Terensurfaca forfrotiĝo" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" From 683ef07312492c27fc5da4745922c1260d71126e Mon Sep 17 00:00:00 2001 From: abidin toumi Date: Tue, 16 Mar 2021 09:32:53 +0000 Subject: [PATCH 590/624] Translated using Weblate (Arabic) Currently translated at 25.7% (349 of 1356 strings) --- po/ar/minetest.po | 91 ++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 49 deletions(-) diff --git a/po/ar/minetest.po b/po/ar/minetest.po index 1ab09c2bd..9b037bf47 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2020-10-29 16:26+0000\n" +"PO-Revision-Date: 2021-03-19 20:18+0000\n" "Last-Translator: abidin toumi \n" "Language-Team: Arabic \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 4.3.2-dev\n" +"X-Generator: Weblate 4.5.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -159,11 +159,11 @@ msgstr "مُفعل" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" موجود مسبقًا. هل تريد الكتابة عليه؟" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "الاعتماديتان \"$1\" و $2 ستثبتان." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" @@ -174,15 +174,16 @@ msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"يُنزل $1،\n" +"$2 في الطابور" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "يحمل..." +msgstr "ينزل $1..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." -msgstr "" +msgstr "يحتاج $1 لكن لم يُعثر عليها." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 will be installed, and $2 dependencies will be skipped." @@ -193,18 +194,16 @@ msgid "All packages" msgstr "كل الحزم" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "المفتاح مستخدم مسبقا" +msgstr "مثبت مسبقا" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "عُد للقائمة الرئيسة" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "استضف لعبة" +msgstr "اللعبة القاعدية" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -228,14 +227,12 @@ msgid "Install" msgstr "ثبت" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "ثبت" +msgstr "ثبت $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "الإعتماديات الإختيارية:" +msgstr "ثبت الإعتماديات المفقودة" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -251,25 +248,24 @@ msgid "No results" msgstr "بدون نتائج" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "حدِث" +msgstr "لا توجد تحديثات" #: builtin/mainmenu/dlg_contentstore.lua msgid "Not found" -msgstr "" +msgstr "لم يُعثر عليه" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "اكتب عليه" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "تحقق من صحة اللعبة القاعدية." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" -msgstr "" +msgstr "في الطابور" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -285,7 +281,7 @@ msgstr "حدِث" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "حدِّث الكل [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" @@ -444,7 +440,7 @@ msgstr "المنشآت السطحية (لا تأثر على الأشجار وا #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "الهياكل التي تظهر على التضاريس ، عادة الأشجار والنباتات" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -564,8 +560,9 @@ msgid "Offset" msgstr "المُعادل" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "Persistance" -msgstr "" +msgstr "استمرار" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." @@ -613,23 +610,24 @@ msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" -msgstr "" +msgstr "التوزع على محور X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" -msgstr "" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "Y spread" -msgstr "" +msgstr "التوزع على محور Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" -msgstr "" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" -msgstr "" +msgstr "التوزع على محور Z" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". @@ -707,9 +705,8 @@ msgid "Loading..." msgstr "يحمل..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "البرمجة النصية للعميل معطلة" +msgstr "قائمة الخوادم العمومية معطلة" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -768,15 +765,16 @@ msgid "Credits" msgstr "إشادات" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "إختر الدليل" +msgstr "افتح دليل بيانات المستخدم" #: builtin/mainmenu/tab_credits.lua msgid "" "Opens the directory that contains user-provided worlds, games, mods,\n" "and texture packs in a file manager / explorer." msgstr "" +"يفتح الدليل الذي يحوي العوالم والألعاب والتعديلات \n" +"وحزم الإكساء في مدير الملفات." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -817,7 +815,7 @@ msgstr "ثبت العابا من ContentDB" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "الاسم" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -828,9 +826,8 @@ msgid "No world created or selected!" msgstr "لم تنشئ او تحدد عالما!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "كلمة مرور جديدة" +msgstr "كلمة المرور" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -841,9 +838,8 @@ msgid "Port" msgstr "المنفذ" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "حدد العالم:" +msgstr "اختر التعديلات" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -963,9 +959,8 @@ msgid "Node Highlighting" msgstr "إبراز العقد" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Node Outlining" -msgstr "عدم إبراز العقد" +msgstr "اقتضاب العقد" #: builtin/mainmenu/tab_settings.lua msgid "None" @@ -996,9 +991,8 @@ msgid "Shaders" msgstr "مُظللات" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "أراضيٌ عائمة (تجريبية)" +msgstr "المظللات (تجريبية)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1186,9 +1180,8 @@ msgid "Cinematic mode enabled" msgstr "الوضع السينمائي مفعل" #: src/client/game.cpp -#, fuzzy msgid "Client side scripting is disabled" -msgstr "البرمجة النصية للعميل معطلة" +msgstr "البرمجة النصية معطلة من جانب العميل" #: src/client/game.cpp msgid "Connecting to server..." @@ -1199,7 +1192,7 @@ msgid "Continue" msgstr "تابع" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1222,12 +1215,12 @@ msgstr "" "- %s: سر يسارا\n" "- %s: سر يمينا\n" "- %s: اقفز/تسلق\n" +"- %s: احفر/الكم\n" +"- %s: ضع/استخدم\n" "- %s: ازحف/انزل\n" "- %s: ارمي عنصر\n" "- %s: افتح المخزن\n" "- تحريك الفأرة: دوران\n" -"- زر الفأرة الأيمن: احفر/الكم\n" -"- زر الفأرة الأيسر: ضع/استخدم\n" "- عجلة الفأرة: غيير العنصر\n" "- -%s: دردشة\n" @@ -1361,11 +1354,11 @@ msgstr "الخريطة المصغرة معطلة من قبل لعبة أو تع #: src/client/game.cpp msgid "Noclip mode disabled" -msgstr "" +msgstr "وضع العقبات مفعل" #: src/client/game.cpp msgid "Noclip mode enabled" -msgstr "" +msgstr "وضع القبات معطل" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" From cc58d56c6dab00cb31fdadee5b624d700cb785d3 Mon Sep 17 00:00:00 2001 From: Agustin Calderon Date: Thu, 18 Mar 2021 19:54:26 +0000 Subject: [PATCH 591/624] Translated using Weblate (Spanish) Currently translated at 78.0% (1059 of 1356 strings) --- po/es/minetest.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 4d26f2b5c..70710a19c 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-05 09:40+0000\n" -"Last-Translator: j45 minetest \n" +"PO-Revision-Date: 2021-03-18 19:54+0000\n" +"Last-Translator: Agustin Calderon \n" "Language-Team: Spanish \n" "Language: es\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -5011,9 +5011,8 @@ msgid "Large cave proportion flooded" msgstr "Proporción de cuevas grandes inundadas" #: src/settings_translation_file.cpp -#, fuzzy msgid "Large chat console key" -msgstr "Tecla de la consola" +msgstr "Tecla de consola de chat grande" #: src/settings_translation_file.cpp msgid "Leaves style" From 4d1a5f12c031406ae1ab13b18a93b3b489a1fde9 Mon Sep 17 00:00:00 2001 From: David Leal Date: Thu, 18 Mar 2021 19:54:11 +0000 Subject: [PATCH 592/624] Translated using Weblate (Spanish) Currently translated at 78.0% (1059 of 1356 strings) --- po/es/minetest.po | 165 ++++++++++++++++------------------------------ 1 file changed, 57 insertions(+), 108 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 70710a19c..91d04b2d3 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-03-18 19:54+0000\n" -"Last-Translator: Agustin Calderon \n" +"Last-Translator: David Leal \n" "Language-Team: Spanish \n" "Language: es\n" @@ -706,9 +706,8 @@ msgid "Loading..." msgstr "Cargando..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "El Scripting en el lado del cliente está desactivado" +msgstr "La lista de servidores públicos está desactivada" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -3032,9 +3031,8 @@ msgid "Enable console window" msgstr "Habilitar la ventana de la consola" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "Habilitar el modo creativo para los nuevos mapas creados." +msgstr "Activar el modo creativo para todos los jugadores" #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -3183,9 +3181,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "FPS máximos cuando el juego está pausado." +msgstr "FPS cuando el juego está en segundo plano o pausado" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3304,39 +3301,32 @@ msgid "Fixed virtual joystick" msgstr "Joystick virtual fijo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Densidad de las montañas en tierras flotantes" +msgstr "Densidad de las tierras flotantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Mazmorras, máx. Y" +msgstr "Máximo valor de Y de las tierras flotantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Mazmorras, mín. Y" +msgstr "Mínimo valor de Y de las tierras flotantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Ruido base para tierra flotante" +msgstr "Ruido de la tierra flotante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Exponente de las montañas en tierras flotantes" +msgstr "Exponente de la cónica de las tierras flotantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Ruido base para tierra flotante" +msgstr "Distancia de cónico de la tierra flotante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Nivel de tierra flotante" +msgstr "Nivel de agua de la tierra flotante" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3582,7 +3572,6 @@ msgid "HUD toggle key" msgstr "Tecla de cambio del HUD" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" @@ -3590,10 +3579,9 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Manejo de llamadas a la API de Lua en desuso:\n" -"- legacy: (intentar) imitar el comportamiento antiguo (por defecto para la " -"liberación).\n" -"- log: imitar y registrar la pista de seguimiento de la llamada en desuso " -"(predeterminado para la depuración).\n" +"- none: no registrar llamadas en desuso.\n" +"- log: imitar y registrar la pista de seguimiento de la llamada en desuso (" +"predeterminado para la depuración).\n" "- error: abortar el uso de la llamada en desuso (sugerido para " "desarrolladores de mods)." @@ -4021,9 +4009,8 @@ msgstr "" "Altura de la consola de chat en el juego, entre 0.1 (10%) y 1.0 (100%)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Inc. volume key" -msgstr "Tecla de la consola" +msgstr "Tecla para subir volumen" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." @@ -4097,9 +4084,8 @@ msgid "Invert vertical mouse movement." msgstr "Invertir movimiento vertical del ratón." #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic font path" -msgstr "Ruta de fuentes" +msgstr "Ruta de fuente cursiva" #: src/settings_translation_file.cpp msgid "Italic monospace font path" @@ -4134,9 +4120,8 @@ msgid "Joystick button repetition interval" msgstr "Intervalo de repetición del botón del Joystick" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "Tipo de Joystick" +msgstr "Zona muerta del joystick" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4241,13 +4226,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para saltar.\n" +"Tecla para cavar.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4395,299 +4379,274 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para saltar.\n" +"Tecla para colocar.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 11 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 12th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 12 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 13th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 13 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 14th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el decimocuarto elemento en la barra de acceso " +"directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 15th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el decimoquinto elemento en la barra de acceso " +"directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 16th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 16 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 17th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 17 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 18th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 18 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 19th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 19 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 20th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 20 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 21st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 21 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 22nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 22 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 23rd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 23 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 24th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 24 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 25th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 25 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 26th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 26 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 27th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 27 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 28th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 28 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 29th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 29 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 30th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 30 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 31st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 31 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 32nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el elemento 32 en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the eighth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el octavo elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fifth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el quinto elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the first hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el primer elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fourth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el cuarto elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4702,13 +4661,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the ninth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el noveno elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4723,57 +4681,52 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the second hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el segundo elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the seventh hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el septimo elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the sixth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el sexto elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the tenth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el decimo elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the third hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n" +"Tecla para seleccionar el tercer elemento en la barra de acceso directo.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4812,13 +4765,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling autoforward.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para mover el jugador hacia delante.\n" +"Tecla activar/desactivar el avance automatico.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4873,13 +4825,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling pitch move mode.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para silenciar el juego.\n" +"Tecla activar/desactivar el modo de inclinacion.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4895,13 +4846,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of chat.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para desplazar el jugador hacia la izquierda.\n" +"Tecla para activar/desactivar el chat.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4917,13 +4867,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of fog.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para desplazar el jugador hacia la izquierda.\n" +"Tecla para activar/desactivar visualización de niebla.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" From 41825ccfbb37033834f13a4f8071c1c18a82cbe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Villalba?= Date: Thu, 18 Mar 2021 02:24:24 +0000 Subject: [PATCH 593/624] Translated using Weblate (Spanish) Currently translated at 78.0% (1059 of 1356 strings) --- po/es/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 91d04b2d3..16a3b2258 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-03-18 19:54+0000\n" -"Last-Translator: David Leal \n" +"Last-Translator: Joaquín Villalba \n" "Language-Team: Spanish \n" "Language: es\n" @@ -7063,7 +7063,7 @@ msgstr "Tiempo de espera de descarga por cURL" #: src/settings_translation_file.cpp msgid "cURL parallel limit" -msgstr "" +msgstr "Límite de cURL en paralelo" #: src/settings_translation_file.cpp msgid "cURL timeout" From f4dd46ad601a3dc133bc4e7a821daea062464627 Mon Sep 17 00:00:00 2001 From: David Leal Date: Thu, 18 Mar 2021 20:02:51 +0000 Subject: [PATCH 594/624] Translated using Weblate (Spanish) Currently translated at 79.0% (1072 of 1356 strings) --- po/es/minetest.po | 47 ++++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 16a3b2258..8c31bddee 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-03-18 19:54+0000\n" -"Last-Translator: Joaquín Villalba \n" +"PO-Revision-Date: 2021-03-19 20:18+0000\n" +"Last-Translator: David Leal \n" "Language-Team: Spanish \n" "Language: es\n" @@ -4961,7 +4961,7 @@ msgstr "Proporción de cuevas grandes inundadas" #: src/settings_translation_file.cpp msgid "Large chat console key" -msgstr "Tecla de consola de chat grande" +msgstr "Tecla de la consola del chat grande" #: src/settings_translation_file.cpp msgid "Leaves style" @@ -5040,34 +5040,34 @@ msgstr "Aumento medio del centro de la curva de luz" #: src/settings_translation_file.cpp msgid "Light curve boost center" -msgstr "" +msgstr "Centro de impulso de curva de luz" #: src/settings_translation_file.cpp msgid "Light curve boost spread" -msgstr "" +msgstr "Dispersión de impulso de curva de luz" #: src/settings_translation_file.cpp msgid "Light curve gamma" -msgstr "" +msgstr "Gamma de la curva de luz" #: src/settings_translation_file.cpp msgid "Light curve high gradient" -msgstr "" +msgstr "Curva de luz de alto gradiente" #: src/settings_translation_file.cpp msgid "Light curve low gradient" -msgstr "" +msgstr "Curva de luz de bajo gradiente" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" "Only mapchunks completely within the mapgen limit are generated.\n" "Value is stored per-world." msgstr "" -"Límite de la generación de mapa, en nodos, en todas las 6 direcciones desde " -"(0, 0, 0).\n" -"Solo las porciones de terreno dentro de los límites son generadas.\n" +"Límite de la generación de mapa, en nodos, en todas las 6 direcciones desde (" +"0, 0, 0).\n" +"Solo se generan fragmentos de mapa completamente dentro del límite de " +"generación de mapas.\n" "Los valores se guardan por mundo." #: src/settings_translation_file.cpp @@ -5078,6 +5078,11 @@ msgid "" "- Downloads performed by main menu (e.g. mod manager).\n" "Only has an effect if compiled with cURL." msgstr "" +"Limita el número de solicitudes HTTP paralelas. Afecta:\n" +"- Recuperación de medios si el servidor utiliza remote_media setting.\n" +"- Descarga de la lista de servidores y anuncio del servidor.\n" +"- Descargas realizadas por el menú principal (por ejemplo, gestor de mods).\n" +"Sólo tiene un efecto si se compila con cURL." #: src/settings_translation_file.cpp msgid "Liquid fluidity" @@ -5089,28 +5094,28 @@ msgstr "Suavizado de la fluidez líquida" #: src/settings_translation_file.cpp msgid "Liquid loop max" -msgstr "" +msgstr "Bucle de máximo líquido" #: src/settings_translation_file.cpp msgid "Liquid queue purge time" -msgstr "" +msgstr "Tiempo de purga de colas de líquidos" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Velocidad de descenso" +msgstr "Hundimiento del líquido" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." -msgstr "" +msgstr "Intervalo de actualización del líquido en segundos." #: src/settings_translation_file.cpp msgid "Liquid update tick" -msgstr "" +msgstr "Tick de actualización de los líquidos" #: src/settings_translation_file.cpp +#, fuzzy msgid "Load the game profiler" -msgstr "" +msgstr "Cargar el perfilador de juego" #: src/settings_translation_file.cpp msgid "" @@ -5118,6 +5123,10 @@ msgid "" "Provides a /profiler command to access the compiled profile.\n" "Useful for mod developers and server operators." msgstr "" +"Cargue el generador de perfiles de juego para recopilar datos de generación " +"de perfiles de juegos.\n" +"Proporciona un comando /profiler para tener acceso al perfil compilado.\n" +"Útil para desarrolladores de mods y operadores de servidores." #: src/settings_translation_file.cpp #, fuzzy From fa98a00916ba2191ba759f3042aac1199f74ac27 Mon Sep 17 00:00:00 2001 From: Yangjun Wang Date: Sun, 21 Mar 2021 13:21:57 +0000 Subject: [PATCH 595/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 92.5% (1255 of 1356 strings) --- po/zh_CN/minetest.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 57853e413..446204bec 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-03-02 15:50+0000\n" -"Last-Translator: winniepee \n" +"PO-Revision-Date: 2021-03-21 13:22+0000\n" +"Last-Translator: Yangjun Wang \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.5.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -168,9 +168,8 @@ msgid "" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "下载中..." +msgstr "正在下载$1 ..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." From 1a433e3185440dffeb9682cfa775fcee1926ce89 Mon Sep 17 00:00:00 2001 From: Liu Tao Date: Sun, 21 Mar 2021 13:41:20 +0000 Subject: [PATCH 596/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 94.7% (1285 of 1356 strings) --- po/zh_CN/minetest.po | 78 ++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 47 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index 446204bec..a89083675 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-03-21 13:22+0000\n" -"Last-Translator: Yangjun Wang \n" +"PO-Revision-Date: 2021-03-22 18:29+0000\n" +"Last-Translator: Liu Tao \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -169,7 +169,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 downloading..." -msgstr "正在下载$1 ..." +msgstr "正在下载 $1 ……" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." @@ -193,9 +193,8 @@ msgid "Back to Main Menu" msgstr "返回主菜单" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "主持游戏" +msgstr "基础游戏:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -223,9 +222,8 @@ msgid "Install $1" msgstr "安装$1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "可选依赖项:" +msgstr "安装缺失的依赖项" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -257,8 +255,9 @@ msgid "Please check that the base game is correct." msgstr "请查看游戏是否正确。" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "Queued" -msgstr "" +msgstr "已加入队列" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -274,11 +273,11 @@ msgstr "更新" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "更新所有 [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" -msgstr "" +msgstr "在网络浏览器中查看更多信息" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -696,9 +695,8 @@ msgid "Loading..." msgstr "载入中..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "客户端脚本已禁用" +msgstr "已禁用公共服务器列表" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -757,9 +755,8 @@ msgid "Credits" msgstr "贡献者" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "选择目录" +msgstr "打开用户数据目录" #: builtin/mainmenu/tab_credits.lua msgid "" @@ -805,7 +802,7 @@ msgstr "从 ContentDB 安装游戏" #: builtin/mainmenu/tab_local.lua msgid "Name" -msgstr "" +msgstr "名称" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -816,9 +813,8 @@ msgid "No world created or selected!" msgstr "未创建或选择世界!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "新密码" +msgstr "密码" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -829,9 +825,8 @@ msgid "Port" msgstr "端口" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "选择世界:" +msgstr "选择模组" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -983,9 +978,8 @@ msgid "Shaders" msgstr "着色器" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "悬空岛(实验性)" +msgstr "着色器(实验性)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1752,9 +1746,8 @@ msgid "Minimap in surface mode, Zoom x%d" msgstr "地表模式小地图, 放大至一倍" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "最小材质大小" +msgstr "材质模式小地图" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -2147,7 +2140,7 @@ msgstr "ABM间隔" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "ABM 时间预算" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2644,7 +2637,7 @@ msgstr "ContentDB标签黑名单" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" -msgstr "" +msgstr "ContentDB 最大并发下载量" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -3124,9 +3117,8 @@ msgstr "" "适用于固体悬空岛层。" #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "游戏暂停时最高 FPS。" +msgstr "游戏暂停时最高 FPS" #: src/settings_translation_file.cpp msgid "FSAA" @@ -4024,9 +4016,8 @@ msgid "Joystick button repetition interval" msgstr "摇杆按钮重复间隔" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "摇杆类型" +msgstr "摇杆无效区" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -5053,11 +5044,11 @@ msgstr "使所有液体不透明" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "磁盘存储的映射压缩级别" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "网络传输的地图压缩级别" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5242,9 +5233,8 @@ msgid "Maximum FPS" msgstr "最大 FPS" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "游戏暂停时最高 FPS。" +msgstr "窗口未聚焦或游戏暂停时的最大 FPS。" #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5706,9 +5696,8 @@ msgid "Place key" msgstr "飞行键" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "右击重复间隔" +msgstr "放置重复间隔" #: src/settings_translation_file.cpp msgid "" @@ -6190,9 +6179,8 @@ msgstr "" "变更后须重新启动。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Show nametag backgrounds by default" -msgstr "默认粗体" +msgstr "默认显示名称标签背景" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -6452,13 +6440,12 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "The URL for the content repository" msgstr "内容存储库的 URL" #: src/settings_translation_file.cpp msgid "The deadzone of the joystick" -msgstr "" +msgstr "摇杆的无效区" #: src/settings_translation_file.cpp msgid "" @@ -6481,7 +6468,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" +msgstr "开始触摸屏交互所需的长度(以像素为单位)。" #: src/settings_translation_file.cpp msgid "" @@ -6566,7 +6553,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "The type of joystick" -msgstr "" +msgstr "摇杆类型" #: src/settings_translation_file.cpp msgid "" @@ -6654,7 +6641,6 @@ msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "显示在“多人游戏”选项卡中的服务器列表的URL。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Undersampling" msgstr "欠采样" @@ -6688,7 +6674,6 @@ msgid "Use 3D cloud look instead of flat." msgstr "使用 3D 云彩,而不是看起来是平面的。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Use a cloud animation for the main menu background." msgstr "主菜单背景使用云动画。" @@ -6698,7 +6683,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Use bilinear filtering when scaling textures." -msgstr "" +msgstr "缩放材质时使用双线过滤。" #: src/settings_translation_file.cpp msgid "" @@ -6720,7 +6705,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." -msgstr "" +msgstr "缩放材质时使用三线过滤。" #: src/settings_translation_file.cpp msgid "VBO" @@ -6793,9 +6778,8 @@ msgid "Video driver" msgstr "视频驱动程序" #: src/settings_translation_file.cpp -#, fuzzy msgid "View bobbing factor" -msgstr "范围摇动" +msgstr "视野晃动系数" #: src/settings_translation_file.cpp msgid "View distance in nodes." From 4c2efd7da33e1ec68827c926b586257f42a341af Mon Sep 17 00:00:00 2001 From: Yangjun Wang Date: Sun, 21 Mar 2021 13:28:46 +0000 Subject: [PATCH 597/624] Translated using Weblate (Chinese (Simplified)) Currently translated at 94.7% (1285 of 1356 strings) --- po/zh_CN/minetest.po | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po index a89083675..cfc51323e 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-03-22 18:29+0000\n" -"Last-Translator: Liu Tao \n" +"Last-Translator: Yangjun Wang \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -184,9 +184,8 @@ msgid "All packages" msgstr "所有包" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "按键已被占用" +msgstr "已安装" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" @@ -2964,9 +2963,8 @@ msgid "Enable console window" msgstr "启用控制台窗口" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "为新建地图启用创造模式。" +msgstr "为所有玩家启用创造模式" #: src/settings_translation_file.cpp msgid "Enable joysticks" From 116fe7815b709395a4d59a63b588953714471b4c Mon Sep 17 00:00:00 2001 From: Michalis Date: Sun, 21 Mar 2021 18:18:10 +0000 Subject: [PATCH 598/624] Translated using Weblate (Greek) Currently translated at 8.8% (120 of 1356 strings) --- po/el/minetest.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/po/el/minetest.po b/po/el/minetest.po index 62db47b75..3ae9d7017 100644 --- a/po/el/minetest.po +++ b/po/el/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Greek (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-03-02 15:50+0000\n" -"Last-Translator: THANOS SIOURDAKIS \n" +"PO-Revision-Date: 2021-03-22 18:29+0000\n" +"Last-Translator: Michalis \n" "Language-Team: Greek \n" "Language: el\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.5.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -2131,7 +2131,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Advanced" -msgstr "Περισσότερα" +msgstr "Για προχωρημένους" #: src/settings_translation_file.cpp msgid "" From 8285a53152bd6118530757535f84e32c86b654d2 Mon Sep 17 00:00:00 2001 From: AnthonyDe Date: Wed, 24 Mar 2021 17:26:29 +0000 Subject: [PATCH 599/624] Translated using Weblate (Spanish) Currently translated at 79.5% (1079 of 1356 strings) --- po/es/minetest.po | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 8c31bddee..49b1c7278 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-03-19 20:18+0000\n" -"Last-Translator: David Leal \n" +"PO-Revision-Date: 2021-03-25 17:29+0000\n" +"Last-Translator: AnthonyDe \n" "Language-Team: Spanish \n" "Language: es\n" @@ -1450,7 +1450,7 @@ msgstr "Volumen cambiado a %d%%" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "Líneas 3D mostradas" +msgstr "Lineas 3D mostradas" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -2686,7 +2686,7 @@ msgstr "Altura de consola" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" -msgstr "Lista negra de banderas de ContentDB" +msgstr "Lista negra de Contenido de la Base de Datos" #: src/settings_translation_file.cpp msgid "ContentDB Max Concurrent Downloads" @@ -2765,7 +2765,7 @@ msgid "" "Also controls the object crosshair color" msgstr "" "Alfa del punto de mira (opacidad, entre 0 y 255).\n" -"También controla el color del objeto punto de mira." +"También controla el color del objeto punto de mira" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -5113,9 +5113,8 @@ msgid "Liquid update tick" msgstr "Tick de actualización de los líquidos" #: src/settings_translation_file.cpp -#, fuzzy msgid "Load the game profiler" -msgstr "Cargar el perfilador de juego" +msgstr "Cargar el generador de perfiles del juego" #: src/settings_translation_file.cpp msgid "" @@ -5129,9 +5128,8 @@ msgstr "" "Útil para desarrolladores de mods y operadores de servidores." #: src/settings_translation_file.cpp -#, fuzzy msgid "Loading Block Modifiers" -msgstr "Intervalo de modificador de bloques activos" +msgstr "Carga de modificadores de bloque" #: src/settings_translation_file.cpp msgid "Lower Y limit of dungeons." @@ -5163,11 +5161,11 @@ msgstr "Vuelve opacos a todos los líquidos" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Nivel de comprensión del mapa para almacenamiento de disco" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Nivel de comprensión del mapa para transferencias por la red" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5175,7 +5173,7 @@ msgstr "Directorio de mapas" #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" +msgstr "Atributos de generación de mapas específicos de Mapgen Carpathian." #: src/settings_translation_file.cpp msgid "" @@ -5191,6 +5189,9 @@ msgid "" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" +"Atributos de generación de mapas específicos de Mapgen Fractal.\n" +"'terreno' permite la generación de terrenos no fractales:\n" +"océanos, islas y subterráneo." #: src/settings_translation_file.cpp msgid "" From 35718eec9c777bf15bf14e55a0c3fe1a1b5ee6cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Villalba?= Date: Wed, 24 Mar 2021 17:09:49 +0000 Subject: [PATCH 600/624] Translated using Weblate (Spanish) Currently translated at 79.5% (1079 of 1356 strings) --- po/es/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index 49b1c7278..af93c8f9b 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-03-25 17:29+0000\n" -"Last-Translator: AnthonyDe \n" +"Last-Translator: Joaquín Villalba \n" "Language-Team: Spanish \n" "Language: es\n" @@ -1539,7 +1539,7 @@ msgstr "Convertir IME" #: src/client/keycode.cpp msgid "IME Escape" -msgstr "Escapada de IME" +msgstr "Escape IME" #: src/client/keycode.cpp msgid "IME Mode Change" From e90738575ff42d89b36dc504d8327ff1ecb8cb73 Mon Sep 17 00:00:00 2001 From: matiasC Date: Tue, 23 Mar 2021 11:30:15 +0000 Subject: [PATCH 601/624] Translated using Weblate (Spanish) Currently translated at 79.5% (1079 of 1356 strings) --- po/es/minetest.po | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index af93c8f9b..efb6a4c55 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-03-25 17:29+0000\n" -"Last-Translator: Joaquín Villalba \n" +"Last-Translator: matiasC \n" "Language-Team: Spanish \n" "Language: es\n" @@ -3179,10 +3179,19 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Exponente de la estrechez de tierra flotante. Altera el comportamiento de la " +"estrechez.\n" +"Valor = 1.0 crea una estrechez uniforme y lineal.\n" +"Valores > 1.0 crea una estrechez suave apropiada para las tierras flotantes " +"separadas\n" +"por defecto.\n" +"Valores < 1.0 (0.25, por ejemplo) crea un nivel de superficie más definida " +"con \n" +"tierras bajas más planas, apropiada para una capa de tierra flotante sólida." #: src/settings_translation_file.cpp msgid "FPS when unfocused or paused" -msgstr "FPS cuando el juego está en segundo plano o pausado" +msgstr "FPS cuando está en segundo plano o pausado" #: src/settings_translation_file.cpp msgid "FSAA" From b72c1f736787960b6b70681c25317a37d31886a7 Mon Sep 17 00:00:00 2001 From: ItsWidee Date: Tue, 23 Mar 2021 08:50:13 +0000 Subject: [PATCH 602/624] Translated using Weblate (French) Currently translated at 96.5% (1309 of 1356 strings) --- po/fr/minetest.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index 98478e035..9e086f32b 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-01 05:52+0000\n" -"Last-Translator: cafou \n" +"PO-Revision-Date: 2021-03-25 17:29+0000\n" +"Last-Translator: ItsWidee \n" "Language-Team: French \n" "Language: fr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.5.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -171,9 +171,8 @@ msgid "" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Chargement..." +msgstr "Téléchargement de $1..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." From 053fb9669460fc8384842e74e01576b1574f4ca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hatl=C3=A1b=C3=BA=20Farkas?= Date: Wed, 24 Mar 2021 07:19:06 +0000 Subject: [PATCH 603/624] Translated using Weblate (Hungarian) Currently translated at 75.8% (1028 of 1356 strings) --- po/hu/minetest.po | 76 +++++++++++++++++------------------------------ 1 file changed, 28 insertions(+), 48 deletions(-) diff --git a/po/hu/minetest.po b/po/hu/minetest.po index 090d92454..02f3b51c5 100644 --- a/po/hu/minetest.po +++ b/po/hu/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Hungarian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-13 08:50+0000\n" -"Last-Translator: Ács Zoltán \n" +"PO-Revision-Date: 2021-03-28 20:29+0000\n" +"Last-Translator: Hatlábú Farkas \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.6-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Meghaltál" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "OK" +msgstr "OKÉ" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -153,7 +153,7 @@ msgstr "engedélyezve" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" már létezik. Szeretné felülírni?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." @@ -172,9 +172,8 @@ msgstr "" "$2 sorba állítva" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Letöltés…" +msgstr "$1 Letöltése…" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." @@ -189,18 +188,16 @@ msgid "All packages" msgstr "Minden csomag" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "A gomb már használatban van" +msgstr "Már telepítve" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Vissza a főmenübe" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Játék létrehozása" +msgstr "Alapjáték:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -224,14 +221,12 @@ msgid "Install" msgstr "Telepítés" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Telepítés" +msgstr "$1 telepítése" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Választható függőségek:" +msgstr "hiányzó függőségek telepitése" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -247,22 +242,20 @@ msgid "No results" msgstr "Nincs találat" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Frissítés" +msgstr "nincs Frissiteni való" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Hang némítása" +msgstr "nem található" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "Felülírás" +msgstr "Felülír" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "az alapjáték ellenörzése szükséges ." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" @@ -357,7 +350,6 @@ msgid "Game" msgstr "Játék" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Generate non-fractal terrain: Oceans and underground" msgstr "Nem-fraktál terep generálása: Óceánok és földalatti rész" @@ -437,7 +429,6 @@ msgid "Smooth transition between biomes" msgstr "Sima átmenet a biomok között" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" @@ -462,7 +453,6 @@ msgid "Temperate, Desert, Jungle, Tundra, Taiga" msgstr "Mérsékelt, Sivatag, Dzsungel, Tundra, Tajga" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" msgstr "Terepfelület erózió" @@ -713,9 +703,8 @@ msgid "Loading..." msgstr "Betöltés…" #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "Kliens oldali szkriptek letiltva" +msgstr "A nyilvános kiszolgálólista le van tiltva" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -776,9 +765,8 @@ msgid "Credits" msgstr "Köszönetnyilvánítás" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Útvonal kiválasztása" +msgstr "Felhasználói adatkönyvtár megnyitása" #: builtin/mainmenu/tab_credits.lua msgid "" @@ -838,9 +826,8 @@ msgid "No world created or selected!" msgstr "Nincs létrehozott vagy kiválasztott világ!" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Új jelszó" +msgstr "Jelszó" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -851,9 +838,8 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Világ kiválasztása:" +msgstr "Modok kiválasztása" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -1005,9 +991,8 @@ msgid "Shaders" msgstr "Árnyalók" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Lebegő földek" +msgstr "Shaderek (kísérleti)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1764,19 +1749,18 @@ msgid "Minimap hidden" msgstr "Kistérkép letiltva" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Kistérkép radar módban x1" +msgstr "Minimap radar módban, Nagyítás x%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Kistérkép terület módban x1" +msgstr "kistérkép terület módban x%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Minimum textúra méret" +msgstr "Minimap textúra módban" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -2263,9 +2247,8 @@ msgid "Announce to this serverlist." msgstr "Szerver kihirdetése erre a szerverlistára." #: src/settings_translation_file.cpp -#, fuzzy msgid "Append item name" -msgstr "Elem nevének hozzáadása" +msgstr "Elemnév hozzáadása" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." @@ -2482,23 +2465,20 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Betűtípus mérete" +msgstr "Chat betűméret" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Csevegés gomb" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Hibakereső naplózás szintje" +msgstr "Chat napló szintje" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message count limit" -msgstr "Chat üzenetek maximális száma" +msgstr "Csevegőüzenetek számának korlátozása" #: src/settings_translation_file.cpp #, fuzzy From 47a439a9053331035eb69c67a8493caf3e7b3331 Mon Sep 17 00:00:00 2001 From: Alessandro Mandelli Date: Wed, 24 Mar 2021 12:14:53 +0000 Subject: [PATCH 604/624] Translated using Weblate (Italian) Currently translated at 100.0% (1356 of 1356 strings) --- po/it/minetest.po | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/po/it/minetest.po b/po/it/minetest.po index b9bfa1b6c..6a2ef726a 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-25 23:50+0000\n" -"Last-Translator: Giov4 \n" +"PO-Revision-Date: 2021-03-25 17:29+0000\n" +"Last-Translator: Alessandro Mandelli \n" "Language-Team: Italian \n" "Language: it\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.5.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -703,9 +703,8 @@ msgid "Loading..." msgstr "Caricamento..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "Scripting su lato client disabilitato" +msgstr "La lista dei server pubblici è disabilitata" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -3022,9 +3021,8 @@ msgid "Enable console window" msgstr "Attivare la finestra della console" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "Abilitare la modalità creativa per le nuove mappe create." +msgstr "Abilitare la modalità creativa per tutti i giocatori" #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -6365,9 +6363,8 @@ msgstr "" "È necessario riavviare dopo aver cambiato questo." #: src/settings_translation_file.cpp -#, fuzzy msgid "Show nametag backgrounds by default" -msgstr "Carattere grassetto per impostazione predefinita" +msgstr "Mostra lo sfondo del nome per impostazione predefinita" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -7234,6 +7231,8 @@ msgid "" "Whether nametag backgrounds should be shown by default.\n" "Mods may still set a background." msgstr "" +"Se lo sfondo del nome deve essere mostrato per impostazione predefinita.\n" +"I moderatori possono comunque impostare uno sfondo." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." From 13d7cb957ca779d6276c57ae0ddc7fbca622aa27 Mon Sep 17 00:00:00 2001 From: gnu-ewm Date: Tue, 23 Mar 2021 00:21:57 +0000 Subject: [PATCH 605/624] Translated using Weblate (Polish) Currently translated at 71.6% (972 of 1356 strings) --- po/pl/minetest.po | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/po/pl/minetest.po b/po/pl/minetest.po index 8b4d1d407..063de8455 100644 --- a/po/pl/minetest.po +++ b/po/pl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Polish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-25 23:50+0000\n" -"Last-Translator: Mateusz Mendel \n" +"PO-Revision-Date: 2021-03-25 17:29+0000\n" +"Last-Translator: gnu-ewm \n" "Language-Team: Polish \n" "Language: pl\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.5.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -206,9 +206,8 @@ msgid "Back to Main Menu" msgstr "Powrót do menu głównego" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Utwórz grę" +msgstr "Gra podstawowa:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -238,9 +237,8 @@ msgid "Install $1" msgstr "Instaluj" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Dodatkowe zależności:" +msgstr "Zainstaluj brakujące zależności" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -868,9 +866,8 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Wybierz świat:" +msgstr "Wybierz Mody" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -2030,7 +2027,6 @@ msgstr "" "znajduje się poza głównym okręgiem." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" "Can be used to move a desired point to (0, 0) to create a\n" @@ -2042,7 +2038,7 @@ msgid "" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" "(X, Y, Z) margines fraktalu od centrum świata w jednostkach \"skali\".\n" -"Używany by przesunąć odpowiednie miejsce do punktu spawnu podłoża blisko " +"Używany by przesunąć odpowiednie miejsce do punktu spawnu podłoża blisko " "punktu (0, 0).\n" "Domyślny jest odpowiedni dla zbiorów Mandelbrota, lecz wymaga edycji dla " "zbiorów Julii.\n" @@ -3246,7 +3242,7 @@ msgid "" "This requires the \"fast\" privilege on the server." msgstr "" "Szybki ruch (za pomocą przycisku „specjalnego”).\n" -"Wymaga to uprawnienia „fast” na serwerze." +"Wymaga to uprawnienia „fast” na serwerze." #: src/settings_translation_file.cpp msgid "Field of view" @@ -3262,8 +3258,8 @@ msgid "" "the\n" "Multiplayer Tab." msgstr "" -"Plik w kliencie (lista serwerów) który zawiera ulubione ulubione serwery " -"wyświetlane w zakładce Multiplayer." +"Plik w kliencie (lista serwerów) który zawiera ulubione serwery wyświetlane " +"w zakładce Multiplayer." #: src/settings_translation_file.cpp msgid "Filler depth" @@ -5120,9 +5116,8 @@ msgid "Light curve boost" msgstr "Przyśpieszenie środkowe krzywej światła" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost center" -msgstr "Centrum środkowego przyśpieszenia krzywej światła" +msgstr "Centrum środkowego przyśpieszenia krzywej światła" #: src/settings_translation_file.cpp #, fuzzy @@ -5140,9 +5135,8 @@ msgid "Light curve high gradient" msgstr "Przyśpieszenie środkowe krzywej światła" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve low gradient" -msgstr "Centrum środkowego przyśpieszenia krzywej światła" +msgstr "Centrum środkowego przyśpieszenia krzywej światła" #: src/settings_translation_file.cpp msgid "" From 461cc30842e3c568cc09ac08c2bfecb8fd6f6f32 Mon Sep 17 00:00:00 2001 From: Mateusz Mendel Date: Sat, 27 Mar 2021 20:01:59 +0000 Subject: [PATCH 606/624] Translated using Weblate (Polish) Currently translated at 72.4% (982 of 1356 strings) --- po/pl/minetest.po | 147 +++++++++++++++++++++++----------------------- 1 file changed, 75 insertions(+), 72 deletions(-) diff --git a/po/pl/minetest.po b/po/pl/minetest.po index 063de8455..e4c8691ee 100644 --- a/po/pl/minetest.po +++ b/po/pl/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Polish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-03-25 17:29+0000\n" -"Last-Translator: gnu-ewm \n" +"PO-Revision-Date: 2021-03-28 20:29+0000\n" +"Last-Translator: Mateusz Mendel \n" "Language-Team: Polish \n" "Language: pl\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.5.2-dev\n" +"X-Generator: Weblate 4.6-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -134,7 +134,7 @@ msgstr "Brak dostępnych informacji o modzie." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "Brak dodatkowych zależności." +msgstr "Brak dodatkowych zależności" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -154,9 +154,8 @@ msgid "enabled" msgstr "włączone" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "\"$1\" już istnieje. Czy chciałbyś to nadpisać?" +msgstr "\"$1\" aktualnie istnieje. Czy chcesz go nadpisać?" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -188,9 +187,8 @@ msgid "$1 required dependencies could not be found." msgstr "$1 wymaga zależności, których nie można znaleźć." #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 will be installed, and $2 dependencies will be skipped." -msgstr "$1 będzie zainstalowany, a zależności $2 zostaną pominięte." +msgstr "$1 zostanie zainstalowany, a zależności $2 zostaną pominięte." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" @@ -419,16 +417,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "Sieć jaskiń i korytarzy." +msgstr "Sieć jaskiń i korytarzy" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" msgstr "Nie wybrano gry" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Reduces heat with altitude" -msgstr "Spadek temperatury wraz z wysokością" +msgstr "Redukuje ciepło wraz z wysokością" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" @@ -1780,12 +1777,12 @@ msgstr "Minimapa ukryta" #: src/client/minimap.cpp #, fuzzy, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Minimapa w trybie radaru, Zoom x1" +msgstr "Minimapa w trybie radaru, Zoom x%d" #: src/client/minimap.cpp #, fuzzy, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Minimapa w trybie powierzchniowym, powiększenie x1" +msgstr "Minimapa w trybie powierzchniowym, powiększenie x%d" #: src/client/minimap.cpp #, fuzzy @@ -2362,11 +2359,8 @@ msgid "Automatic forward key" msgstr "Klawisz automatycznego poruszania się do przodu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Automatically jump up single-node obstacles." -msgstr "" -"Automatycznie przeskakuj jedno-blokowe przeszkody.\n" -"type: bool" +msgstr "Automatycznie przeskakuj jedno-blokowe przeszkody." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." @@ -2443,9 +2437,8 @@ msgid "Bold and italic monospace font path" msgstr "Ścieżka czcionki typu Monospace" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold font path" -msgstr "Ścieżka fontu pogrubionego." +msgstr "Ścieżka fontu pogrubionego" #: src/settings_translation_file.cpp #, fuzzy @@ -2695,7 +2688,6 @@ msgid "Console height" msgstr "Wysokość konsoli" #: src/settings_translation_file.cpp -#, fuzzy msgid "ContentDB Flag Blacklist" msgstr "Flaga czarnej listy ContentDB" @@ -2738,7 +2730,6 @@ msgstr "" "zostaje niezmienione." #: src/settings_translation_file.cpp -#, fuzzy msgid "Controls sinking speed in liquid." msgstr "Wpływa na prędkość zanurzania w płynie." @@ -2774,7 +2765,9 @@ msgstr "Kanał alfa celownika" msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Kanał alfa celownika (pomiędzy 0 a 255)." +msgstr "" +"Kanał alfa celownika (pomiędzy 0 a 255).\n" +"Wpływa również na kolor celownika obiektów" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -3024,11 +3017,12 @@ msgid "Dungeon noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." -msgstr "Włącz protokół sieciowy IPv6 (dla gry oraz dla jej serwera)." +msgstr "" +"Włącz protokół sieciowy IPv6 (dla gry oraz dla jej serwera).\n" +"Wymagane dla połączeń z protokołem sieciowym IPv6." #: src/settings_translation_file.cpp msgid "" @@ -3045,7 +3039,7 @@ msgstr "Odblokuj okno konsoli" #: src/settings_translation_file.cpp #, fuzzy msgid "Enable creative mode for all players" -msgstr "Zezwól na tryb kreatywny dla nowo powstałych map." +msgstr "Zezwól na tryb kreatywny dla wszystkich graczy" #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -3118,8 +3112,8 @@ msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" -"Uaktywnij \"vertex buffer objects\" aby zmniejszyć wymagania wobec karty " -"grafiki." +"Uaktywnij \"vertex buffer objects\". \n" +"Powinno to znacznie polepszyć wydajność karty graficznej." #: src/settings_translation_file.cpp msgid "" @@ -3189,7 +3183,7 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "FPS when unfocused or paused" -msgstr "Maksymalny FPS gdy gra spauzowana." +msgstr "Maksymalny FPS gdy gra spauzowana" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3253,13 +3247,15 @@ msgid "Field of view in degrees." msgstr "Pole widzenia w stopniach." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "File in client/serverlist/ that contains your favorite servers displayed in " "the\n" "Multiplayer Tab." msgstr "" -"Plik w kliencie (lista serwerów) który zawiera ulubione serwery wyświetlane " -"w zakładce Multiplayer." +"Plik w kliencie (lista serwerów), który zawiera ulubione serwery wyświetlane " +"\n" +"w zakładce Trybu wieloosobowego." #: src/settings_translation_file.cpp msgid "Filler depth" @@ -3286,6 +3282,7 @@ msgstr "" "które optymalizatory PNG najczęściej odrzucają, co czasem powoduje " "ciemniejsze lub jaśniejsze\n" "krawędzie w przeźroczystych teksturach. Zastosuj ten filtr aby wyczyścić to " +"\n" "w czasie ładowania tekstur." #: src/settings_translation_file.cpp @@ -3529,33 +3526,34 @@ msgid "Global callbacks" msgstr "Globalne wywołania zwrotne" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Global map generation attributes.\n" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" "Globalne właściwości generowania map.\n" -"W generatorze map v6 flaga \"decorations\" kontroluje wszystkie dekoracje\n" -"z wyjątkiem drzew i trawy dżungli. we wszystkich innych generatorach flaga\n" -"ta kontroluje wszystkie dekoracje.\n" -"Flagi, które nie są wymienione w ciągu flagi nie są modyfikowane z " -"domyślnych.\n" -"Flagi rozpoczynające się od \"no\" są stosowane aby jawnie ją wyłączyć." +"W generatorze map v6 flaga \"decorations\" kontroluje wszystkie dekoracje z " +"wyjątkiem drzew \n" +"i trawy dżungli. we wszystkich innych generatorach flaga ta kontroluje " +"wszystkie dekoracje." #: src/settings_translation_file.cpp #, fuzzy msgid "" "Gradient of light curve at maximum light level.\n" "Controls the contrast of the highest light levels." -msgstr "Gradient krzywej światła w maksymalnej pozycji." +msgstr "" +"Gradient krzywej światła w maksymalnej pozycji.\n" +"Wpływa na kontrast najwyższych poziomów jasności." #: src/settings_translation_file.cpp #, fuzzy msgid "" "Gradient of light curve at minimum light level.\n" "Controls the contrast of the lowest light levels." -msgstr "Gradient krzywej światła w minimalnej pozycji." +msgstr "" +"Gradient krzywej światła w minimalnej pozycji.\n" +"Wpływa na kontrast najniższych poziomów jasności." #: src/settings_translation_file.cpp msgid "Graphics" @@ -3678,7 +3676,7 @@ msgid "" "in nodes per second per second." msgstr "" "Przyśpieszenie poziome podczas skoku lub upadku,\n" -"w blokach na sekundę." +"w blokach na sekundę do kwadratu." #: src/settings_translation_file.cpp #, fuzzy @@ -3687,7 +3685,7 @@ msgid "" "in nodes per second per second." msgstr "" "Poziome i pionowe przyśpieszenie w trybie szybkim,\n" -"w blokach na sekundę." +"w blokach na sekundę do kwadratu." #: src/settings_translation_file.cpp #, fuzzy @@ -3696,7 +3694,7 @@ msgid "" "in nodes per second per second." msgstr "" "Poziome i pionowe przyśpieszenie na ziemi lub podczas wchodzenia,\n" -"w blokach na sekunde." +"w blokach na sekundę do kwadratu." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3869,7 +3867,7 @@ msgstr "Następny klawisz paska działań" #: src/settings_translation_file.cpp #, fuzzy msgid "How deep to make rivers." -msgstr "Jak głębokie robić rzeki" +msgstr "Jak głębokie tworzyć rzeki." #: src/settings_translation_file.cpp msgid "" @@ -3889,7 +3887,7 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "How wide to make rivers." -msgstr "Jak szerokie są rzeki" +msgstr "Jak szerokie są rzeki." #: src/settings_translation_file.cpp msgid "Humidity blend noise" @@ -3927,9 +3925,10 @@ msgid "" "enabled." msgstr "" "Jeśli wyłączone to klawisz \"używania\" jest wykorzystany aby latać szybko " -"oraz przy włączonym trybie szybkiego poruszania." +"jeśli tryb szybkiego poruszania oraz latania jest włączony." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "If enabled the server will perform map block occlusion culling based on\n" "on the eye position of the player. This can reduce the number of blocks\n" @@ -3938,10 +3937,11 @@ msgid "" "so that the utility of noclip mode is reduced." msgstr "" "Jeśli opcja jest włączona to serwer spowoduje zamknięcie usuwania bloków " -"mapy na podstawie pozycji gracza.\n" -"Zredukuje to o 50-80% liczbę bloków wysyłanych na serwer.\n" -"Klient już nie będzie widział większości ukrytych bloków, tak więc zostanie " -"ograniczona przydatność trybu noclip." +"mapy na podstawie \n" +"pozycji gracza. Zredukuje to o 50-80% liczbę bloków \n" +"wysyłanych na serwer. Klient już nie będzie widział większości ukrytych " +"bloków, \n" +"tak więc zostanie ograniczona przydatność trybu noclip." #: src/settings_translation_file.cpp msgid "" @@ -3960,8 +3960,9 @@ msgid "" "down and\n" "descending." msgstr "" -"Jeżeli włączone, klawisz \"użycia\" zamiast klawiszu \"skradania\" będzie " -"użyty do schodzenia w dół i opadania." +"Jeżeli włączone, klawisz \"użycia\" zamiast klawisza \"skradania\" będzie " +"użyty do schodzenia w dół i \n" +"opadania." #: src/settings_translation_file.cpp msgid "" @@ -4052,7 +4053,8 @@ msgstr "Klawisz zwiększania głośności" #: src/settings_translation_file.cpp #, fuzzy msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "Początkowa prędkość pionowa podczas skoku, w blokach na sekundę." +msgstr "" +"Początkowa prędkość pionowa podczas skoku, w blokach na sekundę do kwadratu." #: src/settings_translation_file.cpp #, fuzzy @@ -4068,12 +4070,13 @@ msgid "Instrument chatcommands on registration." msgstr "Instrument poleceń czatu przy rejestracji." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Instrument global callback functions on registration.\n" "(anything you pass to a minetest.register_*() function)" msgstr "" -"Poinstruuj globalne funkcje zwrotne przy rejestracji (wszystko co prześlesz " -"do funkcji minetest.register_*() )" +"Poinstruuj globalne funkcje zwrotne przy rejestracji \n" +"(wszystko co prześlesz do funkcji minetest.register_*() )" #: src/settings_translation_file.cpp msgid "" @@ -4177,8 +4180,9 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" -"Wyłącznie dla Zbioru Julii: komponent W stałej hiperzespolonej, która " -"determinuje kształt Julii.\n" +"Wyłącznie dla Zbioru Julii: \n" +"komponent W stałej hiperzespolonej, \n" +"która determinuje fraktali.\n" "Nie ma wpływu na fraktale trójwymiarowe.\n" "Zakres to w przybliżeniu -2 do 2." @@ -4190,8 +4194,9 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Wyłącznie dla Zbioru Julii: komponent X stałej hiperzespolonej, która " -"determinuje kształt Julii.\n" +"Wyłącznie dla Zbioru Julii: \n" +"komponent X stałej hiperzespolonej, \n" +"która determinuje kształt fraktali.\n" "Zakres to w przybliżeniu -2 do 2." #: src/settings_translation_file.cpp @@ -4202,8 +4207,8 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Wyłącznie dla Zbioru Julii: komponent Y stałej hiperzespolonej, która " -"determinuje kształt Julii.\n" +"Wyłącznie dla Zbioru Julii: komponent Y stałej hiperzespolonej, \n" +"która determinuje kształt fraktali.\n" "Zakres to w przybliżeniu -2 do 2." #: src/settings_translation_file.cpp @@ -4214,8 +4219,9 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Wyłącznie dla Zbioru Julii: komponent Z stałej hiperzespolonej, która " -"determinuje kształt Julii.\n" +"Wyłącznie dla Zbioru Julii: \n" +"komponent Z stałej hiperzespolonej, \n" +"która determinuje kształt fraktali.\n" "Zakres to w przybliżeniu -2 do 2." #: src/settings_translation_file.cpp @@ -4332,6 +4338,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Klawisz poruszania się wstecz.\n" +"Gdy jest aktywny to wyłącza również automatyczne chodzenie do przodu.\n" "Zobacz http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5057,14 +5064,14 @@ msgid "Left key" msgstr "W lewo" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of a server tick and the interval at which objects are generally " "updated over\n" "network." msgstr "" "Długość interwału czasowego serwera w trakcie którego obiekty są ogólnie " -"aktualizowane przez sieć." +"aktualizowane \n" +"przez sieć." #: src/settings_translation_file.cpp #, fuzzy @@ -5085,9 +5092,8 @@ msgid "Length of time between NodeTimer execution cycles" msgstr "Długość czasu pomiędzy wykonywanymi cyklami NodeTimer" #: src/settings_translation_file.cpp -#, fuzzy msgid "Length of time between active block management cycles" -msgstr "Czas pomiędzy cyklami zarządzania aktywnymi blokami." +msgstr "Czas pomiędzy cyklami zarządzania aktywnymi blokami" #: src/settings_translation_file.cpp #, fuzzy @@ -5256,16 +5262,12 @@ msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "Właściwości generowania mapy określające Mapgen Carpathian." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" "Specyficzne cechy dla Mapgen płaskiego terenu.\n" -"Do płaskiego świata mogą być dodane przypadkowe jeziora i wzgórza.\n" -"Oznakowania nie będące określonymi w ciągu oznakowań nie są zmieniane z " -"domyślnych.\n" -"Oznakowania zaczynające się od 'no' używane są do ich blokowania." +"Do płaskiego świata mogą być dodane przypadkowe jeziora i wzgórza." #: src/settings_translation_file.cpp #, fuzzy @@ -5275,7 +5277,8 @@ msgid "" "ocean, islands and underground." msgstr "" "Właściwości generowania mapy określające Mapgen v7.\n" -"\"grzbiety\" aktywują rzeki." +"\"grzbiety\" aktywują tworzenie niefraktalnego terenu:\n" +"oceanu, wysp oraz podziemi." #: src/settings_translation_file.cpp msgid "" From e669f8db9b6a570b42325723ae61f9a00e645db5 Mon Sep 17 00:00:00 2001 From: ResuUman Date: Sat, 27 Mar 2021 19:32:16 +0000 Subject: [PATCH 607/624] Translated using Weblate (Polish) Currently translated at 72.4% (982 of 1356 strings) --- po/pl/minetest.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/po/pl/minetest.po b/po/pl/minetest.po index e4c8691ee..8469a1bc2 100644 --- a/po/pl/minetest.po +++ b/po/pl/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-03-28 20:29+0000\n" -"Last-Translator: Mateusz Mendel \n" +"Last-Translator: ResuUman \n" "Language-Team: Polish \n" "Language: pl\n" @@ -2202,9 +2202,8 @@ msgid "Acceleration in air" msgstr "Przyspieszenie w powietrzu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Acceleration of gravity, in nodes per second per second." -msgstr "Przyśpieszenie grawitacyjne, w blokach na sekundę." +msgstr "Przyśpieszenie grawitacyjne, w blokach na sekundę do kwadratu." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" From cff847273af1fc1fad542ba04fa9a4ef131df532 Mon Sep 17 00:00:00 2001 From: Konstantin Yeliseyev Date: Tue, 30 Mar 2021 05:34:47 +0000 Subject: [PATCH 608/624] Translated using Weblate (Russian) Currently translated at 100.0% (1356 of 1356 strings) --- po/ru/minetest.po | 53 ++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 7ea2b0235..ee4128667 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-25 23:50+0000\n" -"Last-Translator: narrnika \n" +"PO-Revision-Date: 2021-03-30 05:36+0000\n" +"Last-Translator: Konstantin Yeliseyev \n" "Language-Team: Russian \n" "Language: ru\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.6-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -705,9 +705,8 @@ msgid "Loading..." msgstr "Загрузка..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "Клиентские моды отключены" +msgstr "Публичный список серверов отключён" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -1216,12 +1215,12 @@ msgstr "" "- %s: влево\n" "- %s: вправо\n" "- %s: прыжок/подъём\n" +"- %s: копать/удар\n" +"- %s: разместить/использовать\n" "- %s: красться/спуск\n" "- %s: бросить предмет\n" "- %s: инвентарь\n" "- Мышь: поворот/обзор\n" -"- ЛКМ: копать/удар\n" -"- ПКМ: положить/использовать\n" "- Колесо мыши: выбор предмета\n" "- %s: чат\n" @@ -2168,7 +2167,7 @@ msgstr "ABM интервал" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "Бюджет времени ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -2249,13 +2248,11 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" -"Изменяет кривую блеска, применяя к ней «гамма-\n" -"коррекцию». Более высокие значения делают средний \n" -"и нижний уровни света ярче. Значение «1.0» оставляет\n" -"кривую блеска без изменений. Это оказывает \n" -"существенное влияние только на дневной и \n" -"искусственный свет, он очень мало влияет на \n" -"естественный ночной свет." +"Изменяет кривую света, применяя к ней \"гамма-коррекцию\".\n" +"Более высокие значения делают средний и слабый свет ярче.\n" +"Значение \"1.0\" оставляет кривую света без изменений.\n" +"Значительный эффект виден только на дневном и искусственном\n" +"освещении, почти не влияет на естественный ночной свет." #: src/settings_translation_file.cpp msgid "Always fly and fast" @@ -2307,7 +2304,9 @@ msgstr "Инерция руки" msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." -msgstr "Делает более реалистичным движение руки персонажа при движении камеры." +msgstr "" +"Делает более реалистичным движение руки\n" +"персонажа при движении камеры." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -5787,14 +5786,12 @@ msgid "Pitch move mode" msgstr "Режим движения вниз/вверх по направлению взгляда" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "Клавиша полёта" +msgstr "Клавиша «Разместить»" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "Интервал повторного клика правой кнопкой" +msgstr "Интервал повторного размещения" #: src/settings_translation_file.cpp msgid "" @@ -6288,9 +6285,8 @@ msgstr "" "Требует перезапуска после изменения." #: src/settings_translation_file.cpp -#, fuzzy msgid "Show nametag backgrounds by default" -msgstr "Стандартный жирный шрифт" +msgstr "Отображать фон у табличек с именами" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -6652,7 +6648,6 @@ msgstr "" "Это должно быть настроено вместе с active_object_send_range_blocks." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6665,7 +6660,8 @@ msgstr "" "После изменения этого параметра потребуется перезапуск.\n" "Примечание: Если не уверены, используйте OGLES1 для Android, иначе\n" "приложение может не запуститься. На других платформах рекомендуется\n" -"OpenGL, так как сейчас это единственный драйвер с поддержкой шейдеров." +"OpenGL. Шейдеры поддерживаются OpenGL (только на десктопах) и OGLES2 " +"(экспериментально)" #: src/settings_translation_file.cpp msgid "" @@ -6703,6 +6699,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"Бюджет времени для выполнения ABM на каждом шаге\n" +"(как часть ABM-интервала)" #: src/settings_translation_file.cpp msgid "" @@ -6713,11 +6711,12 @@ msgstr "" "когда зажата комбинация кнопок на джойстике." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." -msgstr "Задержка в секундах между кликами при зажатой правой кнопке мыши." +msgstr "" +"Задержка перед повторным размещением блока в секундах\n" +"при удержании клавиши размещения" #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -7141,6 +7140,8 @@ msgid "" "Whether nametag backgrounds should be shown by default.\n" "Mods may still set a background." msgstr "" +"Должен ли отображаться фон бирки по умолчанию.\n" +"Моды в любом случае могут задать фон." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." From 6ea73c49829ced436deb37e9641580bed882c97d Mon Sep 17 00:00:00 2001 From: Dainis Date: Thu, 1 Apr 2021 10:11:36 +0000 Subject: [PATCH 609/624] Translated using Weblate (Latvian) Currently translated at 28.6% (388 of 1356 strings) --- po/lv/minetest.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/po/lv/minetest.po b/po/lv/minetest.po index e1b4de861..36ea08ae0 100644 --- a/po/lv/minetest.po +++ b/po/lv/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2020-07-12 17:41+0000\n" -"Last-Translator: Uko Koknevics \n" +"PO-Revision-Date: 2021-04-02 10:26+0000\n" +"Last-Translator: Dainis \n" "Language-Team: Latvian \n" "Language: lv\n" @@ -18,7 +18,7 @@ msgstr "" "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 4.2-dev\n" +"X-Generator: Weblate 4.6-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -34,7 +34,7 @@ msgstr "" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" -msgstr "Radās kļūme Lua skriptā:" +msgstr "Lua skriptā radās kļūme:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -249,7 +249,7 @@ msgstr "Nevarēja iegūt papildinājumus" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "Nav resultātu" +msgstr "Nav rezultātu" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -282,7 +282,7 @@ msgstr "Atinstalēt" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "Atjaunot" +msgstr "Atjaunināt" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" @@ -294,7 +294,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "Pasaule ar nosaukumu “$1” jau eksistē" +msgstr "Pasaule ar nosaukumu “$1” jau pastāv" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" From 1060b5aabf613bd5a69cef72bff5cf1ac2ed710a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Delpierre?= Date: Sun, 4 Apr 2021 21:42:07 +0000 Subject: [PATCH 610/624] Translated using Weblate (French) Currently translated at 96.6% (1311 of 1356 strings) --- po/fr/minetest.po | 70 ++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 40 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index 9e086f32b..53ed600cc 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-03-25 17:29+0000\n" -"Last-Translator: ItsWidee \n" +"PO-Revision-Date: 2021-04-05 21:22+0000\n" +"Last-Translator: François Delpierre \n" "Language-Team: French \n" "Language: fr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.5.2-dev\n" +"X-Generator: Weblate 4.6-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -154,21 +154,23 @@ msgstr "activé" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "" +msgstr "\"$1\" existe déjà. Voulez-vous l'écraser ?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." -msgstr "" +msgstr "Les dépendances $1 et $2 vont être installées." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 by $2" -msgstr "" +msgstr "$1 par $2" #: builtin/mainmenu/dlg_contentstore.lua msgid "" "$1 downloading,\n" "$2 queued" msgstr "" +"$1 en téléchargement,\n" +"$2 en attente" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 downloading..." @@ -187,9 +189,8 @@ msgid "All packages" msgstr "Tous les paquets" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Already installed" -msgstr "Touche déjà utilisée" +msgstr "Déjà installé" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" @@ -222,14 +223,12 @@ msgid "Install" msgstr "Installer" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install $1" -msgstr "Installer" +msgstr "Installer $1" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Install missing dependencies" -msgstr "Dépendances optionnelles :" +msgstr "Installer les dépendances manquantes" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -245,14 +244,12 @@ msgid "No results" msgstr "Aucun résultat" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "No updates" -msgstr "Mise à jour" +msgstr "Aucune mise à jour" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Not found" -msgstr "Couper le son" +msgstr "Non trouvé" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" @@ -260,7 +257,7 @@ msgstr "Écraser" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." -msgstr "" +msgstr "Veuillez vérifier que le jeu de base est correct." #: builtin/mainmenu/dlg_contentstore.lua msgid "Queued" @@ -280,7 +277,7 @@ msgstr "Mise à jour" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Tout mettre à jour [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" @@ -712,9 +709,8 @@ msgid "Loading..." msgstr "Chargement..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "Les scripts côté client sont désactivés" +msgstr "La liste des serveurs publics est désactivée" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -775,9 +771,8 @@ msgid "Credits" msgstr "Crédits" #: builtin/mainmenu/tab_credits.lua -#, fuzzy msgid "Open User Data Directory" -msgstr "Choisissez un répertoire" +msgstr "Ouvrir le répertoire de données utilisateur" #: builtin/mainmenu/tab_credits.lua msgid "" @@ -837,9 +832,8 @@ msgid "No world created or selected!" msgstr "Aucun monde créé ou sélectionné !" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Password" -msgstr "Nouveau mot de passe" +msgstr "Mot de passe" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -850,9 +844,8 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Select Mods" -msgstr "Sélectionner un monde :" +msgstr "Sélectionner les mods" #: builtin/mainmenu/tab_local.lua msgid "Select World:" @@ -1004,9 +997,8 @@ msgid "Shaders" msgstr "Shaders" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Shaders (experimental)" -msgstr "Îles volantes (expérimental)" +msgstr "Shaders (expérimental)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" @@ -1761,19 +1753,18 @@ msgid "Minimap hidden" msgstr "Mini-carte cachée" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in radar mode, Zoom x%d" -msgstr "Mini-carte en mode radar, zoom x1" +msgstr "Mini-carte en mode radar, zoom ×%d" #: src/client/minimap.cpp -#, fuzzy, c-format +#, c-format msgid "Minimap in surface mode, Zoom x%d" -msgstr "Mini-carte en mode surface, zoom x1" +msgstr "Mini-carte en mode surface, zoom ×%d" #: src/client/minimap.cpp -#, fuzzy msgid "Minimap in texture mode" -msgstr "Taille minimum des textures" +msgstr "Mini-carte en mode texture" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" @@ -2182,7 +2173,7 @@ msgstr "Intervalle des ABM" #: src/settings_translation_file.cpp msgid "ABM time budget" -msgstr "" +msgstr "budget de temps ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" @@ -3588,7 +3579,6 @@ msgid "HUD toggle key" msgstr "HUD" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" "- none: Do not log deprecated calls\n" @@ -3596,11 +3586,11 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Traitement des appels d'API Lua obsolètes :\n" -"- legacy : imite l'ancien comportement (par défaut en mode release).\n" -"- log : imite et enregistre la trace des appels obsolètes (par défaut en " +"- aucun: N'enregistre pas les appels obsolètes\n" +"- log : imite et enregistre la trace des appels obsolètes (par défaut en " "mode debug).\n" -"- error : (=erreur) interruption à l'usage d'un appel obsolète " -"(recommandé pour les développeurs de mods)." +"- erreur : s'interrompt lors d'un appel obsolète (recommandé pour les " +"développeurs de mods)." #: src/settings_translation_file.cpp msgid "" From 541dcc0e5afa384dfe9e4e5806da94802161306c Mon Sep 17 00:00:00 2001 From: ItsWidee Date: Sun, 4 Apr 2021 21:42:39 +0000 Subject: [PATCH 611/624] Translated using Weblate (French) Currently translated at 98.0% (1330 of 1356 strings) --- po/fr/minetest.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index 53ed600cc..b42521c96 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-04-05 21:22+0000\n" -"Last-Translator: François Delpierre \n" +"Last-Translator: ItsWidee \n" "Language-Team: French \n" "Language: fr\n" @@ -170,7 +170,7 @@ msgid "" "$2 queued" msgstr "" "$1 en téléchargement,\n" -"$2 en attente" +"$2 mis en attente" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 downloading..." From 7038837aca6ac035d45c3502d459398e5d5f9dca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?GnuPG=E3=82=92=E4=BD=BF=E3=81=86=E3=81=B9=E3=81=8D?= =?UTF-8?q?=E3=81=A0?= Date: Tue, 6 Apr 2021 12:11:01 +0000 Subject: [PATCH 612/624] Translated using Weblate (Japanese) Currently translated at 99.7% (1353 of 1356 strings) --- po/ja/minetest.po | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/po/ja/minetest.po b/po/ja/minetest.po index c3a5e3522..14b6cc6b3 100644 --- a/po/ja/minetest.po +++ b/po/ja/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Japanese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-13 08:50+0000\n" -"Last-Translator: BreadW \n" +"PO-Revision-Date: 2021-04-06 12:12+0000\n" +"Last-Translator: GnuPGを使うべきだ \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.6-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -699,9 +699,8 @@ msgid "Loading..." msgstr "読み込み中..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "クライアント側のスクリプトは無効" +msgstr "公開サーバー一覧は無効" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -2982,9 +2981,8 @@ msgid "Enable console window" msgstr "コンソールウィンドウを有効化" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "新しく作成されたマップでクリエイティブモードを有効にします。" +msgstr "全プレイヤーにクリエイティブモードを有効化" #: src/settings_translation_file.cpp msgid "Enable joysticks" From 7200d8f90e1ea5552a855e909d63fbb4144f2ba7 Mon Sep 17 00:00:00 2001 From: BreadW Date: Tue, 6 Apr 2021 12:11:16 +0000 Subject: [PATCH 613/624] Translated using Weblate (Japanese) Currently translated at 99.8% (1354 of 1356 strings) --- po/ja/minetest.po | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/po/ja/minetest.po b/po/ja/minetest.po index 14b6cc6b3..92df33b1f 100644 --- a/po/ja/minetest.po +++ b/po/ja/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Japanese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-04-06 12:12+0000\n" -"Last-Translator: GnuPGを使うべきだ \n" +"PO-Revision-Date: 2021-04-08 18:26+0000\n" +"Last-Translator: BreadW \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -700,7 +700,7 @@ msgstr "読み込み中..." #: builtin/mainmenu/serverlistmgr.lua msgid "Public server list is disabled" -msgstr "公開サーバー一覧は無効" +msgstr "公開サーバ一覧は無効" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -2982,7 +2982,7 @@ msgstr "コンソールウィンドウを有効化" #: src/settings_translation_file.cpp msgid "Enable creative mode for all players" -msgstr "全プレイヤーにクリエイティブモードを有効化" +msgstr "すべてのプレイヤーにクリエイティブモードを有効化" #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -6232,9 +6232,8 @@ msgstr "" "変更後は再起動が必要です。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Show nametag backgrounds by default" -msgstr "既定で太字のフォント" +msgstr "既定でネームタグの背景を表示" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -7053,6 +7052,8 @@ msgid "" "Whether nametag backgrounds should be shown by default.\n" "Mods may still set a background." msgstr "" +"既定でネームタグの背景を表示するかどうかです。\n" +"Modで背景を設定することもできます。" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." From 99e96a6581e5c96ed44182eed1bc5ad1f5c5f75c Mon Sep 17 00:00:00 2001 From: waxtatect Date: Wed, 7 Apr 2021 17:30:06 +0000 Subject: [PATCH 614/624] Translated using Weblate (French) Currently translated at 100.0% (1356 of 1356 strings) --- po/fr/minetest.po | 199 ++++++++++++++++++++++++++-------------------- 1 file changed, 112 insertions(+), 87 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index b42521c96..5f4d7ff72 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-04-05 21:22+0000\n" -"Last-Translator: ItsWidee \n" +"PO-Revision-Date: 2021-04-07 17:30+0000\n" +"Last-Translator: waxtatect \n" "Language-Team: French \n" "Language: fr\n" @@ -146,7 +146,7 @@ msgstr "Enregistrer" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "Sélectionner un monde :" +msgstr "Monde :" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" @@ -197,9 +197,8 @@ msgid "Back to Main Menu" msgstr "Retour au menu principal" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Base Game:" -msgstr "Héberger une partie" +msgstr "Jeu de base :" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -207,7 +206,7 @@ msgstr "ContentDB n'est pas disponible quand Minetest est compilé sans cURL" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." -msgstr "Chargement..." +msgstr "Téléchargement..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -926,7 +925,7 @@ msgstr "Anti-crénelage :" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "Sauvegarder automatiquement la taille d'écran" +msgstr "Sauv. autom. de la taille d'écran" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" @@ -1023,7 +1022,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "mappage tonal" +msgstr "Mappage tonal" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" @@ -1176,7 +1175,7 @@ msgstr "Mise à jour de la caméra activée" #: src/client/game.cpp msgid "Change Password" -msgstr "Changer votre mot de passe" +msgstr "Changer de mot de passe" #: src/client/game.cpp msgid "Cinematic mode disabled" @@ -1199,7 +1198,7 @@ msgid "Continue" msgstr "Continuer" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" @@ -1222,14 +1221,14 @@ msgstr "" "- %s : à gauche\n" "- %s : à droite\n" "- %s : sauter/grimper\n" +"- %s : creuser/actionner\n" +"- %s : placer/utiliser\n" "- %s : marcher lentement/descendre\n" -"- %s : lâcher l'objet en main\n" +"- %s : lâcher un objet\n" "- %s : inventaire\n" "- Souris : tourner/regarder\n" -"- Souris gauche : creuser/attaquer\n" -"- Souris droite : placer/utiliser\n" -"- Molette souris : sélectionner objet\n" -"- %s : discuter\n" +"- Molette souris : sélectionner un objet\n" +"- %s : tchat\n" #: src/client/game.cpp msgid "Creating client..." @@ -1746,7 +1745,7 @@ msgstr "Bouton X 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" -msgstr "Zoomer" +msgstr "Zoom" #: src/client/minimap.cpp msgid "Minimap hidden" @@ -1801,7 +1800,7 @@ msgstr "\"Spécial\" = descendre" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" -msgstr "Avancer automatiquement" +msgstr "Avancer autom." #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" @@ -1829,11 +1828,11 @@ msgstr "Console" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" -msgstr "Reduire champ vision" +msgstr "Réd. la distance" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" -msgstr "Réduire le volume" +msgstr "Réd. le volume" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" @@ -1849,11 +1848,11 @@ msgstr "Avancer" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" -msgstr "Augmenter la distance" +msgstr "Augm. la distance" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "Augmenter le volume" +msgstr "Augm. le volume" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" @@ -1869,7 +1868,7 @@ msgstr "Touche déjà utilisée" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "Raccourcis" +msgstr "Raccourcis clavier" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" @@ -1905,11 +1904,11 @@ msgstr "Spécial" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Afficher/retirer l'interface" +msgstr "Interface" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "Afficher/retirer le canal de discussion" +msgstr "Afficher le tchat" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" @@ -1921,11 +1920,11 @@ msgstr "Voler" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "Afficher/retirer le brouillard" +msgstr "Brouillard" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "Afficher/retirer la mini-carte" +msgstr "Mini-carte" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" @@ -1933,7 +1932,7 @@ msgstr "Mode sans collision" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "Activer/désactiver vol vertical" +msgstr "Mouvement vertical" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -2521,7 +2520,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Chat font size" -msgstr "Taille de police du chat" +msgstr "Taille de police du tchat" #: src/settings_translation_file.cpp msgid "Chat key" @@ -2537,7 +2536,7 @@ msgstr "Limite du nombre de message de discussion" #: src/settings_translation_file.cpp msgid "Chat message format" -msgstr "Format du message de chat" +msgstr "Format du message de tchat" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2545,11 +2544,11 @@ msgstr "Seuil de messages de discussion avant déconnexion forcée" #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "Longueur maximum d'un message de chat" +msgstr "Longueur maximum d'un message de tchat" #: src/settings_translation_file.cpp msgid "Chat toggle key" -msgstr "Afficher le chat" +msgstr "Afficher le tchat" #: src/settings_translation_file.cpp msgid "Chatcommands" @@ -2757,11 +2756,12 @@ msgid "Crosshair alpha" msgstr "Opacité du réticule" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Crosshair alpha (opaqueness, between 0 and 255).\n" "Also controls the object crosshair color" -msgstr "Opacité du réticule (entre 0 et 255)." +msgstr "" +"Opacité du réticule (entre 0 et 255).\n" +"Contrôle également la couleur du réticule de l'objet" #: src/settings_translation_file.cpp msgid "Crosshair color" @@ -2772,6 +2772,8 @@ msgid "" "Crosshair color (R,G,B).\n" "Also controls the object crosshair color" msgstr "" +"Couleur du réticule (R,G,B).\n" +"Contrôle également la couleur du réticule de l'objet" #: src/settings_translation_file.cpp msgid "DPI" @@ -3186,9 +3188,8 @@ msgstr "" "définie en bas, plus pour une couche solide de massif volant." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "FPS maximum quand le jeu est en pause." +msgstr "FPS lorsqu’il n’est pas sélectionné ou mis en pause" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3401,7 +3402,7 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" -"Format des messages de chat des joueurs. Substituts valides :\n" +"Format des messages de tchat des joueurs. Substituts valides :\n" "@name, @message, @timestamp (facultatif)" #: src/settings_translation_file.cpp @@ -3586,7 +3587,7 @@ msgid "" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Traitement des appels d'API Lua obsolètes :\n" -"- aucun: N'enregistre pas les appels obsolètes\n" +"- aucun : N'enregistre pas les appels obsolètes\n" "- log : imite et enregistre la trace des appels obsolètes (par défaut en " "mode debug).\n" "- erreur : s'interrompt lors d'un appel obsolète (recommandé pour les " @@ -3882,8 +3883,8 @@ msgid "" "are\n" "enabled." msgstr "" -"Si désactivé, la touche \"special\" est utilisée si le vole et le mode " -"rapide sont tous les deux activés." +"Si désactivé, la touche \"spécial\" est utilisée pour voler vite si les " +"modes vol et rapide sont activés." #: src/settings_translation_file.cpp msgid "" @@ -3906,7 +3907,8 @@ msgid "" "This requires the \"noclip\" privilege on the server." msgstr "" "Si activé avec le mode vol, le joueur sera capable de traverser les blocs " -"solides en volant." +"solides en volant.\n" +"Nécessite le privilège \"noclip\" sur le serveur." #: src/settings_translation_file.cpp msgid "" @@ -4028,7 +4030,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Instrument chatcommands on registration." -msgstr "Instrument d'enregistrement des commandes de chat." +msgstr "Instrument d'enregistrement des commandes de tchat." #: src/settings_translation_file.cpp msgid "" @@ -4121,12 +4123,11 @@ msgstr "ID de manette" #: src/settings_translation_file.cpp msgid "Joystick button repetition interval" -msgstr "Intervalle de répétition du bouton du Joystick" +msgstr "Intervalle de répétition des boutons du Joystick" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick deadzone" -msgstr "Type de manette" +msgstr "Zone morte du joystick" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" @@ -4231,13 +4232,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for digging.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Touche pour sauter.\n" +"Touche pour creuser.\n" "Voir http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4349,7 +4349,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Touche pour ouvrir la fenêtre du chat pour entrer des commandes.\n" +"Touche pour ouvrir la fenêtre du tchat pour entrer des commandes.\n" "Voir http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4369,7 +4369,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Touche pour ouvrir la fenêtre de chat.\n" +"Touche pour ouvrir la fenêtre de tchat.\n" "Voir http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4384,13 +4384,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for placing.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Touche pour sauter.\n" +"Touche pour placer.\n" "Voir http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4855,7 +4854,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Touche pour afficher/cacher la zone de chat.\n" +"Touche pour afficher/cacher la zone de tchat.\n" "Voir http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5163,11 +5162,11 @@ msgstr "Rendre toutes les liquides opaques" #: src/settings_translation_file.cpp msgid "Map Compression Level for Disk Storage" -msgstr "" +msgstr "Niveau de compression des cartes pour le stockage sur disque" #: src/settings_translation_file.cpp msgid "Map Compression Level for Network Transfer" -msgstr "" +msgstr "Niveau de compression des cartes pour le transfert de réseau" #: src/settings_translation_file.cpp msgid "Map directory" @@ -5354,9 +5353,10 @@ msgid "Maximum FPS" msgstr "FPS maximum" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum FPS when the window is not focused, or when the game is paused." -msgstr "FPS maximum quand le jeu est en pause." +msgstr "" +"FPS maximum lorsque la fenêtre n'est pas sélectionnée, ou lorsque le jeu est " +"en pause." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5421,6 +5421,9 @@ msgid "" "be queued.\n" "This should be lower than curl_parallel_limit." msgstr "" +"Nombre maximum de téléchargements simultanés. Les téléchargements dépassant " +"cette limite seront mis en file d'attente.\n" +"Ce nombre doit être inférieur à la limite de curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5476,7 +5479,7 @@ msgstr "Nombre maximal de blocs simultanés envoyés par client" #: src/settings_translation_file.cpp msgid "Maximum size of the out chat queue" -msgstr "Taille maximum de la file de sortie de message du chat" +msgstr "Taille maximum de la file de sortie de message du tchat" #: src/settings_translation_file.cpp msgid "" @@ -5518,7 +5521,7 @@ msgstr "Méthodes utilisées pour l'éclairage des objets." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "Verbosité minimale du log dans le chat." +msgstr "Verbosité minimale de journalisation à écrire dans le tchat." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5629,7 +5632,8 @@ msgid "" msgstr "" "Nom du joueur.\n" "Lors qu'un serveur est lancé, les clients se connectant avec ce nom sont " -"administrateurs." +"administrateurs.\n" +"Lorsque vous démarrez à partir du menu principal, celui-ci est remplacé." #: src/settings_translation_file.cpp msgid "" @@ -5745,8 +5749,9 @@ msgid "" "formspec is\n" "open." msgstr "" -"Ouvrir le mesure pause lorsque le focus sur la fenêtre est perdu. Ne met pas " -"en pause si un formspec est ouvert." +"Ouvre le menu pause lorsque la sélection de la fenêtre est perdue. Ne met " +"pas en pause\n" +"si un formspec est ouvert." #: src/settings_translation_file.cpp msgid "" @@ -5837,14 +5842,12 @@ msgid "Pitch move mode" msgstr "Mode de mouvement libre" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place key" -msgstr "Voler" +msgstr "Touche pour placer" #: src/settings_translation_file.cpp -#, fuzzy msgid "Place repetition interval" -msgstr "Intervalle de répétition du clic droit" +msgstr "Intervalle de répétition du placement" #: src/settings_translation_file.cpp msgid "" @@ -5852,7 +5855,7 @@ msgid "" "This requires the \"fly\" privilege on the server." msgstr "" "Le joueur est capable de voler sans être affecté par la gravité.\n" -"Nécessite le privilège \"fly\" sur un serveur." +"Nécessite le privilège \"fly\" sur le serveur." #: src/settings_translation_file.cpp msgid "Player name" @@ -6260,7 +6263,7 @@ msgid "" "A restart is required after changing this." msgstr "" "Détermine la langue. Laisser vide pour utiliser celui de votre système.\n" -"Un redémarrage du jeu est nécessaire pour prendre effet." +"Un redémarrage est nécessaire après cette modification." #: src/settings_translation_file.cpp msgid "Set the maximum character length of a chat message sent by clients." @@ -6273,9 +6276,8 @@ msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." msgstr "" -"Mettre sur « true » active le mouvement des\n" -"feuilles d'arbres mouvantes. Nécessite les\n" -"shaders pour être activé." +"Mettre sur « true » active le mouvement des feuilles d'arbres mouvantes. " +"Nécessite les shaders pour être activé." #: src/settings_translation_file.cpp msgid "" @@ -6338,18 +6340,16 @@ msgid "Show entity selection boxes" msgstr "Afficher les boîtes de sélection de l'entité" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Show entity selection boxes\n" "A restart is required after changing this." msgstr "" -"Détermine la langue. Laisser vide pour utiliser celui de votre système.\n" -"Un redémarrage du jeu est nécessaire pour prendre effet." +"Afficher les boîtes de sélection de l'entité\n" +"Un redémarrage est nécessaire après cette modification." #: src/settings_translation_file.cpp -#, fuzzy msgid "Show nametag backgrounds by default" -msgstr "La police est en gras par défaut" +msgstr "Afficher l'arrière-plan des badges par défaut" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -6634,9 +6634,8 @@ msgid "The URL for the content repository" msgstr "L'URL du dépôt de contenu en ligne" #: src/settings_translation_file.cpp -#, fuzzy msgid "The deadzone of the joystick" -msgstr "L'identifiant de la manette à utiliser" +msgstr "La zone morte du joystick" #: src/settings_translation_file.cpp msgid "" @@ -6713,7 +6712,6 @@ msgstr "" "Ceci devrait être configuré avec 'active_object_send_range_blocks'." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" @@ -6723,11 +6721,12 @@ msgid "" "Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Le moteur de rendu utilisé par Irrlicht.\n" -"Un redémarrage est nécessaire après avoir changé cette option.\n" -"Il est recommandé de laisser OGLES1 sur Android. Dans le cas contraire, le " -"jeu risque de planter.\n" -"Sur les autres plateformes, OpenGL est recommandé, il s'agit du seul moteur\n" -"à prendre en charge les shaders." +"Un redémarrage est nécessaire après cette modification.\n" +"Remarque : Sur Android, restez avec OGLES1 en cas de doute ! Autrement, " +"l'application peut ne pas démarrer.\n" +"Sur les autres plateformes, OpenGL est recommandé.\n" +"Les shaders sont pris en charge par OpenGL (ordinateur de bureau uniquement) " +"et OGLES2 (expérimental)" #: src/settings_translation_file.cpp msgid "" @@ -6768,23 +6767,24 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" +"Budget de temps alloué aux ABMs pour exécuter à chaque étape (en fraction de " +"l'intervalle ABM)" #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" -"L'intervalle en secondes entre des clics droits répétés lors de l'appui sur " -"le bouton droit de la souris." +"Le temps en secondes qu'il faut entre des événements répétés lors de l'appui " +"d'une combinaison de boutons du joystick." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The time in seconds it takes between repeated node placements when holding\n" "the place button." msgstr "" -"L'intervalle en secondes entre des clics droits répétés lors de l'appui sur " -"le bouton droit de la souris." +"Le temps en secondes qu'il faut entre des placements de blocs répétés lors " +"de l'appui sur le bouton de placement." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6962,6 +6962,15 @@ msgid "" "If set to 0, MSAA is disabled.\n" "A restart is required after changing this option." msgstr "" +"Utilise l'anticrénelage multi-échantillons (MSAA) pour lisser les bords des " +"blocs.\n" +"Cet algorithme lisse la vue 3D tout en conservant l'image nette,\n" +"mais cela ne concerne pas la partie interne des textures\n" +"(ce qui est particulièrement visible avec des textures transparentes).\n" +"Des espaces visibles apparaissent entre les blocs lorsque les shaders sont " +"désactivés.\n" +"Si définie à 0, MSAA est désactivé.\n" +"Un redémarrage est nécessaire après la modification de cette option." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." @@ -7209,6 +7218,8 @@ msgid "" "Whether nametag backgrounds should be shown by default.\n" "Mods may still set a background." msgstr "" +"Si l'arrière-plan des badges doit être affiché par défaut.\n" +"Les mods peuvent toujours définir un arrière-plan." #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7375,6 +7386,13 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Niveau de compression Zlib à utiliser lors de la sauvegarde des mapblocks " +"sur le disque.\n" +"-1 - niveau de compression de Zlib par défaut\n" +"0 - aucune compression, le plus rapide\n" +"9 - meilleure compression, le plus lent\n" +"(les niveaux 1-3 utilisent la méthode \"rapide\", 4-9 utilisent la méthode " +"normale)" #: src/settings_translation_file.cpp msgid "" @@ -7384,6 +7402,13 @@ msgid "" "9 - best compression, slowest\n" "(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Niveau de compression Zlib à utiliser lors de l'envoi des mapblocks au " +"client.\n" +"-1 - niveau de compression de Zlib par défaut\n" +"0 - aucune compression, le plus rapide\n" +"9 - meilleure compression, le plus lent\n" +"(les niveaux 1-3 utilisent la méthode \"rapide\", 4-9 utilisent la méthode " +"normale)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" From 7ca335446bfb0ec75ab3a8aac49da6a7042d2b3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Delpierre?= Date: Mon, 5 Apr 2021 22:00:19 +0000 Subject: [PATCH 615/624] Translated using Weblate (French) Currently translated at 100.0% (1356 of 1356 strings) --- po/fr/minetest.po | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index 5f4d7ff72..f18e4c1fb 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -4,7 +4,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2021-04-07 17:30+0000\n" -"Last-Translator: waxtatect \n" +"Last-Translator: François Delpierre \n" "Language-Team: French \n" "Language: fr\n" @@ -2958,9 +2958,8 @@ msgid "Desynchronize block animation" msgstr "Désynchroniser les textures animées par mapblock" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Droite" +msgstr "Touche pour creuser" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3027,9 +3026,8 @@ msgid "Enable console window" msgstr "Activer la console" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "Activer le mode créatif pour les cartes nouvellement créées." +msgstr "Activer le mode créatif pour tous les joueurs" #: src/settings_translation_file.cpp msgid "Enable joysticks" From 05f531c53825383f96e5f864cc90bd2596d24dd6 Mon Sep 17 00:00:00 2001 From: David Leal Date: Mon, 5 Apr 2021 03:38:33 +0000 Subject: [PATCH 616/624] Translated using Weblate (Spanish) Currently translated at 79.7% (1081 of 1356 strings) --- po/es/minetest.po | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/po/es/minetest.po b/po/es/minetest.po index efb6a4c55..1c75633cc 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-03-25 17:29+0000\n" -"Last-Translator: matiasC \n" +"PO-Revision-Date: 2021-04-08 18:26+0000\n" +"Last-Translator: David Leal \n" "Language-Team: Spanish \n" "Language: es\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5.2-dev\n" +"X-Generator: Weblate 4.6-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -5211,10 +5211,17 @@ msgid "" "to become shallower and occasionally dry.\n" "'altitude_dry': Reduces humidity with altitude." msgstr "" +"Atributos de generación de mapas específicos del generador de mapas Valleys." +"\n" +"'altitude_chill': Reduce el calor con la altitud.\n" +"'humid_rivers': Aumenta la humedad alrededor de ríos.\n" +"'vary_river_depth': Si está activo, la baja humedad y alto calor causan que " +"los ríos sean poco profundos y ocasionalmente secos.\n" +"'altitude_dry': Reduce la humedad con la altitud." #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen v5." -msgstr "" +msgstr "Atributos de generación de mapas específicos al generador de mapas v5." #: src/settings_translation_file.cpp #, fuzzy From a64646cb7b88c37aab4d87f373efef56e6a2333a Mon Sep 17 00:00:00 2001 From: waxtatect Date: Wed, 7 Apr 2021 18:17:11 +0000 Subject: [PATCH 617/624] Translated using Weblate (French) Currently translated at 100.0% (1356 of 1356 strings) --- po/fr/minetest.po | 74 +++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index f18e4c1fb..18767dacc 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-04-07 17:30+0000\n" -"Last-Translator: François Delpierre \n" +"PO-Revision-Date: 2021-04-08 18:26+0000\n" +"Last-Translator: waxtatect \n" "Language-Team: French \n" "Language: fr\n" @@ -2234,12 +2234,13 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" -"Règle la densité de la couche de massifs volants.\n" -"La densité augmente avec cette valeur. Peut être positive ou négative.\n" -"Valeur égale à 0,0 implique 50 % du volume est du massif volant.\n" -"Valeur égale à 2,0 implique une couche de massifs volants solide\n" -"(peut dépendre de « mgv7_np_floatland », toujours vérifier pour\n" -"être sûr)." +"Règle la densité de la couche des îles volantes.\n" +"Augmenter la valeur pour augmenter la densité. Peut être positive ou " +"négative.\n" +"Valeur = 0,0 : 50% du volume est île volante.\n" +"Valeur = 2,0 (peut être plus élevée selon « mgv7_np_floatland », toujours " +"vérifier\n" +"pour être sûr) crée une couche d'île volante solide." #: src/settings_translation_file.cpp msgid "Advanced" @@ -5697,17 +5698,19 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" -"Nombre de threads « emerge » à utiliser.\n" -"Valeur nulle :\n" -"— Sélection automatique. Le nombre de threads sera le\n" -"« nombre de processeurs moins 2 », avec un minimum de 1.\n" +"Nombre de processus « emerge » à utiliser.\n" +"Valeur 0 :\n" +"- Sélection automatique. Le nombre de processus sera le\n" +"- « nombre de processeurs - 2 », avec un minimum de 1.\n" "Toute autre valeur :\n" -"— Spécifie le nombre de threads, avec un minimum de 1.\n" -"ATTENTION : augmenter le nombre de threads accélère bien la création\n" -"de terrain, mais cela peut nuire à la performance du jeu en interférant\n" -"avec d’autres processus, en particulier en mode solo ou lors de \n" -"l’exécution du code Lua en mode « on_generated ».\n" -"Pour beaucoup, le réglage optimal peut être « 1 »." +"- Spécifie le nombre de processus, avec un minimum de 1.\n" +"ATTENTION : Augmenter le nombre de processus « emerge » accélère bien la\n" +"création de terrain, mais cela peut nuire à la performance du jeu en " +"interférant\n" +"avec d’autres processus, en particulier en mode solo et/ou lors de l’" +"exécution de\n" +"code Lua en mode « on_generated ». Pour beaucoup, le réglage optimal peut " +"être « 1 »." #: src/settings_translation_file.cpp msgid "" @@ -6006,14 +6009,16 @@ msgid "" "READ_PLAYERINFO: 32 (disable get_player_names call client-side)" msgstr "" "Limite l'accès de certaines fonctions côté client sur les serveurs\n" -"Combiner les byteflags si dessous pour restraindre ou mettre 0\n" -"pour laisser sans restriction.\n" -"LOAD_CLIENT_MODS : 1 (désactive le chargement des mods du client)\n" -"CHAT_MESSAGES : 2 (désactivez l'appel send_chat_message côté client)\n" -"READ_ITEMDEFS : 4 (désactivez l'appel get_item_def côté client)\n" -"READ_NODEDEFS : 8 (désactiver l'appel côté client de get_node_def)\n" -"LOOKUP_NODES_LIMIT : 16 (limite les appels get_node côté client à\n" -"csm_restriction_noderange)" +"Combiner les byteflags ci dessous pour restreindre les fonctionnalités " +"client,\n" +"ou mettre 0 pour laisser sans restriction :\n" +"LOAD_CLIENT_MODS : 1 (désactive le chargement des mods client)\n" +"CHAT_MESSAGES : 2 (désactive l'appel send_chat_message côté client)\n" +"READ_ITEMDEFS : 4 (désactive l'appel get_item_def côté client)\n" +"READ_NODEDEFS : 8 (désactive l'appel get_node_def côté client)\n" +"LOOKUP_NODES_LIMIT : 16 (limite l'appel get_node côté client à\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO : 32 (désactive l'appel get_player_names côté client)" #: src/settings_translation_file.cpp msgid "Ridge mountain spread noise" @@ -6274,7 +6279,7 @@ msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." msgstr "" -"Mettre sur « true » active le mouvement des feuilles d'arbres mouvantes. " +"Mettre sur « true » active le mouvement des feuilles d'arbres mouvantes.\n" "Nécessite les shaders pour être activé." #: src/settings_translation_file.cpp @@ -6290,8 +6295,7 @@ msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." msgstr "" -"Mettre sur « true » active le mouvement\n" -"des végétaux.\n" +"Mettre sur « true » active le mouvement des végétaux.\n" "Nécessite les shaders pour être activé." #: src/settings_translation_file.cpp @@ -6765,8 +6769,8 @@ msgid "" "The time budget allowed for ABMs to execute on each step\n" "(as a fraction of the ABM Interval)" msgstr "" -"Budget de temps alloué aux ABMs pour exécuter à chaque étape (en fraction de " -"l'intervalle ABM)" +"Budget de temps alloué aux ABMs pour exécuter à chaque étape\n" +"(en fraction de l'intervalle ABM)" #: src/settings_translation_file.cpp msgid "" @@ -7187,16 +7191,16 @@ msgid "" msgstr "" "En utilisant le filtrage bilinéaire/trilinéaire/anisotrope, les textures de " "basse résolution\n" -"peuvent être brouillées. Elles seront donc automatiquement agrandies avec " -"l'interpolation\n" +"peuvent être brouillées. Elles seront donc automatiquement agrandies avec l'" +"interpolation\n" "du plus proche voisin pour garder des pixels moins floues. Ceci détermine la " "taille de la texture minimale\n" "pour les textures agrandies ; les valeurs plus hautes rendent plus " "détaillées, mais nécessitent\n" "plus de mémoire. Les puissances de 2 sont recommandées. Définir une valeur " "supérieure à 1 peut ne pas\n" -"avoir d'effet visible sauf si le filtrage bilinéaire / trilinéaire / " -"anisotrope est activé.\n" +"avoir d'effet visible sauf si le filtrage bilinéaire/trilinéaire/anisotrope " +"est activé.\n" "Ceci est également utilisée comme taille de texture de nœud par défaut pour\n" "l'agrandissement des textures basé sur le monde." From 7f2f8cdad1818a1af6884d6d2183e5d1eb2f7c1e Mon Sep 17 00:00:00 2001 From: ssantos Date: Tue, 6 Apr 2021 20:55:07 +0000 Subject: [PATCH 618/624] Translated using Weblate (Portuguese) Currently translated at 93.2% (1264 of 1356 strings) --- po/pt/minetest.po | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/po/pt/minetest.po b/po/pt/minetest.po index 78c46b6d8..983e3a86e 100644 --- a/po/pt/minetest.po +++ b/po/pt/minetest.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Portuguese (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-23 15:50+0000\n" +"PO-Revision-Date: 2021-04-08 18:26+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese \n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.5\n" +"X-Generator: Weblate 4.6-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -704,9 +704,8 @@ msgid "Loading..." msgstr "A carregar..." #: builtin/mainmenu/serverlistmgr.lua -#, fuzzy msgid "Public server list is disabled" -msgstr "O scripting de cliente está desativado" +msgstr "A lista de servidores públicos está desativada" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." @@ -2941,9 +2940,8 @@ msgid "Desynchronize block animation" msgstr "Dessincroniza animação de blocos" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dig key" -msgstr "Tecla para a direita" +msgstr "Tecla para escavar" #: src/settings_translation_file.cpp msgid "Digging particles" @@ -3010,9 +3008,8 @@ msgid "Enable console window" msgstr "Ativar janela de console" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable creative mode for all players" -msgstr "Ativar modo criativo para mundos novos." +msgstr "Ativar modo criativo para todos os jogadores" #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -3172,9 +3169,8 @@ msgstr "" "terrenos flutuantes." #: src/settings_translation_file.cpp -#, fuzzy msgid "FPS when unfocused or paused" -msgstr "Máximo FPS quando o jogo é pausado." +msgstr "FPS quando desfocado ou pausado" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3307,9 +3303,8 @@ msgid "Floatland noise" msgstr "Ruído no terreno flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Expoente de terras flutuantes montanhosas" +msgstr "Expoente de conicidade de terrenos flutuantes" #: src/settings_translation_file.cpp #, fuzzy @@ -3317,9 +3312,8 @@ msgid "Floatland tapering distance" msgstr "Ruído base de terra flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Nível de água" +msgstr "Nível da água em terreno flutuante" #: src/settings_translation_file.cpp msgid "Fly key" From 15ecc0fa6556d56d53ab8cf423c8eb3da7283de1 Mon Sep 17 00:00:00 2001 From: Edward Date: Mon, 5 Apr 2021 14:44:06 +0000 Subject: [PATCH 619/624] Translated using Weblate (Russian) Currently translated at 100.0% (1356 of 1356 strings) --- po/ru/minetest.po | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/po/ru/minetest.po b/po/ru/minetest.po index ee4128667..bb5c90b4c 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-03-30 05:36+0000\n" -"Last-Translator: Konstantin Yeliseyev \n" +"PO-Revision-Date: 2021-04-08 18:26+0000\n" +"Last-Translator: Edward \n" "Language-Team: Russian \n" "Language: ru\n" @@ -2617,7 +2617,8 @@ msgid "" msgstr "" "Разделённый запятыми список меток, которые можно скрывать в репозитории.\n" "\"nonfree\" можно использовать, чтобы скрыть пакеты, которые не являются " -"свободным программным обеспечением по определению Free Software Foundation.\n" +"'свободным программным обеспечением'\n" +" по определению Free Software Foundation.\n" "Также вы можете назначить рейтинг.\n" "Метки не зависят от версии Minetest,\n" "узнать полный список можно на https://content.minetest.net/help/" @@ -2628,15 +2629,15 @@ msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" -"Разделенный запятыми список модов, которые позволяют получить доступ к API " -"для HTTP, что позволить им загружать и скачивать данные из интернета." +"Разделенный запятыми список модов, которые позволяют получить доступ к HTTP " +"APIs, что позволит им загружать и скачивать данные в/из интернета." #: src/settings_translation_file.cpp msgid "" "Comma-separated list of trusted mods that are allowed to access insecure\n" "functions even when mod security is on (via request_insecure_environment())." msgstr "" -"Список доверенных модов через запятую, которым разрешён доступ к " +"Список доверенных модов разделённых через запятую, которым разрешён доступ к " "небезопасным функциям даже когда включена защита модов (через " "request_insecure_environment())." @@ -3015,7 +3016,7 @@ msgstr "Включить окно консоли" #: src/settings_translation_file.cpp msgid "Enable creative mode for all players" -msgstr "Включить творческий режим для всех игроков." +msgstr "Включить творческий режим для всех игроков" #: src/settings_translation_file.cpp msgid "Enable joysticks" From 6cbc03a4187bbd432206bc2cc884c2a2efe3d7d4 Mon Sep 17 00:00:00 2001 From: Tviljan Date: Sat, 10 Apr 2021 04:25:12 +0000 Subject: [PATCH 620/624] Translated using Weblate (Finnish) Currently translated at 3.2% (44 of 1356 strings) --- po/fi/minetest.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/fi/minetest.po b/po/fi/minetest.po index 57682ebba..eaf9e5854 100644 --- a/po/fi/minetest.po +++ b/po/fi/minetest.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"PO-Revision-Date: 2021-04-10 04:25+0000\n" "Last-Translator: Tviljan \n" "Language-Team: Finnish \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.5-dev\n" +"X-Generator: Weblate 4.6-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -33,7 +33,7 @@ msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" -msgstr "" +msgstr "Komentosarjassa tapahtui virhe:" #: builtin/fstk/ui.lua msgid "An error occurred:" From 3c16d2d9b4f0659f39871ef57c0601b3a6ba0d66 Mon Sep 17 00:00:00 2001 From: Markus Mikkonen Date: Sat, 10 Apr 2021 04:20:50 +0000 Subject: [PATCH 621/624] Translated using Weblate (Finnish) Currently translated at 3.2% (44 of 1356 strings) --- po/fi/minetest.po | 207 +++++++++++++++++++++++----------------------- 1 file changed, 105 insertions(+), 102 deletions(-) diff --git a/po/fi/minetest.po b/po/fi/minetest.po index eaf9e5854..f6832efe3 100644 --- a/po/fi/minetest.po +++ b/po/fi/minetest.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-04-10 04:25+0000\n" -"Last-Translator: Tviljan \n" +"PO-Revision-Date: 2021-04-10 15:49+0000\n" +"Last-Translator: Markus Mikkonen \n" "Language-Team: Finnish \n" "Language: fi\n" @@ -33,7 +33,7 @@ msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" -msgstr "Komentosarjassa tapahtui virhe:" +msgstr "Lua-skriptissä tapahtui virhe:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -41,7 +41,7 @@ msgstr "Tapahtui virhe:" #: builtin/fstk/ui.lua msgid "Main menu" -msgstr "" +msgstr "Päävalikko" #: builtin/fstk/ui.lua msgid "Reconnect" @@ -49,27 +49,27 @@ msgstr "Yhdistä uudelleen" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "" +msgstr "Palvelin pyysi yhteyden muodostamista uudelleen:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " -msgstr "" +msgstr "Protokollaversiot epäyhteensopivat. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "" +msgstr "Palvelin vaatii protokollaversion $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "" +msgstr "Palvelin tukee protokollaversioita välillä $1 ja $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "" +msgstr "Tuemme vain protokollaversiota $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "" +msgstr "Tuemme protokollaversioita välillä $1 ja $2." #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_create_world.lua @@ -80,50 +80,52 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "" +msgstr "Peruuta" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "" +msgstr "Riippuvuudet:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "" +msgstr "Poista kaikki käytöstä" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "" +msgstr "Poista modipaketti käytöstä" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "" +msgstr "Ota kaikki käyttöön" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "" +msgstr "Ota modipaketti käyttöön" #: builtin/mainmenu/dlg_config_world.lua msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" +"Modin \"$1\" käyttöönotto epäonnistui, koska se sisälsi sallimattomia " +"merkkejä. Vain merkit [a-z0-9_] ovat sallittuja." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Löydä lisää modeja" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" -msgstr "" +msgstr "Modi:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "" +msgstr "Ei (valinnaisia) riippuvuuksia" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "" +msgstr "Pelin kuvausta ei ole annettu." #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" @@ -131,15 +133,15 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "" +msgstr "Modipaketin kuvausta ei annettu." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "" +msgstr "Ei valinnaisia riippuvuuksia" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "" +msgstr "Valinnaiset riippuvuudet:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp @@ -152,7 +154,7 @@ msgstr "Maailma:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "" +msgstr "käytössä" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" @@ -173,9 +175,8 @@ msgid "" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "$1 downloading..." -msgstr "Ladataan..." +msgstr "$1 latautuu..." #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 required dependencies could not be found." @@ -187,15 +188,15 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" -msgstr "" +msgstr "Kaikki paketit" #: builtin/mainmenu/dlg_contentstore.lua msgid "Already installed" -msgstr "" +msgstr "Asennettu jo" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "" +msgstr "Takaisin päävalikkoon" #: builtin/mainmenu/dlg_contentstore.lua msgid "Base Game:" @@ -203,37 +204,37 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB ei ole saatavilla, jos Minetest on koottu ilman cURLia" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." -msgstr "" +msgstr "Ladataan..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "" +msgstr "Epäonnistui ladata $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "" +msgstr "Pelit" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "" +msgstr "Asenna" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install $1" -msgstr "" +msgstr "Asenna $1" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install missing dependencies" -msgstr "" +msgstr "Asenna puuttuvat riippuvuudet" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "" +msgstr "Modit" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" @@ -241,11 +242,11 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "" +msgstr "Ei tuloksia" #: builtin/mainmenu/dlg_contentstore.lua msgid "No updates" -msgstr "" +msgstr "Ei päivityksiä" #: builtin/mainmenu/dlg_contentstore.lua msgid "Not found" @@ -253,7 +254,7 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Overwrite" -msgstr "" +msgstr "Ylikirjoita" #: builtin/mainmenu/dlg_contentstore.lua msgid "Please check that the base game is correct." @@ -265,19 +266,19 @@ msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "" +msgstr "Tekstuuripaketit" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" -msgstr "" +msgstr "Poista" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "" +msgstr "Päivitä" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update All [$1]" -msgstr "" +msgstr "Päivitä kaikki [$1]" #: builtin/mainmenu/dlg_contentstore.lua msgid "View more information in a web browser" @@ -285,7 +286,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "" +msgstr "Maailma nimellä \"$1\" on jo olemassa" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" @@ -305,7 +306,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Biomit" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" @@ -313,11 +314,11 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "Luolat" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" -msgstr "" +msgstr "Luo" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" @@ -325,11 +326,11 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" +msgstr "Lataa peli, kuten Minetest Game, minetest.netistä" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "" +msgstr "Lataa yksi minetest.netistä" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" @@ -337,7 +338,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Tasainen maasto" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" @@ -349,7 +350,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "" +msgstr "Peli" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" @@ -357,7 +358,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Mäet" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -389,7 +390,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Vuoret" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -401,7 +402,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" -msgstr "" +msgstr "Ei peliä valittu" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" @@ -422,7 +423,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "" +msgstr "Siemen" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" @@ -472,21 +473,21 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "World name" -msgstr "" +msgstr "Maailman nimi" #: builtin/mainmenu/dlg_create_world.lua msgid "You have no games installed." -msgstr "" +msgstr "Sinulla ei ole pelejä asennettuna." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "" +msgstr "Oletko varma että haluat poistaa \"$1\":n?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" -msgstr "" +msgstr "Poista" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" @@ -498,11 +499,11 @@ msgstr "" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "" +msgstr "Poista maailma \"$1\"?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "" +msgstr "Hyväksy" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" @@ -524,23 +525,23 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "" +msgstr "< Takaisin asetussivulle" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" -msgstr "" +msgstr "Selaa" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "" +msgstr "Poistettu käytöstä" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "" +msgstr "Muokkaa" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "" +msgstr "Otettu käyttöön" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" @@ -576,19 +577,19 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Search" -msgstr "" +msgstr "Etsi" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "" +msgstr "Valitse hakemisto" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select file" -msgstr "" +msgstr "Valitse tiedosto" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "" +msgstr "Näytä tekniset nimet" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." @@ -600,7 +601,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" -msgstr "" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" @@ -608,7 +609,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" -msgstr "" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" @@ -616,7 +617,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" -msgstr "" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" @@ -647,7 +648,7 @@ msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" -msgstr "" +msgstr "$1 (Käytössä)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" @@ -704,6 +705,8 @@ msgstr "" #: builtin/mainmenu/serverlistmgr.lua msgid "Try reenabling public serverlist and check your internet connection." msgstr "" +"Kokeile ottaa julkinen palvelinlista uudelleen käyttöön ja tarkista " +"internetyhteytesi." #: builtin/mainmenu/tab_content.lua msgid "Browse online content" @@ -715,7 +718,7 @@ msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" -msgstr "" +msgstr "Poista tekstuuripaketti käytöstä" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -723,27 +726,27 @@ msgstr "" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" -msgstr "" +msgstr "Asennetut paketit:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." -msgstr "" +msgstr "Ei riippuvuuksia." #: builtin/mainmenu/tab_content.lua msgid "No package description available" -msgstr "" +msgstr "Ei paketin kuvausta saatavilla" #: builtin/mainmenu/tab_content.lua msgid "Rename" -msgstr "" +msgstr "Nimeä uudelleen" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" -msgstr "" +msgstr "Poista paketti" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" -msgstr "" +msgstr "Käytä tekstuuripakettia" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" @@ -785,7 +788,7 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Creative Mode" -msgstr "" +msgstr "Luova tila" #: builtin/mainmenu/tab_local.lua msgid "Enable Damage" @@ -809,7 +812,7 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" -msgstr "" +msgstr "Uusi" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" @@ -821,11 +824,11 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Play Game" -msgstr "" +msgstr "Pelaa peliä" #: builtin/mainmenu/tab_local.lua msgid "Port" -msgstr "" +msgstr "Portti" #: builtin/mainmenu/tab_local.lua msgid "Select Mods" @@ -833,7 +836,7 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Select World:" -msgstr "" +msgstr "Valitse maailma:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" @@ -845,15 +848,15 @@ msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "" +msgstr "Osoite / Portti" #: builtin/mainmenu/tab_online.lua msgid "Connect" -msgstr "" +msgstr "Yhdistä" #: builtin/mainmenu/tab_online.lua msgid "Creative mode" -msgstr "" +msgstr "Luova tila" #: builtin/mainmenu/tab_online.lua msgid "Damage enabled" @@ -865,19 +868,19 @@ msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Favorite" -msgstr "" +msgstr "Suosikki" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "" +msgstr "Liity peliin" #: builtin/mainmenu/tab_online.lua msgid "Name / Password" -msgstr "" +msgstr "Nimi / Salasana" #: builtin/mainmenu/tab_online.lua msgid "Ping" -msgstr "" +msgstr "Viive" #. ~ PvP = Player versus Player #: builtin/mainmenu/tab_online.lua @@ -886,7 +889,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "2x" -msgstr "" +msgstr "2x" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" @@ -894,15 +897,15 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "4x" -msgstr "" +msgstr "4x" #: builtin/mainmenu/tab_settings.lua msgid "8x" -msgstr "" +msgstr "8x" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" -msgstr "" +msgstr "Kaikki asetukset" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" @@ -926,7 +929,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" -msgstr "" +msgstr "Hienot lehdet" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" @@ -966,7 +969,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Particles" -msgstr "" +msgstr "Partikkelit" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" @@ -974,7 +977,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Settings" -msgstr "" +msgstr "Asetukset" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" @@ -1046,7 +1049,7 @@ msgstr "" #: src/client/client.cpp msgid "Loading textures..." -msgstr "" +msgstr "Ladataan tekstuureja..." #: src/client/client.cpp msgid "Rebuilding shaders..." From b7c502c8d1eb7a85af972c2c900f3385d3f6e30d Mon Sep 17 00:00:00 2001 From: Brian Gaucher Date: Sat, 10 Apr 2021 12:00:16 +0000 Subject: [PATCH 622/624] Translated using Weblate (French) Currently translated at 100.0% (1356 of 1356 strings) --- po/fr/minetest.po | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index 18767dacc..e67b34322 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-04-08 18:26+0000\n" -"Last-Translator: waxtatect \n" +"PO-Revision-Date: 2021-04-10 12:07+0000\n" +"Last-Translator: Brian Gaucher \n" "Language-Team: French \n" "Language: fr\n" @@ -2446,13 +2446,12 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Distance en nœuds du plan de coupure rapproché de la caméra, entre 0 et " -"0,25.\n" -"Ne fonctionne uniquement que sur les plateformes GLES.\n" -"La plupart des utilisateurs n’auront pas besoin de changer cela.\n" -"L’augmentation peut réduire les anomalies sur des cartes graphique plus " -"faibles.\n" -"0,1 par défaut, 0,25 est une bonne valeur pour des composants faibles." +"Distance de la caméra 'près de la plane de coupure' dans les nœuds, valeur " +"entre 0 et 0,5.\n" +"Ne fonctionne que sur les plateformes GLES. La plupart des utilisateurs n’" +"auront pas besoin de changer cela.\n" +"L’augmentation peut réduire les artefacts sur des GPU plus faibles.\n" +"0,1 - Par défaut, 0,25 - Bonne valeur pour les comprimés plus faibles." #: src/settings_translation_file.cpp msgid "Camera smoothing" From 9379440fcb63a39f37f9bcd34fcfdf16ff6849e6 Mon Sep 17 00:00:00 2001 From: waxtatect Date: Sat, 10 Apr 2021 11:40:48 +0000 Subject: [PATCH 623/624] Translated using Weblate (French) Currently translated at 100.0% (1356 of 1356 strings) --- po/fr/minetest.po | 264 ++++++++++++++++++++++------------------------ 1 file changed, 127 insertions(+), 137 deletions(-) diff --git a/po/fr/minetest.po b/po/fr/minetest.po index e67b34322..2eed94406 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-23 19:03+0100\n" -"PO-Revision-Date: 2021-04-10 12:07+0000\n" -"Last-Translator: Brian Gaucher \n" +"PO-Revision-Date: 2021-04-10 15:49+0000\n" +"Last-Translator: waxtatect \n" "Language-Team: French \n" "Language: fr\n" @@ -154,7 +154,7 @@ msgstr "activé" #: builtin/mainmenu/dlg_contentstore.lua msgid "\"$1\" already exists. Would you like to overwrite it?" -msgstr "\"$1\" existe déjà. Voulez-vous l'écraser ?" +msgstr "« $1 » existe déjà. Voulez-vous l'écraser ?" #: builtin/mainmenu/dlg_contentstore.lua msgid "$1 and $2 dependencies will be installed." @@ -284,7 +284,7 @@ msgstr "Voir plus d'informations dans un navigateur web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "Le monde \"$1\" existe déjà" +msgstr "Le monde « $1 » existe déjà" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" @@ -483,7 +483,7 @@ msgstr "Vous n'avez pas de jeu installé." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "Êtes-vous sûr de vouloir supprimer \"$1\" ?" +msgstr "Êtes-vous sûr de vouloir supprimer « $1 » ?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua @@ -493,15 +493,15 @@ msgstr "Supprimer" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "Le gestionnaire de mods n'a pas pu supprimer \"$1\"" +msgstr "Le gestionnaire de mods n'a pas pu supprimer « $1 »" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "Gestionnaire de mods : chemin de mod invalide \"$1\"" +msgstr "Gestionnaire de mods : chemin de mod invalide « $1 »" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "Supprimer le monde \"$1\" ?" +msgstr "Supprimer le monde « $1 » ?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" @@ -676,12 +676,12 @@ msgstr "" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" -"Installation d'un mod : type de fichier non supporté \"$1\" ou archive " +"Installation d'un mod : type de fichier non supporté « $1 » ou archive " "endommagée" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "Installation : fichier : \"$1\"" +msgstr "Installation : fichier : « $1 »" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" @@ -1353,7 +1353,7 @@ msgstr "Mio/s" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "La minimap est actuellement désactivée par un jeu ou un mod" +msgstr "Mini-carte actuellement désactivée par un jeu ou un mod" #: src/client/game.cpp msgid "Noclip mode disabled" @@ -1445,7 +1445,7 @@ msgstr "Distance de vue minimale : %d" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "Volume réglé sur %d%%" +msgstr "Volume réglé sur %d %%" #: src/client/game.cpp msgid "Wireframe shown" @@ -1796,7 +1796,7 @@ msgstr "Procéder" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "\"Spécial\" = descendre" +msgstr "« Spécial » = descendre" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" @@ -1984,8 +1984,8 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" -"(Android) Fixe la position du joystick virtuel.\n" -"Si désactivé, le joystick virtuel sera centré sur la position du doigt " +"(Android) Fixe la position de la manette virtuel.\n" +"Si désactivé, la manette virtuelle sera centrée sur la position du doigt " "principal." #: src/settings_translation_file.cpp @@ -1994,8 +1994,8 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" -"(Android) Utiliser le joystick vrituel pour déclencher le bouton « aux ».\n" -"Si activé, le joystick virtuel va également appuyer sur le bouton « aux » " +"(Android) Utiliser la manette virtuelle pour déclencher le bouton « aux ».\n" +"Si activé, la manette virtuelle va également appuyer sur le bouton « aux » " "lorsqu'en dehors du cercle principal." #: src/settings_translation_file.cpp @@ -2237,7 +2237,7 @@ msgstr "" "Règle la densité de la couche des îles volantes.\n" "Augmenter la valeur pour augmenter la densité. Peut être positive ou " "négative.\n" -"Valeur = 0,0 : 50% du volume est île volante.\n" +"Valeur = 0,0 : 50 % du volume est île volante.\n" "Valeur = 2,0 (peut être plus élevée selon « mgv7_np_floatland », toujours " "vérifier\n" "pour être sûr) crée une couche d'île volante solide." @@ -2254,10 +2254,10 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" -"Il modifie la courbe de lumière en lui appliquant une \"correction gamma\".\n" +"Il modifie la courbe de lumière en lui appliquant une « correction gamma ».\n" "Des valeurs plus élevées rendent les niveaux de lumière moyens et inférieurs " "plus lumineux.\n" -"La valeur \"1.0\" laisse la courbe de lumière intacte.\n" +"La valeur '1,0' laisse la courbe de lumière intacte.\n" "Cela n'a d'effet significatif que sur la lumière du jour et les\n" "la lumière, et elle a très peu d'effet sur la lumière naturelle de la nuit." @@ -2357,7 +2357,7 @@ msgstr "Déclarer automatiquement le serveur à la liste des serveurs publics." #: src/settings_translation_file.cpp msgid "Autosave screen size" -msgstr "Sauver auto. la taile d'écran" +msgstr "Sauvegarde automatique de la taille d'écran" #: src/settings_translation_file.cpp msgid "Autoscaling mode" @@ -2381,7 +2381,7 @@ msgstr "Principal" #: src/settings_translation_file.cpp msgid "Basic privileges" -msgstr "Privilèges par défaut" +msgstr "Privilèges de base" #: src/settings_translation_file.cpp msgid "Beach noise" @@ -2446,12 +2446,12 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Distance de la caméra 'près de la plane de coupure' dans les nœuds, valeur " -"entre 0 et 0,5.\n" +"Distance de la caméra 'près du plan de coupure' dans les nœuds, entre 0 et 0," +"25\n" "Ne fonctionne que sur les plateformes GLES. La plupart des utilisateurs n’" "auront pas besoin de changer cela.\n" -"L’augmentation peut réduire les artefacts sur des GPU plus faibles.\n" -"0,1 - Par défaut, 0,25 - Bonne valeur pour les comprimés plus faibles." +"L’augmentation peut réduire les artefacts sur des GPUs plus faibles.\n" +"0,1 = Défaut, 0,25 = Bonne valeur pour les tablettes plus faibles." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2514,9 +2514,9 @@ msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -"Gamme de poussée de courbe de centre de lumière.\n" -"Lorsque 0,0 est le niveau de lumière minimum, et 1,0 est le niveau de " -"lumière maximum." +"Centre de la plage d'amplification de la courbe de lumière.\n" +"Où 0,0 est le niveau de lumière minimum, et 1,0 est le niveau de lumière " +"maximum." #: src/settings_translation_file.cpp msgid "Chat font size" @@ -2612,7 +2612,7 @@ msgstr "Nuages dans le menu" #: src/settings_translation_file.cpp msgid "Colored fog" -msgstr "Brume colorée" +msgstr "Brouillard colorée" #: src/settings_translation_file.cpp msgid "" @@ -2625,7 +2625,7 @@ msgid "" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" "Liste des drapeaux à cacher du dépôt des contenus.\n" -"\"nonfree\" peut être utilisé pour cacher les paquets non libres,\n" +"« nonfree » peut être utilisé pour cacher les paquets non libres,\n" "comme défini par la Free Software Foundation.\n" "Vous pouvez aussi spécifier des classifications de contenu.\n" "Ces drapeaux sont indépendants des versions de Minetest,\n" @@ -3031,7 +3031,7 @@ msgstr "Activer le mode créatif pour tous les joueurs" #: src/settings_translation_file.cpp msgid "Enable joysticks" -msgstr "Activer les joysticks" +msgstr "Activer les manettes" #: src/settings_translation_file.cpp msgid "Enable mod channels support." @@ -3130,11 +3130,11 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" -"Permet à Hable 'Uncharted 2' de cartographier les tonalités du film.\n" -"Simule la courbe des tons du film photographique, ce qui se rapproche de la\n" +"Active le mappage de ton filmique 'Uncharted 2' de Hable.\n" +"Simule la courbe des tons du film photographique, ce qui se rapproche de la " "l'apparition d'images à plage dynamique élevée. Le contraste de milieu de " -"gamme est légèrement\n" -"améliorées, les reflets et les ombres sont progressivement compressés." +"gamme est légèrement améliorées, les reflets et les ombres sont " +"progressivement compressés." #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." @@ -3238,8 +3238,8 @@ msgid "" "Fast movement (via the \"special\" key).\n" "This requires the \"fast\" privilege on the server." msgstr "" -"Mouvement rapide (via la touche « utiliser »).\n" -"Nécessite le privilège « rapide» sur le serveur." +"Mouvement rapide (via la touche « spécial »).\n" +"Nécessite le privilège « fast » sur le serveur." #: src/settings_translation_file.cpp msgid "Field of view" @@ -3278,10 +3278,9 @@ msgid "" "light edge to transparent textures. Apply this filter to clean that up\n" "at texture load time." msgstr "" -"Les textures filtrées peuvent mélanger des valeurs RGB avec des zones 100 % " -"transparentes.\n" -"aboutissant parfois à des bords foncés ou clairs sur les textures " -"transparentes.\n" +"Les textures filtrées peuvent mélanger des valeurs RGB avec des zones 100 % " +"transparentes, aboutissant parfois à des bords foncés ou clairs sur les " +"textures transparentes.\n" "Appliquer ce filtre pour nettoyer cela au chargement de la texture." #: src/settings_translation_file.cpp @@ -3304,7 +3303,7 @@ msgstr "Graine de génération de terrain déterminée" #: src/settings_translation_file.cpp msgid "Fixed virtual joystick" -msgstr "Fixer le joystick virtuel" +msgstr "Fixer la manette virtuelle" #: src/settings_translation_file.cpp msgid "Floatland density" @@ -3344,7 +3343,7 @@ msgstr "Voler" #: src/settings_translation_file.cpp msgid "Fog" -msgstr "Brume" +msgstr "Brouillard" #: src/settings_translation_file.cpp msgid "Fog start" @@ -3352,7 +3351,7 @@ msgstr "Début du brouillard" #: src/settings_translation_file.cpp msgid "Fog toggle key" -msgstr "Brume" +msgstr "Brouillard" #: src/settings_translation_file.cpp msgid "Font bold by default" @@ -3360,7 +3359,7 @@ msgstr "La police est en gras par défaut" #: src/settings_translation_file.cpp msgid "Font italic by default" -msgstr "La police est en gras par défaut" +msgstr "La police est en italique par défaut" #: src/settings_translation_file.cpp msgid "Font shadow" @@ -3392,7 +3391,7 @@ msgid "" "Value 0 will use the default font size." msgstr "" "Taille de police (en pt) des messages récents et du curseur.\n" -"Une valeur nulle correspond à la taille par défaut." +"La valeur 0 correspond à la taille par défaut." #: src/settings_translation_file.cpp msgid "" @@ -3616,7 +3615,7 @@ msgstr "Bruit de chaleur" #: src/settings_translation_file.cpp msgid "Height component of the initial window size." -msgstr "Résolution verticale de la fenêtre de jeu." +msgstr "Composant de hauteur de la taille initiale de la fenêtre." #: src/settings_translation_file.cpp msgid "Height noise" @@ -3881,7 +3880,7 @@ msgid "" "are\n" "enabled." msgstr "" -"Si désactivé, la touche \"spécial\" est utilisée pour voler vite si les " +"Si désactivé, la touche « spécial » est utilisée pour voler vite si les " "modes vol et rapide sont activés." #: src/settings_translation_file.cpp @@ -3893,10 +3892,10 @@ msgid "" "so that the utility of noclip mode is reduced." msgstr "" "Si activé, le serveur n'enverra pas les blocs qui ne sont pas visibles par\n" -"le client en fonction de sa position. Cela peut réduire de 50% à 80%\n" +"le client en fonction de sa position. Cela peut réduire de 50 % à 80 %\n" "le nombre de blocs envoyés. Le client ne pourra plus voir ces blocs à moins\n" -"de se déplacer, ce qui réduit l'efficacité des tricheries du style \"noclip" -"\"." +"de se déplacer, ce qui réduit l'efficacité des tricheries du style « noclip " +"»." #: src/settings_translation_file.cpp msgid "" @@ -3906,7 +3905,7 @@ msgid "" msgstr "" "Si activé avec le mode vol, le joueur sera capable de traverser les blocs " "solides en volant.\n" -"Nécessite le privilège \"noclip\" sur le serveur." +"Nécessite le privilège « noclip » sur le serveur." #: src/settings_translation_file.cpp msgid "" @@ -3914,8 +3913,8 @@ msgid "" "down and\n" "descending." msgstr "" -"Si activé, la touche \"special\" est utilisée à la place de la touche " -"\"s’accroupir\" pour monter ou descendre." +"Si activé, la touche « spécial » est utilisée à la place de la touche « s’" +"accroupir » pour monter ou descendre." #: src/settings_translation_file.cpp msgid "" @@ -3968,9 +3967,8 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" -"Si les restrictions CSM pour la distance des nodes sont activée, les appels " -"à get_node sont limités\n" -"à la distance entre le joueur et le node." +"Si la restriction CSM pour la distance des blocs est activé, les appels " +"get_node sont limités à la distance entre le joueur et le bloc." #: src/settings_translation_file.cpp msgid "" @@ -4007,7 +4005,7 @@ msgstr "Couleur de fond de la console du jeu (R,G,B)." #: src/settings_translation_file.cpp msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "Hauteur de la console de tchat du jeu, entre 0.1 (10%) et 1.0 (100%)." +msgstr "Hauteur de la console de tchat du jeu, entre 0.1 (10 %) et 1.0 (100 %)." #: src/settings_translation_file.cpp msgid "Inc. volume key" @@ -4121,15 +4119,15 @@ msgstr "ID de manette" #: src/settings_translation_file.cpp msgid "Joystick button repetition interval" -msgstr "Intervalle de répétition des boutons du Joystick" +msgstr "Intervalle de répétition des boutons de la manette" #: src/settings_translation_file.cpp msgid "Joystick deadzone" -msgstr "Zone morte du joystick" +msgstr "Zone morte de la manette" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" -msgstr "Sensibilité tronconique du joystick" +msgstr "Sensibilité tronconique de la manette" #: src/settings_translation_file.cpp msgid "Joystick type" @@ -4821,7 +4819,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Touche pour passer en mode \"sans-collision\".\n" +"Touche pour passer en mode sans-collision.\n" "Voir http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4872,7 +4870,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Touche pour afficher/cacher la brume.\n" +"Touche pour afficher/cacher le brouillard.\n" "Voir http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4990,9 +4988,7 @@ msgid "" "Length of a server tick and the interval at which objects are generally " "updated over\n" "network." -msgstr "" -"Temps d'intervalle entre la mise à jour des objets sur le\n" -"réseau." +msgstr "Temps d'intervalle entre la mise à jour des objets sur le réseau." #: src/settings_translation_file.cpp msgid "" @@ -5036,11 +5032,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Light curve boost" -msgstr "Boost de courbe de lumière" +msgstr "Amplification de la courbe de lumière" #: src/settings_translation_file.cpp msgid "Light curve boost center" -msgstr "Centre de boost de courbe de lumière" +msgstr "Centre d'amplification de la courbe de lumière" #: src/settings_translation_file.cpp msgid "Light curve boost spread" @@ -5105,11 +5101,11 @@ msgstr "Écoulement du liquide" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." -msgstr "Intervalle de mise-à-jour des liquides en secondes." +msgstr "Intervalle de mise à jour des liquides en secondes." #: src/settings_translation_file.cpp msgid "Liquid update tick" -msgstr "Intervalle de mise-à-jour des liquides" +msgstr "Intervalle de mise à jour des liquides" #: src/settings_translation_file.cpp msgid "Load the game profiler" @@ -5145,8 +5141,8 @@ msgstr "Script du menu principal" msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" -"Rendre la couleur de la brume et du ciel différents selon l'heure du jour " -"(aube/crépuscule) et la direction du regard." +"Rendre la couleur du brouillard et du ciel différents selon l'heure du jour (" +"aube/crépuscule) et la direction du regard." #: src/settings_translation_file.cpp msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." @@ -5379,8 +5375,7 @@ msgid "" "high speed." msgstr "" "Résistance maximale aux liquides. Contrôle la décélération lorsqu'un joueur " -"entre dans un liquide à\n" -"haute vitesse." +"entre dans un liquide à haute vitesse." #: src/settings_translation_file.cpp msgid "" @@ -5531,7 +5526,7 @@ msgstr "Mini-carte" #: src/settings_translation_file.cpp msgid "Minimap scan height" -msgstr "Hauteur de scannage de la mini-carte" +msgstr "Hauteur de balayage de la mini-carte" #: src/settings_translation_file.cpp msgid "Minimum limit of random number of large caves per mapchunk." @@ -5762,8 +5757,8 @@ msgid "" "unavailable." msgstr "" "Chemin de la police de repli.\n" -"Si le paramètre \"freetype\" est activé : doit être une police TrueType.\n" -"Si le paramètre \"freetype\" est désactivé : doit être une police de " +"Si le paramètre « freetype » est activé : doit être une police TrueType.\n" +"Si le paramètre « freetype » est désactivé : doit être une police de " "vecteurs bitmap ou XML.\n" "Cette police sera utilisée pour certaines langues ou si la police par défaut " "n’est pas disponible." @@ -5798,8 +5793,8 @@ msgid "" "The fallback font will be used if the font cannot be loaded." msgstr "" "Chemin vers la police par défaut.\n" -"Si le paramètre \"freetype\" est activé : doit être une police TrueType.\n" -"Si le paramètre \"freetype\" est désactivé : doit être une police de " +"Si le paramètre « freetype » est activé : doit être une police TrueType.\n" +"Si le paramètre « freetype » est désactivé : doit être une police de " "vecteurs bitmap ou XML.\n" "La police de rentrée sera utilisée si la police ne peut pas être chargée." @@ -5811,15 +5806,15 @@ msgid "" "This font is used for e.g. the console and profiler screen." msgstr "" "Chemin vers la police monospace.\n" -"Si \"freetype\" est activé : doit être une police TrueType.\n" -"Si \"freetype\" est désactivé : doit être une police de vecteurs bitmap ou " +"Si « freetype » est activé : doit être une police TrueType.\n" +"Si « freetype » est désactivé : doit être une police de vecteurs bitmap ou " "XML.\n" "Cette police est utilisée par exemple pour la console et l’écran du " "profileur." #: src/settings_translation_file.cpp msgid "Pause on lost window focus" -msgstr "Mettre en pause sur perte du focus de la fenêtre" +msgstr "Mettre en pause sur perte de sélection de la fenêtre" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" @@ -5855,7 +5850,7 @@ msgid "" "This requires the \"fly\" privilege on the server." msgstr "" "Le joueur est capable de voler sans être affecté par la gravité.\n" -"Nécessite le privilège \"fly\" sur le serveur." +"Nécessite le privilège « fly  » sur le serveur." #: src/settings_translation_file.cpp msgid "Player name" @@ -5946,7 +5941,7 @@ msgid "" "corners." msgstr "" "Rayon de l'aire des nuages où se trouve 64 blocs carrés de nuages.\n" -"Les valeurs plus grandes que 26 entraînent une \"coupure\" nette des nuages " +"Les valeurs plus grandes que 26 entraînent une « coupure » nette des nuages " "aux coins de l'aire." #: src/settings_translation_file.cpp @@ -6090,7 +6085,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Save the map received by the client on disk." -msgstr "Sauvegarde le monde du serveur sur le disque-dur du client." +msgstr "Sauvegarde le monde du serveur sur le disque dur du client." #: src/settings_translation_file.cpp msgid "Save window size automatically when modified." @@ -6204,24 +6199,24 @@ msgid "" "18 = 4D \"Mandelbulb\" Julia set." msgstr "" "Choisit parmi 18 types de fractales.\n" -"1 = réglage Mandelbrot \"Roundy\" 4D.\n" -"2 = réglage Julia \"Roundy\" 4D.\n" -"3 = réglage Mandelbrot \"Squarry\" 4D.\n" -"4 = réglage Julia \"Squarry\" 4D.\n" -"5 = réglage Mandelbrot \"Cousin Mandy\" 4D.\n" -"6 = réglage Julia \"Cousin Mandy\" 4D.\n" -"7 = réglage Mandelbrot \"Variation\" 4D.\n" -"8 = réglage Julia \"Variation\" 4D.\n" -"9 = réglage Mandelbrot \"Mandelbrot/Mandelbar\" 3D.\n" -"10 = réglage Julia \"Mandelbrot/Mandelbar\" 3D.\n" -"11 = réglage Mandelbrot \"Christmas Tree\" 3D.\n" -"12 = réglage Julia \"Christmas Tree\" 3D.\n" -"13 = réglage Mandelbrot \"Mandelbulb\" 3D.\n" -"14 = réglage Julia \"Mandelbulb\" 3D.\n" -"15 = réglage Mandelbrot \"Cosine Mandelbulb\" 3D.\n" -"16 = réglage Julia \"Cosine Mandelbulb\" 3D.\n" -"17 = réglage Mandelbrot \"Mandelbulb\" 4D.\n" -"18 = réglage Julia \"Mandelbulb\" 4D." +"1 = réglage Mandelbrot « Roundy » 4D.\n" +"2 = réglage Julia « Roundy » 4D.\n" +"3 = réglage Mandelbrot « Squarry » 4D.\n" +"4 = réglage Julia « Squarry » 4D.\n" +"5 = réglage Mandelbrot « Cousin Mandy » 4D.\n" +"6 = réglage Julia « Cousin Mandy » 4D.\n" +"7 = réglage Mandelbrot « Variation » 4D.\n" +"8 = réglage Julia « Variation » 4D.\n" +"9 = réglage Mandelbrot « Mandelbrot/Mandelbar » 3D.\n" +"10 = réglage Julia « Mandelbrot/Mandelbar » 3D.\n" +"11 = réglage Mandelbrot « Christmas Tree » 3D.\n" +"12 = réglage Julia « Christmas Tree » 3D.\n" +"13 = réglage Mandelbrot « Mandelbulb » 3D.\n" +"14 = réglage Julia « Mandelbulb » 3D.\n" +"15 = réglage Mandelbrot « Cosine Mandelbulb » 3D.\n" +"16 = réglage Julia « Cosine Mandelbulb » 3D.\n" +"17 = réglage Mandelbrot « Mandelbulb » 4D.\n" +"18 = réglage Julia « Mandelbulb » 4D." #: src/settings_translation_file.cpp msgid "Server / Singleplayer" @@ -6494,7 +6489,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Static spawnpoint" -msgstr "Emplacement du spawn statique" +msgstr "Point d'apparition statique" #: src/settings_translation_file.cpp msgid "Steepness noise" @@ -6636,7 +6631,7 @@ msgstr "L'URL du dépôt de contenu en ligne" #: src/settings_translation_file.cpp msgid "The deadzone of the joystick" -msgstr "La zone morte du joystick" +msgstr "La zone morte de la manette" #: src/settings_translation_file.cpp msgid "" @@ -6734,8 +6729,8 @@ msgid "" "The sensitivity of the joystick axes for moving the\n" "ingame view frustum around." msgstr "" -"Sensibilité de la souris pour déplacer la \n" -"vue en jeu autour du tronc." +"Sensibilité des axes de la manette pour déplacer la vue en jeu autour du " +"tronc." #: src/settings_translation_file.cpp msgid "" @@ -6747,9 +6742,9 @@ msgstr "" "Force (obscurité) de l'ombrage des blocs avec l'occlusion ambiante.\n" "Les valeurs plus basses sont plus sombres, les valeurs plus hautes sont plus " "claires.\n" -"Une gamme valide de valeurs pour ceci se situe entre 0.25 et 4.0. Si la " -"valeur est en dehors\n" -"de cette gamme alors elle sera définie à la plus proche des valeurs valides." +"Une gamme valide de valeurs pour ceci se situe entre 0,25 et 4,0. Si la " +"valeur est en dehors de cette gamme alors elle sera définie à la plus proche " +"des valeurs valides." #: src/settings_translation_file.cpp msgid "" @@ -6757,11 +6752,10 @@ msgid "" "capacity until an attempt is made to decrease its size by dumping old queue\n" "items. A value of 0 disables the functionality." msgstr "" -"Le temps (en secondes) où la file des liquides peut s'agrandir au-delà de " -"sa\n" +"Le temps (en secondes) où la file des liquides peut s'agrandir au-delà de sa " "capacité de traitement jusqu'à ce qu'une tentative soit faite pour réduire " -"sa taille en vidant\n" -"l'ancienne file d'articles. Une valeur de 0 désactive cette fonctionnalité." +"sa taille en vidant l'ancienne file d'articles.\n" +"Une valeur de 0 désactive cette fonctionnalité." #: src/settings_translation_file.cpp msgid "" @@ -6777,7 +6771,7 @@ msgid "" "when holding down a joystick button combination." msgstr "" "Le temps en secondes qu'il faut entre des événements répétés lors de l'appui " -"d'une combinaison de boutons du joystick." +"d'une combinaison de boutons de la manette." #: src/settings_translation_file.cpp msgid "" @@ -6875,8 +6869,8 @@ msgid "" "False = 128\n" "Usable to make minimap smoother on slower machines." msgstr "" -"True = 256\n" -"False = 128\n" +"Activé = 256\n" +"Désactive = 128\n" "Utile pour rendre la mini-carte plus fluide sur des ordinateurs peu " "performants." @@ -6949,8 +6943,8 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" "Utilisez le mappage MIP pour mettre à l'échelle les textures. Peut augmenter " -"légèrement les performances,\n" -"surtout si vous utilisez un pack de textures haute résolution.\n" +"légèrement les performances, surtout si vous utilisez un pack de textures " +"haute résolution.\n" "La réduction d'échelle gamma correcte n'est pas prise en charge." #: src/settings_translation_file.cpp @@ -7076,7 +7070,7 @@ msgstr "Plage de visualisation" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "Joystick virtuel déclenche le bouton aux" +msgstr "Manette virtuelle déclenche le bouton aux" #: src/settings_translation_file.cpp msgid "Volume" @@ -7189,18 +7183,14 @@ msgid "" "texture autoscaling." msgstr "" "En utilisant le filtrage bilinéaire/trilinéaire/anisotrope, les textures de " -"basse résolution\n" -"peuvent être brouillées. Elles seront donc automatiquement agrandies avec l'" -"interpolation\n" -"du plus proche voisin pour garder des pixels moins floues. Ceci détermine la " -"taille de la texture minimale\n" -"pour les textures agrandies ; les valeurs plus hautes rendent plus " -"détaillées, mais nécessitent\n" -"plus de mémoire. Les puissances de 2 sont recommandées. Définir une valeur " -"supérieure à 1 peut ne pas\n" -"avoir d'effet visible sauf si le filtrage bilinéaire/trilinéaire/anisotrope " -"est activé.\n" -"Ceci est également utilisée comme taille de texture de nœud par défaut pour\n" +"basse résolution peuvent être brouillées. Elles seront donc automatiquement " +"agrandies avec l'interpolation du plus proche voisin pour garder des pixels " +"moins floues. Ceci détermine la taille de la texture minimale pour les " +"textures agrandies ; les valeurs plus hautes rendent plus détaillées, mais " +"nécessitent plus de mémoire. Les puissances de 2 sont recommandées. Définir " +"une valeur supérieure à 1 peut ne pas avoir d'effet visible sauf si le " +"filtrage bilinéaire/trilinéaire/anisotrope est activé.\n" +"Ceci est également utilisée comme taille de texture de nœud par défaut pour " "l'agrandissement des textures basé sur le monde." #: src/settings_translation_file.cpp @@ -7248,7 +7238,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to fog out the end of the visible area." -msgstr "Détermine la visibilité de la brume au bout de l'aire visible." +msgstr "Détermine la visibilité du brouillard au bout de l'aire visible." #: src/settings_translation_file.cpp msgid "" @@ -7273,7 +7263,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Width component of the initial window size." -msgstr "Résolution verticale de la fenêtre de jeu." +msgstr "Composant de largeur de la taille initiale de la fenêtre." #: src/settings_translation_file.cpp msgid "Width of the selection box lines around nodes." @@ -7392,7 +7382,7 @@ msgstr "" "-1 - niveau de compression de Zlib par défaut\n" "0 - aucune compression, le plus rapide\n" "9 - meilleure compression, le plus lent\n" -"(les niveaux 1-3 utilisent la méthode \"rapide\", 4-9 utilisent la méthode " +"(les niveaux 1-3 utilisent la méthode « rapide », 4-9 utilisent la méthode " "normale)" #: src/settings_translation_file.cpp @@ -7408,7 +7398,7 @@ msgstr "" "-1 - niveau de compression de Zlib par défaut\n" "0 - aucune compression, le plus rapide\n" "9 - meilleure compression, le plus lent\n" -"(les niveaux 1-3 utilisent la méthode \"rapide\", 4-9 utilisent la méthode " +"(les niveaux 1-3 utilisent la méthode « rapide », 4-9 utilisent la méthode " "normale)" #: src/settings_translation_file.cpp From b2596eda32a41a8008b6979d7a29e0c225421a3a Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 10 Apr 2021 18:41:12 +0200 Subject: [PATCH 624/624] Bump version to 5.4.1 --- CMakeLists.txt | 2 +- build/android/build.gradle | 2 +- misc/net.minetest.minetest.appdata.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f6a0d22fe..aef40e8c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ set(CLANG_MINIMUM_VERSION "3.4") # Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing set(VERSION_MAJOR 5) set(VERSION_MINOR 4) -set(VERSION_PATCH 0) +set(VERSION_PATCH 1) set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string") # Change to false for releases diff --git a/build/android/build.gradle b/build/android/build.gradle index be9eaada4..68dbe082d 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -4,7 +4,7 @@ project.ext.set("versionMajor", 5) // Version Major project.ext.set("versionMinor", 4) // Version Minor project.ext.set("versionPatch", 0) // Version Patch project.ext.set("versionExtra", "") // Version Extra -project.ext.set("versionCode", 32) // Android Version Code +project.ext.set("versionCode", 34) // Android Version Code // NOTE: +2 after each release! // +1 for ARM and +1 for ARM64 APK's, because // each APK must have a larger `versionCode` than the previous diff --git a/misc/net.minetest.minetest.appdata.xml b/misc/net.minetest.minetest.appdata.xml index 0e5397b37..ade4c2421 100644 --- a/misc/net.minetest.minetest.appdata.xml +++ b/misc/net.minetest.minetest.appdata.xml @@ -62,6 +62,6 @@ minetest sfan5@live.de - +

    L$DSL_8dtlk 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

Cen21N+!g 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 bKSI6q=s_NX;(>*;oYl1XM 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≧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%0Agya_5Lyzc9$BBbP8=EJd(6CC6*s@*C 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